Claude has usage limits that fill up as you work and reset every five hours. This turns each of those windows into an extraction run, played out on a €40 handheld games console sitting next to your keyboard. Your usage is cargo. Bank it before the window burns out, or lose it.
It's the aggressive sibling of pocket-clawd, which shows the same numbers with a worried crab. This one has larvae.
▶ See it running in your browser — every tab and state, rendered by the same code the console runs.
Every 5-hour usage window is a RUN. Your live usage percentage is LOAD.
- Salvage accrues while you work — on rises only, paid at the current band's multiplier. The productive band is 60–85% LOAD: inside it the multiplier ramps from x2.0 to x3.0 over an hour held. Below it you're coasting; above it you're gambling.
- Press A to EXTRACT. Banks your salvage at a bonus (x1.5 in band) and ends your stake in the window. One extraction per run.
- Hit 95% LOAD, or get rate-limited, and the run is a BLACKOUT. Unbanked salvage is gone. The screen makes sure you know.
Every closed window becomes a serial-numbered specimen in the DEBRIEF tray, ranked F to S. Streaks, ranks and contracts are recomputed from the sample log at every launch — there is no save file, and quitting with unbanked salvage voids it. That's deliberate.
The only way to play well is to keep looking at the numbers — which is the entire point of putting them on a second screen.
The design brief was a security terminal that watches something biological — retro-futurist industrial sci-fi in the graphic-realism school: flat colour doing the work of rendering, everything annotated, nothing decorated. The lineage runs through F1 livery sheets, Ghost in the Shell, Designers Republic on WipEout, Teenage Engineering, PS2-era Sony ads.
The rules, in short — docs/DESIGN.md is the full spec:
- Eight colours, total. Near-black ground, graphite panels, bone text, and one load-bearing accent: acid green, used only for data, live state, and the thing you should press. Red means this run is in danger and appears for nothing else. Flat fills only — no gradients, no glows, no rounded corners, ever.
- One typeface, a caps-only industrial display face baked to bitmaps and
drawn as rectangles. It ships without
%,<or>, and its X, V and K collapse at small sizes — the font baker synthesizes and redraws them, which is its own small saga (DESIGN.md §3). - Photography survives as dither. Every image is quantized to a handful of colours and ordered-dithered against the near-black ground, so it reads as print, not as a picture.
- Motion is slow, mechanical, and mostly absent. Hard cuts with a 3-frame glitch, never fades. Nothing drifts horizontally (no vsync — it tears). The one living exception: the specimen larvae undulate, and their speed is data — a hot window writhes, a cold one barely moves.
- Everything is annotated — serials, callouts with leader lines, machine strings as texture. If a corner looked empty, it got a registration tick, not a flourish.
Five tabs: RUN (the live window), TRACE (a week of telemetry as a seismic plot), LOG (the specimen tray), TASKS (contracts), LINK (the uplink, and a calibration specimen). Leave it idle for two minutes and it goes full attract mode.
| A handheld | An R36S or one of its clones running ArkOS: a pocket-sized Linux console, around €40. Any similar 640×480 ArkOS handheld should work. |
| Claude Code | Already installed and logged in on your computer. That's where the numbers come from. |
| A network | Both on the same WiFi. If the console's dongle won't join your network (many can't do 5GHz/WPA3), pc\hotspot-on.ps1 turns your Windows PC into a 2.4GHz hotspot it can join. |
Nothing to install on the console — standard library Python only, because this firmware ships a locked-down filesystem.
1. Get it.
git clone https://github.com/ShellPayant/runner-protocol.git2. Get the console onto your WiFi (Options → WiFi Settings on ArkOS) and turn on Remote Services (SSH). The WiFi menu shows its IP address.
3. Tell the scripts where it is. Create pc\deploy.config.ps1:
$DeployHost = "192.168.1.42" # the console's IP
$DeployUser = "ark" # stock ArkOS username (password is also ark)and pc\pusher.config.ps1:
$DeviceUrls = @("http://192.168.1.42:8788/")Optionally copy device\runner_config.example.json to
device\runner_config.json with your details — it's what the LINK tab
prints under HOST.
4. Deploy.
powershell -File pc\deploy-runner.ps1It verifies the game model and every screen against every state first, and refuses to copy anything if a test fails. You now have Claude Runner in the console's Tools menu.
5. Want it on the main carousel instead, with artwork and a video snap? On the console:
cd /path/to/runner-protocol
sudo ./install/install-carousel.shSafe to re-run; install/uninstall-carousel.sh puts es_systems.cfg back
exactly as it was.
6. Start the pusher on your computer and leave it running. Double-click
pc\Start Usage Pusher.cmd (Windows). It reads the Claude Code login you
already have and sends just the usage percentages — nothing else. Within a
minute the deck goes live.
| L1 / R1 | previous / next tab |
| A | EXTRACT — bank the salvage, end your stake in this window |
| any button | wake from attract mode, skip the boot sequence |
| SELECT + START | exit |
powershell -File pc\sim-runner.ps1 -Tab run -State criticalrenders any screen in any state to an animated GIF with fabricated data —
the whole UI, exactly as the device draws it. Every image in this README was
made that way. States: cold, inband, critical, blackout,
extracted, extracting, nodata; add -Boot for the boot sequence.
Needs Python with pillow.
device/runner_config.json— what the LINK tab shows as HOST.- The band, multipliers and payout rules are constants at the top of
device/runner.py, and the test suite intools/test_model.pywill tell you if your rebalance broke an invariant. - The art is
device/art/*.raw— a trivial BGRA format described inrunner.py'sload_art(). The font rebakes fromtools/Maratype.otf, the sound effects from arithmetic (tools/bake_sfx.py). - Change anything visual and read docs/DESIGN.md first. Rule one: acid is load-bearing.
The typeface is Maratype by imago? / metamorphosiis, released freely by its designer — see NOTICE.md. Everything else — the game, the renderer, the artwork, the sounds — is this project's own.
MIT, see LICENSE. Do what you like with it.
Not affiliated with Anthropic. This reads your own usage numbers, with your own login, and makes a game about it.





