Skip to main content

Remembra

Remembra Relay

One agent stops. The next one already knows.
When an agent's session ends, Remembra Relay saves a handoff built from what git says happened.
The next agent, on another machine, from another vendor, or next week, starts from it.

PyPI GitHub Stars License: MIT Documentation

Website • Relay guide • Docs • Changelog • Discord


Install

First get a free key at app.remembra.dev, then run:

pipx install --force 'remembra[mcp]>=0.16'
remembra-install --all
remembra-relay connect --apply

remembra-install asks for the key at a hidden prompt (or reads REMEMBRA_API_KEY) and shows its changes before it writes. connect --apply writes the hooks and keeps a backup of each file; run remembra-relay connect alone first to see every change without writing. Codex runs the hooks only after you trust them: run /hooks in Codex once. Hosting the server yourself? Add --url <your server> to remembra-install. remembra-relay ships in remembra 0.16.0.

Handoffs not arriving? remembra-relay doctor says where the baton dropped, from this machine's files and your trail, with one fix per problem; it only reads. Inside your agent the local MCP server has the same checks as read-only tools: remembra_doctor, remembra_setup (the install steps for this machine) and remembra_help. See Doctor.

What the next agent sees

Claude Code finished a session and wrote in its summary that the work was done and pushed. Git disagreed. The next agent's brief starts with:

