Shared long-term memory for AI coding agents
Every teammate's Claude Code session pours what it learns into one shared memory — rules, architecture, commands, hard-won lessons — reviewed by a human and handed to the next agent, for anyone on the team, before it touches a file.
Duplicate-invoice outage in March — always set an idempotency key on refunds.
Stripe webhooks are the source of truth — reconcile, don't trust the client.
All money is stored in integer cents — never floats, anywhere.
Don't bump Prisma to v6 — it breaks the migration runner in CI.
one teammate learns it once — every agent on the team inherits it
Today
You explain the same conventions again. The agent re-discovers the same landmine. The fix you argued about last week gets undone. Nothing it learns survives the session.
With Memmo
What your team learns while working becomes short, reviewed memories — and every future session, for every teammate, starts already knowing them.
How it works
Three steps, running quietly in the background of the work you already do.
Memory comes from real work, not from writing docs.
When a Claude Code session ends, Memmo reads what happened — the corrections you gave, the decisions the agent made, the commands that failed — and proposes short, atomic memories. Merged PRs and a one-time repo scan propose more.
A human approves. Nothing reaches an agent unreviewed.
Proposals land in an inbox. Approve, edit, reject — or set confidence thresholds and let obvious ones through. Corrections supersede the memory they replace, so knowledge evolves instead of piling up.
Every session starts already knowing.
At session start the agent gets a briefing: rules, architecture, key commands, known risks. When you type a task, the memories relevant to it are pulled in. Before it edits a risky file, it's warned.
What the agent sees at session start
Memmo — what this team already knows about this repo:
Project rules & decisions:
- Run lint before every push — CI rejects unformatted code.
- Cache reads only — writes stay uncached (cart consistency).
Architecture:
- Billing is event-driven off Stripe webhooks → invoice-worker.
Key commands:
- Use make test-billing — the full suite times out on billing.
Known risks — check before touching related code:
- Stripe webhooks must be idempotent — a missing key caused the
March duplicate-invoice outage.What a memory is
Not a wiki page. Each memory is one rule, risk, command or decision — a sentence or two, typed, scoped to the repos it applies to, optionally pinned to file paths.
Every repo in this project must run `pnpm lint` before pushing — CI rejects unformatted code.
A duplicate-invoice outage came from a webhook without an idempotency key. Check keys before touching handlers.
The full suite times out on billing. Run `make test-billing` instead.
GET responses are cached at the edge; writes stay uncached because carts must be consistent across devices.
Get started
The git remote is the identity. memmo init registers the repo, wires Claude Code, and offers a scan that proposes starter memories. Teammates who clone the repo just sign in.
.mcp.json, CLAUDE.md and hooks, committed once$ npm install -g @memmo/cli
$ memmo login
$ memmo init
Connected acme/billing-api → project "Acme".
- created .mcp.json
- created CLAUDE.md
- registered 4 Memmo hook(s) in .claude/settings.json
Scan this repo now to propose starter memories? (Y/n) y
Deep scan complete in 94s — 23 new memory proposal(s) waiting in your Inbox.Built for teams
Memory, Inbox, Connect, Settings. That's the whole app.
A project is the set of repos that share one memory — one monorepo, or twenty services. A memory applies to all of them or to specific repos.
“What breaks when I touch webhooks?” finds the idempotency incident. Semantic search runs locally — no vector database, no extra keys.
When the facts change, a correction supersedes the old memory on approval. Duplicates are caught before they reach the inbox.
Attach file globs to a risk and the agent is warned the moment it goes to edit a matching file — not buried in a doc it never read.
Claude Code gets the full loop (hooks + MCP). Codex, Cursor and Claude Desktop read the same memory over hosted MCP.
Bring your own Anthropic, OpenAI or Google key for extraction. Every approve, edit and supersede is logged.
Invite your whole team on every plan — you're only metered on how often your agents pull memory.
For solo devs and small teams getting started.
Get started freeFor teams that rely on it every day.
Start free, upgrade in-appFor regulated teams that need control.
Talk to usGive your agents a memory that grows with your team — starting with the next session.