Project ยท In Progress
A little hardware bell that tells me when Claude is done thinking.
I run a lot of long Claude Code tasks in the background. Builds, refactors, tests โ anything that takes more than a minute. The annoying part is the polling: am I done yet? Did it finish? Did it get stuck?
I needed a physical, in-the-room signal. Something I'd notice without staring at a terminal.
A tiny ESP32 XIAO S3 board running custom firmware, paired to my Mac over Bluetooth Low Energy. When Claude finishes a task โ or wants approval for something risky โ the device:
It's a small stack but it has more layers than you'd expect.
play_jingle, set_led_status, device_status).macOS does not let userspace apps write HID output reports to a bonded BLE keyboard โ IOKit blocks it for security. I burned an evening proving that, then pivoted the control channel to HTTP over WiFi, which works perfectly. That whole detour ended up being its own little research project.