Claude Code writes the change. Keel holds what it's for.
Keel keeps requirements, acceptance criteria, rules and decisions as versioned, linked records, gives each task a small context pack of the records linked to it, has a different agent review every merge request, and marks work done from the merged change and its CI verdict.
One Claude Code session with a good CLAUDE.md goes a long way. With several sessions on a real system, the same problems keep coming up:
A session reaches something the spec doesn't cover and fills the gap with a guess.
A decision made in one chat never reaches the other sessions, or a later session quietly undoes it.
“Done” means the agent said so.
The instructions file grows until nobody is sure which parts still hold.
How Keel works alongside Claude Code
A small context pack per task. Each task gets a pack built from the records linked to it; the architecture decisions, rules, acceptance criteria and dependencies linked to it are always included.
Stop and ask, without stopping everything. By rule, when a task runs past what its specification covers, the coding agent stops and raises a design question with options instead of guessing. Only that task waits; the answer is recorded with who decided.
A different agent reviews. A separate reviewer agent checks every merge request, test changes included, against the task and the project’s standards.
Done is decided by the server. A task is marked done from its merged change and CI verdict. Its tests must prove acceptance criteria held in Keel, which the coding agent can’t change.
Runs in your environment. Keel works through a command-line tool, hooks and CI reporting that run where your agents already run. Keel’s server never connects to your repository, and its service doesn’t call an AI model.
Built this way: DynoInvoice
DynoInvoice, our e-invoicing system, is built by agents under Keel, and our coding, reviewing and coordinating agents all run on Claude, via Claude Code. A person rules on product functionality and direction. From the record:
In the week to 26 October 2026, agents raised 762 design questions. Of the 737 answered, the owner answered 59 (8%); the rest were ruled without the owner.
Of 687 merge requests merged across 24 repositories as of 26 October 2026, 259 (38%) were sent back by an independent reviewer at least once before merging.
For 487 tasks, the median context pack was about 11,700 characters, about 3% of the requirements, business rules and architecture decisions held in Keel (as of 26 October 2026).
No. Keel is a separate service. It works through a command-line tool, hooks and CI reporting that run in your own environment, alongside the agents you already use.
Does Keel send my code to Claude or any other model?
No. Keel's service doesn't call generative AI models. Your agents keep running where they already run, with the model provider you already use. Keel holds the record and runs the checks.
Does a person have to answer every question an agent raises?
No. Questions about functionality, direction, exemptions or relaxing a check go to a person, and the answer is recorded with who decided. Other questions are ruled by the coordinating agent when a named best practice settles them; when it doesn't, they go to the person as well. A question ruled before is answered from the record.
Can I use Keel today?
Keel is open to a small group of design partners: engineering teams already building with coding agents. During the beta it's free, and we set up each team by hand.
Running Claude Code on something that matters?
We're opening Keel to a small number of engineering teams already building with agents. We set up each team by hand.