// metanoia, Greek: a change of mind

Metanoia

A cockpit for AI agents. They do the typing. I decide what they may touch, and I can see everything they do while they do it. I built it, then used it to build everything else on this site.A local Windows workspace for coding agents. Claude Code runs through the Agent SDK and Codex through its app-server; Metanoia owns what surrounds them: routing, approvals, durable sessions, plan review, usage accounting and evaluation.

Built in
39 days
Commits
486
Lines of TypeScript
113,108
Decision records
131
Test files
252

It starts with a sentence.

You say what you want in your own words, the way you would to a colleague. Scroll, and the run plays.One session per folder, each continuing one Claude Code session or Codex thread across stops, failures and restarts. Scrolling drives the run clock.

A small judge picks the brain.

Not every job needs the most expensive AI. A small model called Jev reads the task and decides how much thinking it deserves.TypeSafe's Jev returns typed judgments, never conversation: model, effort and demand from a schema, shown as the Route row.

You can watch it think.

Every file it opens and every command it runs appears as it happens. The list on the right is a live estimate of where it has got to.Tool calls arrive as run events through one reducer. The phase track is Jev estimating the current phase from the log, not the agent reporting on itself.

It sends helpers.

For side jobs it starts smaller agents of its own. You can see each one, or stop it.Subagents are tracked with their tools, tokens and time, follow the same permission path, and open in the agent map or as a chat.

Everything is metered.

These tools come with a usage allowance. This shows what the work is costing as it goes, so nothing is a surprise.Weighted tokens count new input once, cached input a tenth and output five times. The context card shows the window and the handoff point.

And it stops when it should.

It wants to publish. Jev had doubts, so the whole run waits for a person.P(approve) 0.38 fell under the threshold for strictness 0.50, so the request went to the operator. Auto+ would ask a judge from the other provider first.

Your call. The buttons on the card work.

It pushed, and it finished. That is the whole loop.

It stopped, and it asked what you would prefer instead.

The interface is the app's real markup and stylesheet, captured from its renderer. The run itself is scripted.

Four ways to trust it

Typical outcomes. In a real run the decision is made per request, and the reasoning is shown on the card.

A rival AI reads the plan

Before anything big, the agent writes a plan, and an AI from the other company goes through it looking for holes. They argue. I get the summary.Plan mode with cross-review: the other provider objects in a fixed line format, the drafter answers, a ruling closes each objection, and open conflicts need a side chosen before implementing.

A rival AI reads the plan

It marks its own homework

I don't guess whether a change made it better. It runs agents on test tasks with answers they can't see, then scores them against plain Claude Code.Built-in tasks and Aider's Polyglot with hidden checks, baselines against plain Claude Code, variant trials pinned to harness IDs, and SWE-bench Verified and Terminal-Bench in Docker.

It marks its own homework

It keeps a map of its helpers

When several agents work at once, you can see who started whom and what each one did.The agent map reads the subagent tree from the run. Subagents follow the same approval rules as the main agent.

It keeps a map of its helpers

Models can argue with each other

Up to eight AI models sit in one chat and discuss a question in turn. It settles more than you would expect.Group chat runs models in turn without tools, with a lead you can hand to any participant.

Models can argue with each other

Nine ways to look at it

Same app, same moment, nine themes. Drag across it, or pick one.Each theme swaps a full token set, and some have instruments of their own. Every figure they show is a reading the app already has. One screen state, nine stylesheets. Drag across it.

The fly lives here too

The fruit fly from the home page started as a hidden feature in this app. Switch it on and it walks across the window, sits on the approval cards, and jumps when your cursor comes near. Nobody asked for it. I wanted to know if it could be done.The fly was written in Metanoia: 2,000 neurons selected from Shiu et al.'s tables of the FlyWire connectome, stepped every 8 ms in a worker, with synaptic fatigue added because the isolated circuit ran away. The senses, motor mapping and body are hand-written, and every number there is marked measured, estimated or assumed.

Every commit to Metanoia, per day, 2026-09-22 to 2026-10-30. Busiest day: 95.

The repository is private. Happy to walk through it. Ask me.

Theme 9 of 9

There is another way to look at this.

Keep your eyes on this colour for a few seconds. Then press the button.Fixate on #46E3FF for a few seconds, then press the button. Your cones will supply the transition.

Engage