DC娱乐网

Claude Desktop Buddy复刻

你有没有这种“失联感”?写代码时打开Claude,一边等结果一边反复切回窗口,任务到底跑没跑完不确定,审批有没有弹出来也

你有没有这种“失联感”?写代码时打开Claude,一边等结果一边反复切回窗口,任务到底跑没跑完不确定,审批有没有弹出来也不知道,AI明明在运行,但你却完全“感知不到状态”。这次我们基于ESP32-S3制作了Claude的硬件伴侣,让AI不只是输出结果,而是能被你“看见过程”。

 

把Claude做成一个“有反应的设备”

这次我们复刻的是开源项目claudedesktopbuddy,原版运行在M5StickCPlus。我们将它完整移植到自研RootMaker开发板(ESP32S3)

它的核心不是显示器,而是一个理念:让AI的运行状态,从屏幕里“走出来”。现在,它可以像一个小伙伴一样,实时反馈Claude的工作状态。

 

从烧录到连接,快速唤醒

硬件准备:

RootMaker(ESP32S3)开发板

TypeC数据线

ESPIDF5.5.1及以上环境

 

获取源码方式:

公众号回复「Claudebuddy」

 

基础流程如下:

1、将源码拉至Arduino

 

2、选择开发板和端口

 

3、编译并烧录固件

 

4、开启HardwareBuddy→点击Connect连接设备

 

5、当连接成功的那一刻,设备会“亮起来”——角色正式被唤醒。

AI状态开始“可视化”

真正有意思的部分,从连接后开始。Claude运行过程中,设备会实时同步状态:

开始任务→进入「工作模式」

等待权限审批→立即提醒闪烁

审批完成→给出确认反馈

断开连接→自动进入睡眠状态

你不再需要频繁切屏确认状态,因为设备已经替你“盯着Claude”。

更有趣的是一些互动设计:

摇一摇开发板→角色会“晕”

每累计5万tokens→自动庆祝

支持自定义GIF→蓝牙直接推送,无需重新烧录

状态变化丰富:sleep/idle/busy/attention/celebrate/dizzy/heart

AI开始有了“情绪表达”。

代码结构与开源实现

从实现角度看,这个项目并不复杂,本质是一个状态机系统。

主循环每一帧做四件事:

接收蓝牙数据→推导状态→处理输入→渲染画面

通信部分使用BLENUS(NordicUARTService),本质就是“蓝牙串口化”,ClaudeDesktop通过JSON向设备发送状态信息,例如任务进度或审批请求。

显示与动画部分:

LovyanGFX驱动ST7789屏幕

AnimatedGIF负责逐帧解码动画

LittleFS存储角色资源

交互部分:

LIS2DW12加速度计负责“摇一摇检测”

NeoPixel控制状态灯闪烁提示

当attention状态触发时,LED会周期性闪烁,让状态变化更直观。

 

让AI不只是工具

这个项目的意义不只是“做了一个小硬件”,而是把Claude从屏幕里拆出来,让它变成一个可以被感知的存在:它会醒来、会忙碌、会等待、会庆祝,甚至会“晕”。项目已经完全开源,可以直接复刻体验。如果你也想试试让AI不只是工具,而是“有状态的伙伴”,这个项目会是一个很有意思的起点。