build me a snake game
Todo Agent work log (54) Needs permission 2 findings · P2 Merged ↯ ticket-16Plans
The plan is a page you can click, not a wall of prose.
Click any element, leave a note, and it goes back to the agent pinned to that element. The one below is live.
Click any part of the plan above.
Three shapes of plan
Markdown when that is enough, a graph of steps you can rearrange, or a full interactive page when the decision is visual.
Reject one part, keep the rest
You argue with one step, the agent answers that step, and the rest of the plan stands.
The shape of the thing
A ticket crosses the board, and you are in the middle of it.
Every lane is a place you can stop it, read what it did, and change your mind.
You write a ticket: a title, a paragraph, and whether it plans first.
An agent claims it and opens its own git worktree and branch.
It reaches outside the allow-list, stops, and asks you.
A branch, a diff, and graded findings, for you to sign off.
One reviewed merge reaches your base branch. Nothing else does.
Quality
You never see the first draft.
Set the budgets once; the agent fixes what it broke before the ticket reaches you.
AK-16 · agent work log
- 1wrote
parse_manifest()CRAP 38 - 2gate: over budget, 30 is the limitrejected
- 3split it, added two testsCRAP 21
It corrected itself. You get the version that passes.
Your numbers, only on what it touched
File length, complexity, coverage, per language and yours to change. Debt you did not write is left alone, so you can switch it on today.
Engines
A harness for your harness.
It drives Claude Code or Codex, not a model API, on the subscription you already pay for. Pick the engine per ticket.
Board · engine per ticket
- AK-16build me a snake gameClaude Code
- AK-21rewrite the token parserCodex
- AK-24bump the changelogClaude Code
Three tickets, two engines, one board.
Bring your own subscription
No API key and no per-token meter: five agents at once cost what your Claude or Codex plan already costs.
The agent is a setting, not the product
Whichever engine ran it, what lands is a branch, a diff, graded findings and one merge.
Containment
It does not run on trust.
Anything outside the allow-list stops the run and asks you, reasoning attached.
Pending Action · needs permission
I'm requesting set_plugin_source(state="loaded") because that is the last
step the ticket asks for. Expected effect: a new Snake tile becomes clickable in App
Space. To undo: call it again with state = "unloaded".
Go on, click one. Nothing happens here. On a real board this is the moment the run stops and waits for you.
Deny always wins
Allow-lists, deny-lists and ask-lists per board; a ban is absolute and an ask always reaches a human.
The agent argues its own case
Every request arrives with what it wants, why, and how to undo it.
Breadth
A pipeline you can see before it runs.
A Loop is a graph you edit and approve, and it runs in exactly that order.
Loop · pipeline
Two nodes with no path between them run at the same time.
Real parallelism, one reviewed merge
Every ticket gets its own git worktree and branch, and everything reaches your base branch through a single merge.
Gates in the graph
A human approval before anything irreversible, or a reviewer from a different model family that has to sign off first.
Extend
Teach it new tricks.
Point the board at a folder or a repo. The Snake game in the demo arrived this way.
What a plugin can add
- A command you can run on any ticket
- A panel on the board, your own UI
- A tool the agent can reach for mid-run
- Code that runs on the boardasks first
Only the last one runs anything, and it asks you first.
It stays out of your project
A plugin is cloned into a directory the board owns, never into yours.
Its UI cannot reach your data
Panels run sandboxed: no cookies, no storage, no board data, and you approve any network host.
Anywhere
It runs on your phone. Today.
The same board, installed like an app, not a cut-down companion.
Answer from anywhere
The gate, plan sign-off and the merge button all work at phone width.
It comes to you
Your phone buzzes when an agent stops to ask, so supervising a run is not a tab you refresh.
In progress
rev0 is trying things nobody else is.
An experiment in what supervising agents should feel like. Being built now:
Agents that teach, not just deliver
A ticket can end with a short quiz on what changed, so you do not go deskilled.
Plans stopped being documents
A graph you rearrange or a page you click, and approval became a conversation.
Loops that are fully deterministic
Pipelines that run the same way every time, so you rely on them rather than re-read them.
A hosted version
The board without running it yourself; local-first stays the default.
Every ticket starts at rev 0.
Provenance
Built by itself.
Every line of this page and the tool behind it was written by agents on this board, merged through the gate you just clicked. It runs on your machine, on your own repos.
Download for Apple SiliconmacOS Read the tutorial
All downloads: macOS, Linux AppImage, Linux .deb, Windows.