holt
macOS · Apple silicon
approved context for coding agents

Teach your agents once.

Every session, you re-explain the same conventions to Claude Code, Codex, and Cursor — the odd module boundary, the migration that must never run twice, the way you want a change reviewed. Holt keeps that context, lets you approve every word of it, and carries it to every agent you use.

Two minutes to a taught agent

01

Start in a repository you care about

cd your-repo && holt init

Holt reads the instruction files the repo already has — CLAUDE.md, AGENTS.md, .cursorrules — and proposes a small first set. Proposals, not facts.

02

Decide each claim yourself

holt review --project .

Approve, edit, or reject — three at a time, each with its source. Nothing an importer or an agent proposes enters your context without your keystroke. Ever.

03

Deliver it to every agent

holt connect claude-code   # or codex, or cursor
holt publish --project .   # guaranteed: managed blocks in CLAUDE.md + AGENTS.md

Agents can ask the vault over MCP, and the published block reaches them every session whether they ask or not. Approve a change once — every opted-in file updates itself.

04

See what was actually read

holt receipts --project . --last 5

Every vault read leaves a receipt: which agent, which claim, which repository source backed it. A tool should show you what it read. Most don't. This one does.

What's in the box

the vaultApproved project context with provenance, in one SQLite file any tool can open. Searched by keywords and meaning together, fully offline.
the reviewAgents and imports propose; you approve, edit, or reject. In the terminal, or in the browser at holt ui — localhost only.
the active setAt most seven instructions per repository, each explicitly activated by you. A small set an agent follows beats a wall of text it skims.
the deliveryMCP for agents that ask, published managed blocks for every session regardless, holt pack for tools that speak neither.
the receiptsAn append-only record of which client read which claim, and the lifecycle of every instruction — edited, stale, superseded, withdrawn.
the exit doorFull export to plain JSON and Markdown that stand alone without Holt. A vault you can't leave is just a nicer cell.

Why Holt exists

For the last few years, you have been teaching machines how you work.

Every convention you stated. Every correction you typed instead of giving up. Every architectural decision you defended, every “no, like this” that taught a model your taste. And then the session ends, the tool changes, or the repository moves — and the next agent asks you to teach it all over again.

The context files that were supposed to fix this grew into walls of text nobody curates. Agents append to them, teammates paste into them, and six months later no one can say which lines are still true, where any of it came from, or whether the agent even read it. Context that silently became “true” because an agent wrote it down is how a model confidently repeats last year's mistake.

Holt starts from a smaller promise. Keep the working context that matters to your code. Let you approve every word of it — a proposal is not a fact. Give every claim a source, every read a receipt, and every instruction a lifecycle, so stale context leaves the moment the evidence changes. And carry it to the agents you choose, not the vendor you happen to rent this month.

The measure is not how much Holt remembers. The measure is whether the next agent respects the right decision without making you explain it again.

Current limits

Apple siliconThe current build supports Apple-silicon macOS. Linux is planned — say so if you want it sooner.
Three toolsHolt connects Claude Code, Codex, and Cursor over local stdio MCP. Published blocks reach anything that reads CLAUDE.md or AGENTS.md.
Honest defaultsNo telemetry, no accounts, no cloud. If a repository has nothing worth keeping, Holt proposes nothing — an empty set beats an invented one.