Shared memory across your team and your AI agents — with judgment about what's worth keeping.
RoBrain isn't just another memory layer — it's the brain that helps you and your agents make better decisions and avoid costly mistakes.
Most agent-memory tools stop at capture — they store what happened and hope you query it later. RoBrain is built around a different question: what is worth keeping, and what should surface before the agent acts again? Passive capture records every decision and the alternatives your team ruled out; batch Synthesis reads the whole corpus to flag contradictions, drift, and recurring entities that no single session could see. Coding is the first vertical because the feedback loops are tight — reverts, incidents, and rework make the cost of a forgotten rejection measurable. The same architecture applies wherever agents make decisions that outlast a session.
RoBrain is built by Rory Plans, an agent orchestration platform; it is the memory and judgment layer that keeps multi-agent, multi-developer work coherent over time.
Whether that's worth the setup depends on your situation.
If none of these sound familiar, a static CLAUDE.md may be enough for now.
See the full walkthrough →
If they do, here's how RoBrain compares to the obvious alternatives.
| Feature | RoBrain | Mem0 | Cloudflare Agent Memory | Claude Code Auto-Memory |
|---|---|---|---|---|
| Tracks what your team ruled out | Yes — structured rejected[] field per decision |
No | No | No |
| Catches when a new decision contradicts an old one | Yes — scheduled scan across the whole project (Synthesis) | No — only at the moment of insertion, no scheduled corpus scan | Partial — internal use only | Yes — silently deletes the loser |
| Past decisions stay queryable after you change your mind | Yes — old and new both kept | No — new replaces old | No | No |
| Shared memory across your team | Yes — one Postgres for the whole team | Partial — via scoping workaround | Yes — managed profiles | No — per-user, per-machine |
| Works across Claude Code, Cursor, Copilot, and Codex CLI | Yes | Yes | Yes | No — Claude Code only |
| Open source, self-hosted | Yes — Apache 2.0, your Postgres | Partial — graph features paywalled | No — managed only | N/A — markdown files locally |
| Warns the agent before it suggests something you ruled out | Cloud: yes, automatic. Self-hosted: yes, via inject. |
No | No | No |
Why structured lifecycle matters: Claude Code Auto-Memory can flag contradictions — but silently deletes the loser. RoBrain keeps both sides queryable so teams revisit reversals intentionally.
More detail and tradeoffs: Concepts — Comparisons.
Decisions are durable context, not permanent vetoes. When a previously rejected idea makes
sense again, you supersede the old row — history stays queryable, the new decision becomes active.
Synthesis flags contradictions for robrain review; it does not fossilize your
stack. Informed reconsideration, not lock-in.
Sensing MCP runs quietly inside your editor and fetches the
always-on summary at session
start. The robrain CLI is the manual surface for review, explain, synth, focused
inject queries, and export-memory (Claude auto-memory and an optional git
ledger).
npx robrain export-memory --ledger regenerates decisions.md for PR review; Postgres
stays the source of truth. Separate from per-user Claude auto-memory under
~/.claude/projects/<slug>/memory/.
Run pnpm docker:up and RoBrain brings up Postgres (decisions + pgvector for
retrieval) and the Perception API (extracts and stores decisions from session turns) in
the background.
Synthesis is the batch job: run npx robrain synth on demand or on a cron
schedule so the whole corpus gets scanned for contradictions, drift, and recurring entities.
Planning API and Control MCP add task-boundary relevance scoring and automatic injection on Rory Plans cloud.
Your conversation turns never leave your machine. The Perception API runs locally in Docker, extraction happens on your hardware, and decisions are stored in your Postgres. Nothing is sent to Rory Plans or any other external service.
The one network dependency: extraction calls Anthropic’s Haiku API (you provide
ANTHROPIC_API_KEY) and embeddings call OpenAI, Voyage, or Cohere. Those are the only outbound
calls. You can swap providers or run a local model if you want full air-gapping.
And here's exactly what gets stored:
Convinced? Here's the path from zero to first capture — plan on one sitting from a fresh clone (Docker, keys,
install, then init-project on your app repo).
First pnpm docker:up auto-creates .env and fills PERCEPTION_API_KEY /
POSTGRES_PASSWORD. Perception still needs your LLM + embedding keys before it stays up.
One-time — RoBrain repo
git clone https://github.com/adelinamart/robrain
cd robrain
pnpm install && pnpm build
pnpm docker:up # first run: creates .env; Perception won't start yet
# open .env, add ANTHROPIC_API_KEY + your embedding key (e.g. OPENAI_API_KEY)
pnpm docker:up # second run: Perception now boots
npx robrain install --self-hosted --repo-root "$(pwd)"
OpenAI-only: set LLM_PROVIDER=openai and OPENAI_API_KEY instead of Anthropic — see
Concepts.
Per application project
cd /path/to/your/project
npx robrain init-project
Corpus judgment (manual once, or add to cron)
npx robrain synth
Synthesis writes contradiction flags, drift signals, and entity summaries into your DB — review with
npx robrain review. It does not capture new decisions; it judges what you already have.
Git-committed decision ledger (opt-in)
npx robrain review # optional — inspect/approve captured decisions in the CLI
npx robrain export-memory --ledger
# custom path: npx robrain export-memory --ledger docs/decisions.md
Use review when you want to see what is being recorded and approve or reject rows before regenerating
decisions.md for git — skip it if you are fine exporting straight from the DB.
After init-project, every repo gets CLAUDE.md and AGENTS.md (Codex CLI),
and Cursor also gets .cursor/rules/robrain.mdc with alwaysApply: true — capture setup is automatic.
See
docs/cli.md (install + commands) and
docs/troubleshooting.md for editor-specific notes.
Install details: docs/cli.md ·
Upgrading ·
Concept walkthrough.
Already running self-hosted, or want the version with less manual lifting?
Self-hosted gives capture, corpus-wide judgment, and the
always-on summary at session start. When you need
focused context beyond that block, you still pull it with inject.
Cloud adds Planning + Control — rejection warnings and conflict surfacing before the agent acts, without paste. Next up: linking decisions to outcomes (reverts, incidents, cycle time) so RoBrain can flag when a team is optimizing for the wrong thing in its own codebase.
Overview: README on GitHub. Deep dives:
explain