平时会在 Paseo 里同时开几个 coding agent ( Claude Code 、Codex 都有),让它们各跑各的长任务。麻烦的是人一走开,就不知道哪个卡在权限确认上、哪个提了问题、哪个已经跑完,只能隔一会儿切回电脑看一眼。
所以做了 Farol ,一块放在桌上的小屏,跑在 ESP-Mosaico 开发板上。

上面是真机录屏(没声音):按住侧面的 AI 键说一句话,转成文字后按住发送,新会话就开起来了,跑完的结果直接显示在卡片上。
- 主屏是一盏灯。都在干活时冷色慢慢呼吸,有 agent 等你就变琥珀色,失败变红;灯的高低跟着用得最紧的那份额度
- 灯后面是一叠卡片,一个 agent 一张。问题、权限请求、计划都能按住选项直接回答,按住运行中的卡片能停掉这一轮。轻点不会动 agent ,只有按住才算数,免得手滑
- 按住 AI 键说话开新会话,语音转文字用的是 Paseo 自带的语音输入
- 额度页把 Claude 、Codex 、Antigravity 、GLM 这些服务的用量窗口都列出来

实现上有几处可能有人感兴趣。
- 界面用乐鑫的 GSP 画,所有状态和决策都在 Rust 里。板子、模拟器和测试共用同一套逻辑,大部分交互在模拟器里就能调完
- 没有另造一套连接和认证,板子跟 Paseo App 一样连 daemon 。要么扫 Paseo 的配对码走它的中继( Noise_NK 端到端加密,在板子上用 Rust 实现了一遍),要么局域网 / VPN 直连
- Paseo 那边是个插件,负责把 agent 状态整理成板子能直接用的快照,再替板子执行回答、停止、开会话这些操作。插件已经上了 Paseo 的官方插件目录,
paseo plugin add gtoxlili/farol就能装 - GSP 的文本控件只在空格处换行,中文会直接溢出,所以自己写了按字宽断行的排版。回复里的 Markdown (加粗、列表、代码块)也是先在 Rust 里排好,再分几层标签画出来的
上手门槛不低。得有一块 ESP-Mosaico 开发板,左槽要插摄像头模块,用来扫 Wi-Fi 和配对码;固件需要自己用 ESP-IDF + Rust 编译,README 里有步骤; Paseo 要 0.14 以上。
代码在这里,Apache-2.0: https://github.com/gtoxlili/farol
有类似需求、或者觉得哪里交互别扭的,欢迎拍砖。