● e-ink companion for coding agents

A pixel critter that watches your coding agents.

Tokibot is a tiny e-paper gadget on your desk. Its mood shows what Claude Code, Codex, Gemini CLI, Cursor and friends are up to: working, waiting for you, asking for permission, done, or stuck at a rate limit. The tokens they burn are its food.

microSDRaspberry Pi Zero 2 WRP3A02.13" E-PAPER HAT V4250 × 122 px40-PIN HEADERRASPBERRY PIZERO 2 WMICROSD CARDPWR (NOT NEEDED)USB DATA CABLEPOWER + NETWORK
Fig. 01 — exploded viewpi zero 2 w + 2.13″ e-paper
§ 00 / the journey

From zero to critter.

needs a coding agentTokibot works with Claude Code, OpenAI Codex CLI, Gemini CLI, GitHub Copilot CLI, Cursor, Devin Desktop (Windsurf), Kiro CLI, Cline, OpenCode and Amp, on a Mac, Linux or Windows computer. Use one or several at once. Only Claude Code reports its 5-hour and 7-day budget, so the budget bars need it.

01 buy

Get the parts

A Pi Zero 2 WH, a 2.13″ e-paper HAT, a microSD card and a data cable. About € 50–60, no soldering. Shopping list

02 flash

Flash the image

Download the image and write it to the card with Raspberry Pi Imager. Download

03 build

Put it together

Press the display onto the Pi, insert the card and plug the cable into the port labelled USB. Assembly guide

04 connect

Connect your agents

One install line adds Tokibot's hooks to Claude Code and the other harnesses you pick. For Claude Code there is also a plugin. Step 7

05 code

Work as usual

Start your agent. The critter follows along, eats the tokens, levels up and tells you when the agent needs you.

06 optional

Cloud sessions

Claude Code in the cloud reaches the gotchi through a relay over Wi-Fi. Relay setup

§ 01 / how it works

Hooks in, moods out.

Your coding agent calls a small client through its hooks (Claude Code also through its status line; OpenCode and Amp through a small plugin). The client sends a few lines of metadata to the gotchi, over the USB cable or Wi-Fi. The gotchi folds every running session into one mood and draws it on the e-paper display.

# what one hook sends, nothing more
{ "hook_event_name": "PreToolUse",
  "tool_name": "Bash",
  "session_id": "4f1c…",
  "project": "my-app" }
Raspberry Pi Zero 2 WRP3A0YOUR CODING AGENTHOOKS + STATUS LINEUSB CABLE OR WI-FIHTTP · METADATA ONLYTOKIBOTONE MOOD FOR ALL SESSIONS
Fig. 02 — data flowusb or wi-fi
§ 02 / features

Small device, big feelings.

01 sessions

Knows your sessions

Several sessions, worktrees or agents at once? The one that needs you most wins. The footer counts sessions that are working, waiting and done, plus your 5-hour and 7-day budget.

02 xp

Grows with your work

Finished replies, tasks and tool calls earn experience. The critter levels up, keeps a daily streak, sums up your day in the evening and gets hungry when you leave it alone.

03 os

Its own tiny OS

A slim Buildroot image with a read-only root filesystem. No Debian, no Wi-Fi hacking tools, no SSH. Pulling the plug does not hurt the card.

04 relay

Works with the cloud

An agent in the cloud cannot see your desk. An optional ntfy relay carries the events to the gotchi over any Wi-Fi, even your phone's hotspot.

05 privacy

Private by design

Only metadata leaves your computer: event, harness, session ID, folder name, tool name, token counts and limit percentages. Prompts, code and replies never do.

06 settings

Set up in the browser

Wi-Fi, time zone, rotation and token live on a small settings page on the gotchi. App updates install from there too, no reflashing needed.

§ 03 / friends

Gotchis make friends.

Take your gotchi to the office, a meetup or a conference. Gotchis that meet notice each other over Bluetooth and earn XP. Two taps make them friends, signed by both. Friends unlock badges and accessories, and working side by side earns 10 % more.

No account, no server, no tracking: the beacon id changes every 15 minutes, and only game data goes over the air.

Pixel's display: New badge: First friend!Mochi's display: New friend: Pixel!
Fig. F1 — two gotchis, one friendshipbluetooth le
§ 04 / specimens

Twelve moods.

Each with its own face and a short line in the speech bubble. Rendered from the same code that drives the display.

ready: a new session started
01 ready· a new session started
working: prompt sent, tools running
02 working· prompt sent, tools running
tired: 80 % of the 5-hour budget used
03 tired· 80 % of the 5-hour budget used
permission: Claude asks for permission
04 permission· Claude asks for permission
waiting: your turn
05 waiting· your turn
done: the reply is finished
06 done· the reply is finished
error: overloaded, logged out, …
07 error· overloaded, logged out, …
limit: rate limit, with reset time
08 limit· rate limit, with reset time
idle: nothing going on
09 idle· nothing going on
levelup: a new level reached
10 levelup· a new level reached
summary: the day's tally, in the evening
11 summary· the day's tally, in the evening
hungry: no work for two days
12 hungry· no work for two days
§ 05 / status

Where it stands.

v0.5.0Ready-made images are on the download page. They boot and run on a Pi Zero with the 2.13" e-paper. Bluetooth friends between two real gotchis have only been tried in the simulator so far.