kantan drives the real claude CLI through one coding task at a time. It writes a plan, waits for your OK, then implements it and runs your tests until the exit code says they pass.
↑ the actual app, booted against real repos. Not a mockup.
You trust Claude to write the code. Trusting it to decide it's finished is a different thing. Drag the slider and see how much the agent's confidence changes the result.
$ npm test ✓ parses the manifest ✓ maps known fields ✕ warns once per dropped field 9 passing, 1 failing
The server runs your tests, not the agent. It branches on the exit code and never on the agent reporting success. You can't talk an exit code into anything.
One human decision, at the point where a decision is cheapest: before any code exists. Tap a stage.
{{stageBody}}
Your backlog is markdown in your own repo, in your own git history. kantan renders it and drives it. It never owns it.
A tiny re-enactment of a real run, sped up. Approve the plan, or send it back with a note first, the way you'd reply to a teammate's draft.
Nothing has happened yet, because nothing moves until you decide. That's the point.
No screen in kantan claims a verification it didn't observe. Your tests decide, and when there are none it says so. Flip the switch.
verifiedBy: {{verifiedBy}}
{{suiteExplain}}
One task. One human decision. Your tests. That's the whole thing.
Two agents never share a working tree. A task that can't start yet tells you why in a sentence, instead of just greying out a button.
"kantan runs one task at a time, so this one can start once that run finishes or you stop it."
Useful even if you never run kantan. Tap a card to flip it. The scripts are in docs/probes/.