Skip to content

Latest commit

 

History

History
193 lines (142 loc) · 7.42 KB

File metadata and controls

193 lines (142 loc) · 7.42 KB

RUNNER PROTOCOL

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.

The RUN screen, in band


The game

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.

Extraction

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 DEBRIEF tray

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 look

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.

Boot sequence

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.

Blackout

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.

TRACE

What you need

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.

Install

1. Get it.

git clone https://github.com/ShellPayant/runner-protocol.git

2. 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.ps1

It 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.sh

Safe 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.

The buttons

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

No console?

powershell -File pc\sim-runner.ps1 -Tab run -State critical

renders 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.

Making it yours

  • 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 in tools/test_model.py will tell you if your rebalance broke an invariant.
  • The art is device/art/*.raw — a trivial BGRA format described in runner.py's load_art(). The font rebakes from tools/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.

Credits

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.

Licence

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.