Last session: claude-code (key-verified), 12m ago, on feat/pdf-export@a41f2c9: done: a41f2c9 Add PDF export for invoices; 77c01aa Embed fonts in exported PDFs; tests passing: pytest tests/test_pdf.py (12 passed); changed 3 file(s): invoices/pdf.py, invoices/fonts.py, tests/test_pdf.py / NOT done: 2 commit(s) not pushed to origin/feat/pdf-export / failing: none / next (derived from the recorded facts): push 2 commit(s) to origin/feat/pdf-export (facts collected by remembra-relay from git and the session transcript) (the agent's summary contradicts these recorded facts)

The done, not done and failing sections come from git and the session's test runs, never from an LLM. The agent's own summary is optional; it is checked against those facts and shown as unverified, or, as here, contradicted.

How it works

  1. Close. When a session ends, remembra-relay close reads the branch, commits, changed and uncommitted files and unpushed commits from git, and, for Claude Code and Codex, the commands, test runs and open items in the local transcript (Codex's is its rollout file). The transcript never leaves your machine; secrets are redacted before anything does.
  2. Brief. When the next session starts, in the same tool or another, remembra-relay brief (run by the verified session hooks) or the session_brief MCP tool (any MCP agent can call it) gives the agent who worked last, what is done, what is failing and the next step, in about 1,500 tokens. Everything another agent recorded is wrapped as untrusted data.
  3. Trail. Every handoff stays in order: remembra-relay trail, or the Trail page in the dashboard. A git log for your agents.

The same repository on a laptop, a server or in a worktree is one project, because it is identified by its git remote. Give each agent its own scoped key and its handoffs show as key-verified.

Agents

Agent Session hooks How it reads and writes handoffs today
Claude Code verified Hooks: brief at start, close at end, with test results from the transcript
Codex verified (codex-cli 0.155.0-alpha.16.4, a prerelease) Hooks: brief at start, close at end, with commands and test runs from the rollout; trust them once with /hooks in Codex
Gemini CLI verified (Gemini CLI 0.61.0) Hooks: brief at start (after /clear, with the first prompt), close at end; they run only in folders you trust
Qwen Code verified (Qwen Code 0.24.6) Hooks: brief at start, close at end, on a rate-limit or billing stop and before /compress; qwen -p writes no handoff
Kimi Code verified (Kimi Code 2.1.1) Hooks: brief with the first prompt, close when the TUI exits; kimi -p writes no handoff
Cursor unverified MCP tools (session_brief, close_session)
Any other MCP agent none MCP tools

Claude Code's and Codex's session hooks are verified (Codex with codex-cli 0.155.0-alpha.16.4, a prerelease; no stable Codex release has been run yet). The Gemini CLI, Qwen Code and Kimi Code hooks are verified too: each was run against the real tool at the version in the table, with a local stand-in for the model, and put the brief in the model's request and posted the handoff; other versions have not been run. The Cursor hooks are unverified: Cursor's own hook runner ran them, but no logged-in Cursor session has yet. connect leaves them out unless you add --include-unverified. Until they are tested, Cursor reads the brief and writes its handoff through Remembra's MCP tools, as does any MCP agent.

How it compares

Remembra Relay Vendor memory (Claude Code, Codex, Copilot, Windsurf) Local handoff tools Memory APIs (Mem0, Zep, Letta)
Works across machines Yes, by git remote Mostly no No Yes
Works across vendors Yes No, one vendor each Yes Through their API
Handoff facts from git Yes, with the summary checked No Transcript or diff No
Durable trail of sessions Yes No No No
Enforced coordination between agents Crew mode, in build Claude-only agent teams No No

Details, with a source and date for every claim: Remembra and other handoff tools. claude-mem and agentmemory are larger projects that also carry memory between sessions; the comparison says where each is the better pick.

Pricing

Handoffs, briefs, the inbox, the trail and search are free on every plan. Remembra Cloud: Free, Solo $12/mo, Pro $29/mo, Team $15/seat/mo (pricing). Self-hosting is free under the MIT license.


The memory API underneath

Remembra Relay runs on Remembra's memory layer, which you can also use directly: store facts, recall them by meaning, and let it pull out the people, projects and relationships in them.

from remembra import Memory

memory = Memory(user_id="user_123")
memory.store("Had a meeting with Sarah from Acme Corp. She prefers email over Slack.")
result = memory.recall("How should I contact Sarah?")
print(result.context)
# "Sarah from Acme Corp prefers email over Slack."

In v0.16.0 the memory layer also keeps the exact source text of every derived fact, points each fact back to it, and flags a fact that does not match its source as unverified.

Self-host the server (2 minutes)

One Command Install

curl -sSL https://raw.githubusercontent.com/remembra-ai/remembra/main/quickstart.sh | bash

That's it. Remembra + Qdrant + Ollama start locally. No API keys needed.

Or with Docker Compose directly:

git clone https://github.com/remembra-ai/remembra && cd remembra
docker compose -f docker-compose.quickstart.yml up -d

Try it:

# Store a memory
curl -X POST http://localhost:8787/api/v1/memories \
  -H "Content-Type: application/json" \
  -d '{"content": "Alice is CEO of Acme Corp", "user_id": "demo"}'

# Recall it
curl -X POST http://localhost:8787/api/v1/memories/recall \
  -H "Content-Type: application/json" \
  -d '{"query": "Who runs Acme?", "user_id": "demo"}'

Connect your agents (since v0.10.0)

One command configures the agents it detects:

pip install remembra
remembra-install --all --url http://localhost:8787

This auto-detects and configures: Claude Desktop, Claude Code, Codex CLI, Cursor, Gemini CLI. (Windsurf is unverified: remembra-install --agent windsurf writes it, --all does not.)

Verify setup:

remembra-doctor all
Manual MCP Config (if needed)

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "remembra": {
      "command": "remembra-mcp",
      "env": {
        "REMEMBRA_URL": "http://localhost:8787",
        "REMEMBRA_USER_ID": "default"
      }
    }
  }
}

Claude Code:

claude mcp add remembra -e REMEMBRA_URL=http://localhost:8787 -- remembra-mcp

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "remembra": {
      "command": "remembra-mcp",
      "env": {
        "REMEMBRA_URL": "http://localhost:8787"
      }
    }
  }
}

Now ask Claude: "Remember that Alice is CEO of Acme Corp" — then later: "Who runs Acme?"

Python SDK

pip install remembra
from remembra import Memory

memory = Memory(user_id="user_123")
memory.store("Had a meeting with Sarah from Acme Corp. She prefers email over Slack.")
result = memory.recall("How should I contact Sarah?")
print(result.context)  # "Sarah from Acme Corp prefers email over Slack."

TypeScript SDK

npm install remembra
import { Remembra } from 'remembra';

const memory = new Remembra({ url: 'http://localhost:8787' });
await memory.store('User prefers dark mode');
const result = await memory.recall('preferences');

Memory features

🧠 Smart Extraction — LLM-powered fact extraction from raw text

