Claude Code状态氛围灯:用红绿灯实时显示AI编程工作状态

当AI牛马需要一个「红绿灯」
随着Claude Code等AI编程工具的普及,一种全新的工作模式正在形成:把编程任务交给AI,自己去做别的事情。但这种模式有一个痛点——AI在执行过程中经常需要用户授权或决策,会弹出输入框等待确认。如果你正好不在屏幕前,就会错过这个窗口,导致AI空等,白白浪费时间。
B站UP主彭雪天针对这个痛点,设计了一个巧妙的硬件项目:Claude Code编程状态氛围灯。通过红绿灯、灯带和蜂鸣器的声光组合,实时反映AI的工作状态,让你即使不盯着屏幕,也能第一时间知道AI需要你的输入。这个项目参加了M-Design创意设计大赛的创意互动方向,思路新颖且实用性极强。



核心原理:Hooks回调 + 串口通信
整个项目的核心思路是利用Claude Code的Hooks回调机制。Claude Code在运行过程中有多个关键节点(如开始执行、等待输入、任务完成等),可以在这些节点上挂载自定义脚本。
这里的Hooks机制类似于Git Hooks或Webpack插件系统的设计理念——它是Anthropic为Claude Code设计的一套生命周期回调系统,允许开发者在AI代理执行的关键节点注入自定义脚本。这些脚本可以是Shell脚本、Python程序或编译后的二进制文件。Hooks的设计初衷是为了增强Claude Code的可观测性和可扩展性,让开发者能够记录日志、触发通知、执行安全检查等。这种事件驱动的架构模式将核心功能与扩展功能解耦,使得第三方开发者无需修改源代码就能增加新功能,为本项目这类硬件联动方案提供了天然的接入点。
软件架构
系统的软件层分为三个部分:
- 守护进程(Python):常驻运行在电脑上,一方面通过串口与硬件通信,另一方面作为UDP服务器接收状态消息。
- Client脚本:由Claude Code在不同工作节点触发调用,通过UDP协议将当前状态发送给守护进程。
- 状态翻译:守护进程接收到状态信息后,将其翻译成串口指令,发送给底层硬件。
项目选择UDP(用户数据报协议)而非TCP作为进程间通信协议,这一设计决策体现了对场景特性的精准把握。UDP是无连接的传输协议,发送数据时不需要建立连接、不需要等待确认,单次通信的延迟极低。Client脚本由Hooks触发后生命周期极短——它只需要发送一条状态消息就退出。如果使用TCP,每次都需要经历三次握手建立连接,对于如此轻量的通信来说是不必要的开销。而UDP的"发射后不管"特性完美匹配了这种场景:即使偶尔丢失一个状态包,下一次状态变更也会很快覆盖,不会造成实质性问题。这种在本地回环上使用UDP进行进程间通信的模式,在系统监控和日志收集领域已经非常成熟,例如StatsD协议就采用了类似的设计哲学。
这种架构设计的好处在于解耦——Claude Code只需要调用轻量级的UDP客户端脚本,不需要直接操作串口,而守护进程负责所有的硬件通信逻辑。
硬件平台
硬件方面使用了NXP的Freedom i.MX RT1186开发板,配合Arduino扩展板,外接红绿灯模块、蜂鸣器和LED灯带。
i.MX RT1186属于NXP的跨界处理器(Crossover Processor)系列,定位介于传统MCU(微控制器)和MPU(微处理器)之间,搭载了双核Arm Cortex-M33和Cortex-M7处理器,主频可达800MHz,同时集成了千兆以太网TSN(时间敏感网络)功能。"Freedom"是NXP的低成本开发板产品线品牌,兼容Arduino扩展板接口(即Arduino Uno R3引脚布局),这使得开发者可以直接使用市面上大量现成的Arduino传感器和执行器模块,大幅降低了原型开发的门槛。在本项目中,Arduino兼容接口使得红绿灯模块、蜂鸣器和LED灯带的连接变得即插即用,无需额外设计转接电路。
底层固件基于Zephyr操作系统编写,这是一个由Linux基金会托管的开源实时操作系统(RTOS),专为资源受限的嵌入式设备设计,支持从8KB RAM的微控制器到更复杂的多核处理器等多种硬件平台。Zephyr具有出色的跨平台特性,其核心优势在于设备树(Device Tree)抽象机制——这一概念借鉴自Linux内核,通过声明式的硬件描述文件将硬件配置与驱动代码分离。开发者只需编写或修改.dts文件来描述新硬件的引脚映射、外设配置等信息,就可以将同一份应用代码移植到不同的开发板上。相比FreeRTOS等传统RTOS,Zephyr提供了更完整的网络协议栈(支持IPv4/IPv6、MQTT、CoAP等)、蓝牙5.0支持和安全特性(如TF-M可信固件),同时保持了实时系统的确定性响应能力。NXP、Nordic Semiconductor、Intel等芯片厂商都是Zephyr项目的主要贡献者,这也意味着这些厂商的开发板通常能获得最好的Zephyr支持。
电脑上的守护进程通过USB虚拟串口(在Windows上表现为COM端口,在Linux/macOS上表现为/dev/ttyUSB或/dev/ttyACM设备)与开发板通信。串口通信(UART)的优势在于:协议简单(通常只需约定波特率、数据位、停止位和校验方式)、调试方便(可以直接用PuTTY、minicom等串口终端工具查看原始数据)、延迟低且稳定。相比蓝牙或WiFi等无线方案,有线串口在原型阶段几乎不存在连接不稳定或配对失败的问题。守护进程将高层语义状态(如"等待输入")翻译为串口指令字节发送给下位机,下位机解析后驱动对应外设,这种"上位机决策、下位机执行"的分层架构是工业控制和物联网设备中的经典设计模式,它将计算密集型任务和实时控制任务分配给最适合的处理单元。
三种状态,三种灯效
项目定义了三种清晰的工作状态,每种状态都有独特的声光表现:
🔴 红灯:AI正在工作
当Claude Code处于Running模式或正在思考时,红绿灯显示红灯,灯带呈现流水灯效果。这意味着AI正在忙碌,你可以安心做自己的事情。
🟡 黄灯:需要你的输入
当Claude Code需要用户进行授权或决策时,红绿灯切换为黄灯,灯带进入呼吸灯模式,同时蜂鸣器发出提醒声。这是最关键的状态——它意味着AI在等你,你需要尽快回到屏幕前做出响应。声音提醒确保即使你背对屏幕也不会错过。
🟢 绿灯:空闲状态
当Claude Code处于空闲状态(任务完成或尚未开始)时,红绿灯显示绿灯,灯带呈现彩虹模式。这表示一切就绪,可以给AI分配新任务了。
下位机固件程序设计
固件程序的结构也值得一提。主程序启动后首先进行硬件初始化,然后创建一个心跳线程,通过周期性信号告知系统程序正在正常运行。心跳机制是嵌入式系统中常见的健康监测手段——如果主循环因为某种异常(如死锁、内存溢出或外设驱动卡死)而停止响应,心跳信号会停止,看门狗定时器(Watchdog Timer)可以据此判断系统异常并触发硬件复位,保证设备的长期稳定运行。看门狗本质上是一个硬件倒计时器,需要软件定期"喂狗"(重置计数器),一旦计数器归零就触发系统复位。这种机制在无人值守的嵌入式设备中几乎是标配,确保设备即使遇到未预见的软件故障也能自动恢复。
最核心的部分是命令处理循环:持续监听串口数据,收到命令后进行解析,根据解析结果分别控制红绿灯、蜂鸣器和灯带的状态。整个逻辑简洁明了,状态切换响应迅速。在Zephyr框架下,串口读取通常使用中断驱动或DMA(直接内存访问)方式实现——中断驱动意味着每收到一个字节就触发CPU中断进行处理,而DMA则允许外设直接将数据写入内存缓冲区而无需CPU介入,两者都能确保数据接收的实时性,避免轮询方式带来的CPU资源浪费。灯带控制方面,项目很可能使用了WS2812B或类似的可寻址RGB LED,这类灯带使用单线串行协议,对时序要求极为严格(高电平持续时间的差异仅在几百纳秒级别就决定了传输的是0还是1)。Zephyr的PWM驱动和SPI外设可以产生硬件级别的精确时序信号,避免了软件位操作(bit-banging)在中断干扰下可能出现的时序抖动问题。
实际演示效果
在作者的实际演示中,整个流程非常流畅:
- Claude Code初始处于空闲状态,绿灯亮起,灯带显示彩虹效果
- 下达指令「创建一个空文件Text5.txt」后,AI开始执行,灯带切换为流水灯
- AI请求文件创建权限时,黄灯亮起,灯带变为呼吸模式,蜂鸣器响起
- 用户点击「Yes」授权后,任务完成,灯带恢复彩虹模式,绿灯重新亮起
整个过程状态切换即时,声光反馈明确,完全达到了「不看屏幕也知道AI在干什么」的设计目标。值得注意的是,从Hooks触发到灯光变化的端到端延迟非常短——UDP本地回环通信在微秒级别完成,串口传输(假设115200波特率传输几个字节的指令)在毫秒级别完成,加上下位机解析和GPIO切换的时间,总延迟通常在10毫秒以内,人眼几乎感知不到任何滞后。
实用价值与扩展思考
这个项目虽然看似是一个趣味硬件,但它揭示了一个严肃的效率问题:在人机协作的AI编程模式下,如何减少人类的等待感知延迟?
这个问题的本质是人机交互中的"注意力管理"。传统的软件通知(如任务栏闪烁、弹窗提醒)依赖于用户的视觉注意力停留在屏幕上,而物理世界的声光信号则能穿透注意力屏障——你可以在厨房做饭时听到蜂鸣器响,在阳台晒太阳时看到灯光变化。这种将数字状态"物化"为环境感知的设计思路,在智能家居和工业监控领域已有广泛应用(如Philips Hue的邮件通知灯效、工厂产线的三色信号塔),但将其引入AI编程工作流还是一个新颖的尝试。认知心理学研究表明,人类对多模态信号(视觉+听觉)的感知响应速度显著快于单一通道——视觉反应时间约为150-200毫秒,听觉反应时间约为120-150毫秒,而两者同时呈现时由于"冗余信号效应"(Redundant Signals Effect),响应速度还会进一步提升。这也解释了为什么本项目同时使用灯光和蜂鸣器——冗余信号设计确保了在不同环境条件下(如嘈杂环境中听觉信号被掩蔽,或视线被遮挡时视觉信号不可见)至少有一个通道能有效传达信息。
当前Claude Code的Hooks机制为这类扩展提供了天然的接口。除了物理灯光提醒,类似的思路还可以扩展到:
- 手机推送通知:通过Webhook发送到手机
- 桌面通知增强:自定义系统通知样式和声音
- 多任务状态面板:同时监控多个Claude Code实例的状态
- 团队协作场景:让团队成员知道AI助手的工作进度
- 智能手表震动提醒:通过蓝牙或推送服务将状态同步到可穿戴设备
- Slack/飞书机器人集成:在团队通讯工具中自动播报AI工作进度
从更宏观的角度看,随着AI编程工具越来越强大,人类的角色正在从「编码者」转变为「决策者」和「审核者」。这种角色转变意味着人类需要在多个AI代理之间分配注意力,就像一个项目经理同时管理多个团队成员一样。如何让这种角色转换更加高效和自然,如何设计更好的"人在环路"(Human-in-the-Loop)交互模式,是一个值得持续探索的方向。Human-in-the-Loop并非AI时代的新概念——它源自控制论和自动化领域,指的是在自动化系统的关键决策点保留人类判断的架构模式。在自动驾驶(L3级别需要人类随时接管)、医疗AI(诊断建议需要医生确认)等领域,如何设计高效的人机切换界面一直是核心研究课题。本项目将这一理念应用到AI编程场景,用最直觉的方式给出了一个优雅的答案——它证明了有时候最好的人机接口不是更复杂的软件界面,而是回归到人类最原始的感知通道:光和声音。
相关推荐

李飞飞谈AI:视觉智能、创造力边界与人类主体性
斯坦福教授李飞飞在Huberman Lab播客深度解析AI与视觉科学的关系,探讨ImageNet如何引爆现代AI,阐述AI的能力边界、医疗应用前景,以及为何人类主体性是AI发展的核心命题。

DeepSeek Harness实测:插件化Agent框架的核心优势解析
深入实测DeepSeek Harness开源Agent框架,解析其插件化架构设计、编码能力、安装部署方式及与Claude Code的对比,帮助开发者了解这款可扩展Agent开发底座的真正价值。

10美元搭建50万域名搜索引擎:独立开发者的周末项目启示
一位独立开发者仅用一个周末和10美元成本,搭建了覆盖50万域名的垂直搜索引擎。本文深入分析低成本搜索引擎背后的技术栈、垂直搜索的差异化机会,以及独立开发者快速验证想法的方法论。