硬體
10 顆 LED,一條線,沒有儀表板。
看看 Agent Andon Light 如何把 hook 事件變成燈光:從電路板、通訊協定到韌體(直接跑在晶片上的程式)。
閒置
桌上到底放了什麼
一塊小電路板(Waveshare RP2040-Zero),手工焊接在客製電路板上,驅動著 3D 列印擴散罩下的 10 顆可定址 WS2812B LED。一條 USB-C 線同時負責供電與序列通訊,不需要額外電源,不需要無線配對。唯一要做的設定,就是裝好 CLI(靠打指令來操作、和板子通訊的程式)。

一個字元,一種顏色
主機端 CLI 透過 USB 序列埠與韌體通訊,用的是想得到最簡單的協定:一個 ASCII 字元加換行。沒有 JSON,也沒有交握過程。
通訊協定
| 指令 | 效果 | 含義 |
|---|---|---|
| G | 綠燈常亮 | Agent 正在工作 |
| Y | 黃燈常亮 | 等待你處理 |
| R | 紅燈常亮 | 閒置 / 已停止 |
| C | 依序點亮 | 正在整理 |
| H | 無變化 | 心跳訊號 |
即使你沒在看,也靠得住
韌體本身跑著一個 30 分鐘的看門狗計時器。一旦主機端失聯,紅色區段不會停在常亮狀態,而是切換成緩慢的呼吸式閃爍。一盞可以放心離開的狀態燈,必須把異常清清楚楚地顯示出來,而不是悄悄卡住。
直接接上 Claude Code 和 Codex CLI
Claude Code 和 Codex CLI 的 hooks 會一條一條按順序呼叫 CLI,等前一條處理完才呼叫下一條。這樣即使在工具呼叫密集的回合裡,燈光也始終反映事件的真實順序。
| Hook 事件 | 顏色 |
|---|---|
| SessionStart | 閒置 |
| UserPromptSubmit / PreToolUse | 工作中 |
| Notification / PermissionRequest | 等待中 |
| PreCompact | 整理中 |
| Stop / SessionEnd | 閒置 |
Windows 安裝程式沒有數位簽章,在取得簽章之前,每次執行 Windows 都會跳出警告。macOS 還沒測試過,官方不支援。這是個人維護的專案,不是公司出品,歡迎在 GitHub 上提交 Issue 或 Pull Request。