Two screens for eyes that show what Claude Code is doing right now. Hold the button to talk to a Claude Code session; Clawd answers through its speaker. The knob sets the volume and its press cancels.
The eyes run the firmware's animation logic, ported line for line: same shapes, timings, colours and captions, at the screens' real resolution, mounted portrait (80×160). The autoplay walks through one voice turn. Click a mood to hold it.
You need an Atech 14-port board, the seven modules below, a printed case, and Python 3.10 or newer. Voice also needs an OpenAI API key for speech-to-text and text-to-speech.
pip install -r bridge/requirements.txt # atech, openai, pyserial atech validate firmware && atech upload firmware # check the UP arrow on each eye at boot python bridge/clawd_bridge.py install-hooks # once; backs up ~/.claude/settings.json python bridge/clawd_bridge.py demo # cycle every mood export OPENAI_API_KEY=... python bridge/clawd_bridge.py run --workdir ~/code/my-project
Print case/Clawd_Case_v2.stl as one piece, as it comes, with no rotation; settings are in case/PRINT_ME.md.
Global hooks in ~/.claude/settings.json, so every session on this PC drives the face. With the bridge stopped, a hook fails in milliseconds and never blocks Claude.
Voice prompts go to one dedicated session per project folder, so follow-ups keep context. The tool calls it makes show on the eyes like any other session.
{"action":"mood","value":"tool"}
{"action":"label","value":"Bash"}
{"action":"detail","value":"npm test"}
{"action":"spk_play_pcm","value":"<base64, 512 samples>"}
Firmware compiles for the 14-port (RAM 8.6%, flash 9.7%). Bridge tested offline against a mock board: hook mapping, caption sanitising, resampling and hook install/uninstall.
Eye pairs 1+2 and 5+6 drive the screens. The generator emits the same constructor pins as the confirmed clawd_eyes build.
Pairs 3+4 (mic), 9+10 (knob) and 13+14 (speaker) have never been the primary of a tested pair on this board. Audio over USB in both directions has not run on a real board yet.
The printed case has eye openings only. The button, knob and LED need holes. The speaker doesn't fit inside: CAD notes measure an 11 mm shortfall, so it hangs on a cable.