- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出(放置文章末尾)
起因
不知道大伙儿有没有 AI 焦虑——就是项目交给 AI 跑了以后,隔一会儿就得切回终端看一眼:它是不是在问我要权限?需求跑完了没有?还是在哪个环节卡住了?
市面上有一些消息提醒工具,能在 AI 需要操作时推送通知到手机或桌面,但似乎还没有人做跟硬件联动的方案。我的想法很简单:在桌面上放一盏小灯,AI 的状态直接映射成灯效,扫一眼就知道它在干什么。
它能做什么
核心思路是把 AI 编程助手的实时状态映射到桌面 LED 灯效:
AI 状态 灯效 含义 思考/执行中 黄色跑马灯旋转 AI 正在工作中 需要授权 红灯常亮 AI 在问你要权限,赶紧去看看 任务完成 绿灯常亮 活儿干完了 空闲待机 蓝灯呼吸 闲着,等你发指令 出错 红灯慢闪 挂了,去看看实现方式是在 OpenCode 的插件钩子中捕获事件(AI 输出、工具执行、权限请求、任务完成等),然后通过 MQTT 消息推送到 ESP32,ESP32 根据收到的状态切换灯效。
具体来说,插件监听了以下 OpenCode 事件:
message.part.delta— AI 正在输出内容,触发「思考中」黄灯tool.execute.before/after— AI 在执行工具(读写文件、运行命令等),同样黄灯permission.asked— AI 需要用户授权,切换红灯常亮,提醒你赶紧去处理session.idle— 会话空闲,说明活干完了,切绿灯session.error— 出错了,红灯闪烁
还有一个比较实用的特性——多项目协调。如果你同时开了好几个项目在跑 AI,插件会自动取优先级最高的状态来显示。比如项目 A 在思考(黄灯),项目 B 突然需要授权(红灯),灯会自动切到红灯,因为「需要授权」优先级更高。优先级规则:
error(10) > auth_required(8) > thinking(5) > done(3) > idle(0)
架构
支持两种模式:
本地模式(默认):插件内嵌了一个 MQTT Broker,ESP32 和电脑在同一局域网就能通信,零配置。
你的电脑(OpenCode + 插件)→ 内嵌 MQTT Broker → WiFi 局域网 → ESP32 + LED
远程模式:如果你有公网服务器,可以部署 Mosquitto Broker,ESP32 通过互联网连接,不受局域网限制。
你的电脑 → 远程 MQTT Broker(公网)→ 互联网 → ESP32 + LED
成本:约 15 块钱
是的,只要十五块。物料清单:
部件 型号 参考价格 主控 ESP32-C3 Super Mini ~¥8 LED WS2812B 灯带(60颗/米) ~¥5/米(只需截 3 颗) USB-C 数据线 ~¥2 合计 ~¥15接线也非常简单,三根线:
ESP32-C3 WS2812B 灯带(3颗)
GPIO 8 → DIN(数据输入)
5V → VCC
GND → GND
如果你手上有 ESP8266,也支持,用 PWM 方式驱动三色 LED。
烧录 & 配网
提供了三种烧录方式,按需选择:
- Web 烧录器(最省事) — Chrome/Edge 浏览器直接烧录,零安装,插上 USB 就能刷
- arduino-cli 命令行 — 适合批量部署
- Arduino IDE — 经典方式,不多解释
配网也很方便:ESP32 首次启动会开一个 WiFi 热点,手机连上去打开浏览器,填入你家 WiFi 密码就行,不用把配置写死在代码里。
3D 外壳
3D 建模我也是门外汉,外壳模型来自拓竹 MakerWorld 上 Leroyd 的作品,打印出来效果不错,刚好能塞进 ESP32-C3 和灯带。
安装
两条命令搞定:
Linux / macOS:
git clone https://github.com/mydubai7794/opencode-led.git
cd opencode-led && bash install.sh
Windows:
git clone https://github.com/mydubai7794/opencode-led.git
cd opencode-led && install.bat
重启 OpenCode 就能看到蓝灯呼吸了。
最后
这个项目的出发点很小——就是想少切几次终端窗口,用一盏灯来告诉自己 AI 在干什么。但做下来发现还挺实用的,尤其是红灯亮起来的时候,真的能做到「不打断工作流但又不漏掉权限请求」。
项目完全开源,欢迎各位佬友试试,有建议或者想加功能欢迎提 Issue / PR。
项目地址:GitHub - mydubai7794/opencode-led · GitHub
AI润色部分:正文由我给AI提供了大致的思路,排版和指令由AI精简README后得出,截图如下:

1 个帖子 - 1 位参与者