The guide
Four commands from clone to measured value.
Kage is a local-first memory harness: install it in a repo, put your agents behind one proxy, and let verified memory accumulate as you work. Nothing here needs an account or an API key, and every claim on this page has a command you can run to check it.
Step 1
Install — and get your first answer immediately
kage install initializes .agent_memory/ (plain OKF markdown,
reviewable in git), builds the code and recall indexes, writes the repo policy files
(AGENTS.md + CLAUDE.md) so every teammate's agent uses Kage, and wires the
agents it detects on your machine.
$ npm install -g @kage-core/kage-graph-mcp $ kage install Kage installed in ~/code/your-repo Memory .agent_memory/ created — packets are plain files, reviewable in git First win starter runbook captured ("How to run, build and test your-repo") — try it now: kage context "how do I run the tests" Indexes 3 built (code graph, recall, structure) Policy AGENTS.md + CLAUDE.md written — commit these so every teammate's agent uses Kage Agents claude-code ✓ wired
The "first win" is real, not staged: install derives one runbook from your
package.json scripts — verifiable ground truth — so the very first recall answers
usefully instead of returning nothing. A repo with no runnable scripts gets an honest no-op.
Step 2
One proxy, every agent
kage up starts the background proxy once. Any agent that speaks one of the
three wire formats flows through it with zero per-agent plugins:
Claude Code, aider, and any /v1/messages client via ANTHROPIC_BASE_URL.
Codex CLI, Cursor, and any /v1/chat/completions client via its base-URL setting.
Gemini CLI and any :generateContent client — including streamed responses.
$ kage up # audit mode by default: measurement only, your bytes forwarded untouched $ kage run -- claude # or any agent, with its base URL pointed at the proxy
The default is audit: Kage measures and changes nothing. Injection (assist) and reversible compression (protect) are explicit opt-ins, and assist refuses to start if the reversible store is unhealthy. If anything inside Kage fails, the proxy forwards your original bytes — fail-open is tested, not promised.
Step 3
Work normally — the memory loop runs itself
Durable learnings — decisions with their why, gotchas, dead ends, run recipes — are captured as OKF packets. Admission filters what your code already says: a body that merely restates its cited files routes to review instead of trusted recall, because the store audit measured that class at ~0 uses. Kage keeps what code cannot say.
Every memory is checked against the real repository, deterministically — no model in the verdict path. When cited code changes, the memory is re-checked; when it can no longer be trusted, it is withheld with a stated reason instead of misleading an agent.
Recall decides from its own score distribution whether the top memory clears this store's noise band — "inject nothing" is a first-class outcome. On the acceptance bench the false-injection rate is 0, with recall held at 1.0.
Every request gets a receipt: bytes and tokens measured or absent, never estimated into existence. Estimated figures (like rediscovery-cost heuristics) are always labelled estimates.
Step 4
Ask whether it is actually helping
kage report team is the lead-facing answer, assembled only from local
ledgers. Measured counts stay separate from labelled estimates; sections with no data say
unavailable instead of fabricating a zero.
The same report renders in the local portal (kage open) for leads, with an IC
transparency view: what attached to your session, at what confidence — including the
"injected nothing" decisions.
Teams
Share memory without trusting anyone blindly
Memory travels in git — a teammate who clones the repo already has it. The optional team workspace adds review authority on top: only approved model records sync (raw prompts never leave the machine), a proposer cannot approve their own high-impact claim, replays are idempotent, and everything lands in an append-only audit log. These invariants are enforced by tests against a real PostgreSQL — cross-tenant reads, raw payloads synced, self-approvals, duplicate syncs, and invalid webhooks all assert to zero, and local memory keeps working when the workspace is down.
Reference
The commands you will actually use
$ kage install # one-shot: init + index + wire detected agents $ kage up # background proxy + runtime (audit by default); kage down stops it $ kage run -- <agent> # run any agent through the proxy $ kage context "query" # validate + recall + code graph in one call $ kage check # verify docs/memory claims against the code — counted, not estimated $ kage report team # the "is this helping?" report $ kage status # memory + runtime health, measurement coverage $ kage open # the local portal (review queue, receipts, team value)
Privacy: everything above is local-first. No account, no API key, no telemetry. The store is plain markdown you can read, diff, and delete; export works even if you later use the paid workspace and stop paying.
Go deeper:
Using Kage
— the full manual (setup, proxy, daily use, team workflow, troubleshooting) ·
How it works
— the mechanism end to end (delivery channels, proxy modes, what is stored and what is
refused, the trust model, how recall ranks). Full CLI surface: kage help --all.