👥 Entity Resolution — "Adam", "Mr. Smith", "my husband" → same person

⏱️ Temporal Memory — TTL, decay curves, historical queries

🔍 Hybrid Search — Semantic + keyword for accurate recall

🔒 Security — PII detection, anomaly monitoring, audit logs

📊 Dashboard — Visual memory browser, entity graphs, analytics


📊 Benchmarks

One small LoCoMo run, not a benchmark result: in March 2026 we ran 1 of the 10 LoCoMo conversations, 199 questions, judged by gpt-4o-mini. 76% overall. The 47 adversarial questions, whose answer is not in the conversation, all scored 0, because Remembra did not detect them; the other 152 questions scored 100%. The numbers are in benchmarks/results_20260307_040346_summary.json. A run over all 10 conversations has not been done yet.

Run it yourself: python benchmarks/locomo_runner.py --data /tmp/locomo/data/locomo10.json


📖 Documentation

Resource Description
Quick Start Get running in minutes
Python SDK Full Python reference
TypeScript SDK JavaScript/TypeScript guide
Remembra Relay Handoffs, briefs and the trail across agents
MCP Server Tool reference and setup guides for the 24 tools
REST API API reference
Self-Hosting Docker deployment guide

🛠️ MCP Server

Give an MCP-capable coding agent persistent memory. Works with Claude Code, Cursor, VS Code + Copilot, Windsurf, JetBrains, Zed, OpenAI Codex, and any MCP-compatible client.

pip install remembra[mcp]
claude mcp add remembra -e REMEMBRA_URL=http://localhost:8787 -- remembra-mcp

Available tools (24):

Group Tools
Remembra Relay session_brief, close_session, resolve_project, store_status, list_status
Inbox between agents send_to_inbox, get_inbox, ack_inbox
Memory store_memory, recall_memories, update_memory, forget_memories, list_memories, ingest_conversation
Entities and time search_entities, timeline, relationships_at
Sharing share_memory, list_spaces, create_space
Connection health_check
Setup and diagnosis (read-only) remembra_doctor, remembra_setup, remembra_help

🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Your Application                          │
├──────────┬──────────────┬───────────────────────────────────┤
│ Python   │ TypeScript   │ MCP Server (Claude/Cursor)        │
│ SDK      │ SDK          │ remembra-mcp                      │
├──────────┴──────────────┴───────────────────────────────────┤
│                   Remembra REST API                          │
├──────────────┬──────────────┬───────────────┬───────────────┤
│  Extraction  │   Entities   │   Retrieval   │   Security    │
│  (LLM)       │  (Graph)     │ (Hybrid)      │  (PII/Audit)  │
├──────────────┴──────────────┴───────────────┴───────────────┤
│                    Storage Layer                             │
│         Qdrant (vectors) + SQLite (metadata/graph)          │
└─────────────────────────────────────────────────────────────┘

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

# Clone
git clone https://github.com/remembra-ai/remembra
cd remembra

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Start dev server
remembra-server --reload

📄 License

MIT License — Use it however you want.


⭐ Star History

If Remembra helps you, please star the repo! It helps others discover the project.

Star History Chart


Built with ❤️ by DolphyTech
remembra.dev • docs • twitter • discord

Metadata

Release files for remembra 0.16.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for remembra 0.16.2
File Size Uploaded
remembra-0.16.2.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for remembra 0.16.2
File Interpreter ABI Platform
remembra-0.16.2-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / remembra-0.16.2.tar.gz

Download URL remembra-0.16.2.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
f3889654e0ea2c839e2388f1e7479bd163162e9d508bd76862b3a012894c5657
BLAKE2b-256 checksum
How to use checksums
e7ada8c5c4e613a989a0b9ea92b945e8f789a70fb67eadbbacba1ee619d2d911
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / remembra-0.16.2-py3-none-any.whl

Download URL remembra-0.16.2-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3c208e9091adbfd65b3ade143f7cf2741890dcfce0e2d444197be7e571f00163
BLAKE2b-256 checksum
How to use checksums
5973a8ee189d6b11c8440d7e2f08df32b4650135803b9d8e529aa1181c6be8b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page