Anthropic built a desk pet that lives off your code review anxiety
A reference BLE API and ESP32 firmware that turns an M5StickC into a twitchy little hardware buddy for Claude Desktop.

What it does
Claude Desktop (macOS/Windows) can now talk to maker hardware over Bluetooth Low Energy. This repo is both the wire-protocol reference and a working firmware example: an ESP32 desk pet that sleeps, sulks, and celebrates based on what Claude is doing. It can even approve or deny permission prompts from the device itself.
The interesting bit
The GIF streaming is the clever part. Drop a folder of 96px-wide GIFs onto the Hardware Buddy window in Claude Desktop and it pushes the whole pack over BLE to the stick, live. The device switches modes without a reflash. There’s also a tidy state machine mapping Claude’s internal mood—idle, busy, approval pending, token-milestone “level ups”—to seven pet animations.
Key highlights
- Wire protocol is documented separately in
REFERENCE.md; you can build your own device without touching this repo - 18 built-in ASCII pets with 7 animations each, or custom GIF characters via drag-and-drop
- Approval prompts surface on-device with dedicated approve/deny buttons
- Character packs must stay under 1.8 MB; includes
prep_character.pyandflash_character.pytooling - Auto-reconnects when both sides are awake; 30-second screen timeout with wake-on-interaction
Caveats
- BLE API is developer-mode only and explicitly “not an officially supported product feature”
- Firmware hardcodes M5StickC Plus drivers; porting to other ESP32 boards means forking the display/IMU/button layer
- No Linux support mentioned; macOS and Windows only
Verdict
Grab this if you’re a maker who wants Claude’s state visible in physical space, or if you’re building custom BLE peripherals and need a working protocol reference. Skip it if you were hoping for a polished consumer gadget—this is a tinkerer’s API with a very cute demo attached.