Everything you need to turn two printed parts and a handful of plug-in electronics into a tappable, beeping Clawd. No soldering: every wire pushes on.
Tick each one off as you find it. Your ticks are saved in this browser only.
Four pockets: one in each arm and one in each outer leg.

This is the one step where order matters: the magnets must attract, not repel.

It drops in from the back, glass first.

The speaker faces the grille. It rides on the plate, so it lifts away whenever you open Clawd.

Do this with the XIAO outside the case, where you can see the pin labels. The pin names are printed on the XIAO; the wire names are printed next to the screen's socket.
| From | Wire | To |
|---|---|---|
| Screen | VCC | 3V3 |
| Screen | GND | Breadboard GND row (via a male–male jumper) |
| Screen | MOSI | D10 |
| Screen | SCLK | D8 |
| Screen | LCD_CS | D5 |
| Screen | LCD_DC | D3 |
| Screen | LCD_BL | D6 |
| Screen | TP_SDA | D4 |
| Screen | TP_SCL | D9 |
| Speaker | SIG (yellow) | D7 |
| Speaker | VCC (red) | 5V |
| Speaker | GND (black) | Breadboard GND row (via a male–male jumper) |
| Breadboard | GND row | GND (female–male jumper) |
The XIAO slides down the inside of Clawd's bottom wall, USB port last.

Test with the back still off, so any fix is easy.
https://espressif.github.io/arduino-esp32/package_esp32_index.jsonclawd_2in_touch_firmware.ino. Choose board XIAO_ESP32C3, and set USB CDC On Boot to Enabled. Leave the other settings as they are.The magnets pull it into place.


Clawd. The password is clawd1234.http://192.168.4.1 in your browser to switch eyes, open the terminal, draw on the screen, or turn sound on and off.Clawd's status light and "Claude needs you" alerts come from small helpers on the computer that runs Claude Code or opencode. Clawd connects two ways: plugged into the computer by USB, or over Wi-Fi. The helpers try both and Clawd ignores duplicates. Nothing runs in the background: Claude Code or opencode fires the helper only when something happens. The helpers are on GitHub at github.com/cliddy1005/clawd-helpers.
clawd.local.On the computer that runs Claude Code (Mac or Linux), open Terminal and run:
curl -fsSL https://raw.githubusercontent.com/cliddy1005/clawd-helpers/main/install.sh | sh
~/.claude/ and adds five hooks to ~/.claude/settings.json. It keeps your other settings, saves a backup first, and never adds a hook twice.sh -s --, for example opencode only:curl -fsSL https://raw.githubusercontent.com/cliddy1005/clawd-helpers/main/install.sh | sh -s -- --opencode
| Option | Installs |
|---|---|
--claude-code | Claude Code hook only |
--opencode | opencode plugin for all projects |
--opencode-project | opencode plugin for the folder you're in only |
--all | Both |
pkill -f "opencode serve" once, or restart your computer. The dot in Clawd's top-right corner pulses amber while it works and turns green with a chime when it's done. When it asks for permission, Clawd flashes Claude needs you.| Claude Code / opencode | Clawd shows |
|---|---|
| Session starts | Blue light (idle) |
| Working: you sent a prompt, or a tool ran | Pulsing amber. Clears an alert once you've answered. |
| Asks permission or waits for you | "Claude needs you" alert and chime |
| Finished | Green light, done chime and a happy squish |
git clone https://github.com/cliddy1005/clawd-helpers.git → cd clawd-helpers → ./install.shPlug Clawd into the computer with the USB-C cable. That's it: the helpers find Clawd's USB port by themselves each time Claude Code or opencode has something to show.
export CLAWD_PORT=/dev/cu.usbmodem101 (your port) to ~/.zshrc. Clawd's Info view shows "USB: connected to a computer" when the cable is working.Use this if Clawd sits on a charger away from the computer. Do it once:
Clawd (password clawd1234).http://192.168.4.1/setup, type your home Wi-Fi name and password, and tap Save and restart. Use a 2.4 GHz network; most routers have one.192.168.1.42.http://clawd.local. The controller page should load. If not, use the IP address from the Info view.Run the line for your route in a terminal. Clawd should flash the alert and chime; tap to dismiss. Swap waiting for working, done or idle to see the other states.
curl "http://clawd.local/cc?state=waiting&msg=Hello&project=test" # Wi-Fi echo "waiting|test|Hello" >> /dev/cu.usbmodem101 # USB (use your port: ls /dev/cu.usbmodem*)
Claude Code runs hooks through Git Bash, so the hook script runs as-is: copy claude-code/clawd-notify.sh from the repo to %USERPROFILE%\.claude\ and add the hooks from claude-code/settings-snippet.json to %USERPROFILE%\.claude\settings.json. On Windows, use Wi-Fi: the USB route is Mac and Linux only for now. .local names often don't resolve on Windows, so set the CLAWD_HOST environment variable to Clawd's IP address.
| What you see | Try this |
|---|---|
| Screen stays black | Check VCC→3V3, GND, and LCD_BL→D6. Reseat the 15-wire cable at the screen. |
| Picture is upside down | In the code, change tft.setRotation(1) to tft.setRotation(3) and upload again. |
| Tapping does nothing | Check TP_SDA→D4 and TP_SCL→D9. Arduino's Serial Monitor (115200) prints touch: ok when it's found. |
| No sound | Check SIG→D7, red→5V, black→GND row. Turn the blue volume knob up. Check sound is on in the web page. |
| Can't see the Wi-Fi network | Make sure the antenna is clicked onto the XIAO. Unplug and replug the USB cable. |
| Upload fails | Use a USB-C cable that carries data, not a charge-only one. Hold the XIAO's BOOT button while plugging in, then upload. |
clawd.local won't load | Use the IP address from Clawd's Info view. For the helpers, add export CLAWD_HOST=192.168.x.y to your shell profile. |
| Clawd keeps showing its own hotspot | It couldn't join your Wi-Fi. Re-enter the details at 192.168.4.1/setup and check the network is 2.4 GHz. |
| Alerts don't arrive over USB | Use a data USB-C cable, not a charge-only one. With other USB boards plugged in, set CLAWD_PORT to Clawd's port (ls /dev/cu.usbmodem* lists them). |
| No alerts from Claude Code | Check ~/.claude/settings.json is valid JSON (a missing comma breaks it), then run the test commands in Part D. Running the installer again is safe. |
| Back plate pushes away | A plate magnet is upside down. Pry it out, flip it, and glue it again (see Step 2). |