Team memory
Session recall lets an agent search what happened. Team memory is the complement: a place to keep what your team knows — the preferences, decisions, and project facts that should shape every session without anyone re-explaining them. Where recall reconstructs context from past transcripts, memory is deliberate, durable knowledge you (or your agents) write down once and reuse everywhere.
A memory is a small, titled fact with a scope — “we deploy from main only,” “the billing service owns money movement, never the cart,” “prefer pnpm in this org.” It lives on your Capacitor server, not in any one repo’s CLAUDE.md, so it’s shared across repos and teammates and survives a fresh checkout.
Scopes
Section titled “Scopes”Every memory is filed at one of three scopes, which decides who it applies to:
- Org — everyone in your organization.
- Team — a specific team you belong to.
- Yours — private to you.
Memories are also repo- and machine-aware, so the set an agent sees is the set relevant to where it’s actually running.
How agents reach it
Section titled “How agents reach it”The kcap-memory MCP server (run as kcap mcp memory) gives an agent the full read/write surface. It’s auto-registered for Claude Code by kcap setup; point other MCP-aware clients at kcap mcp memory over stdio to grant the same tools.
| Tool | What it does |
|---|---|
search_memories | Find memories by query, scoped to what’s visible here. |
get_memory | Read one memory’s full body. |
save_memory | Write a new memory at a chosen scope. |
update_memory | Edit an existing memory. |
rescope_memory | Move a memory between org / team / yours. |
archive_memory | Retire a memory that no longer applies. |
Because memory can write, its server prompts for approval rather than being auto-trusted the way the read-only recall server is — saving a team-wide fact is a deliberate act. In practice you don’t call the tools by hand; you tell the agent (“remember that we deploy from main only, org-wide”) and it calls save_memory.
The SessionStart index
Section titled “The SessionStart index”Search is pull-based — the agent has to think to look. So on top of it, Claude Code sessions get a compact index of the relevant memories injected automatically at session start: a ## Team memory block of one slug: description line per memory, grouped Org / Team / Yours, with a nudge to call get_memory or search_memories for the full text.
Two properties keep this cheap and safe:
- Index only, never bodies. Only the one-line descriptions are injected — a short line per memory, not its full body — and the agent fetches a body on demand. That keeps the footprint far smaller than injecting every memory in full, the same shape as a local
MEMORY.md. - Fail-open. The fetch runs in parallel with the session-start hook and never blocks it; a slow or failed fetch simply injects nothing.
Injection is Claude Code only for now (other harnesses still get the full pull-based tools). Opt a profile out entirely:
kcap config set disable_memory_index trueThis is independent of the eval-guideline injection toggle (disable_session_guidelines) — you can keep one and drop the other.
Related
Section titled “Related”- Session recall — search past sessions; the what happened to memory’s what we know.
- Facts & curation — repo-scoped guidance mined from evaluations, a separate SessionStart injection.
- Visibility & sharing — how org / team / private scoping works elsewhere in Capacitor.