OpenMem
Memory interface for coding agents — stable memory_* tools over Hindsight, mem0, or Cognee.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@bcmyguest/openmemclaude mcp add openmem -e 'MEMORY_PROVIDER=<MEMORY_PROVIDER>' -e 'PM_STACK_ROOT=<PM_STACK_ROOT>' -- npx -y @bcmyguest/openmem@0.6.3
{
"mcpServers": {
"openmem": {
"command": "npx",
"args": [
"-y",
"@bcmyguest/openmem@0.6.3"
],
"env": {
"MEMORY_PROVIDER": "<MEMORY_PROVIDER>",
"PM_STACK_ROOT": "<PM_STACK_ROOT>"
}
}
}
}
Environment variables
MEMORY_PROVIDERActive backend: hindsight (default), mem0, or cogneePM_STACK_ROOTOpenMem stack directory (compose project, .env)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
OpenMem
[!CAUTION] Context management is leaving OpenMem. Smart compaction, the LiteLLM context proxy, and the OpenCode trim plugin in this repo are deprecated here and moving to Smarter Compact (docs,
npm install -g smarter-compact). Use OpenMem for memory (providers, indexer,memory_*MCP). Existing OpenMem stacks can still enable the composecontext-proxyprofile; new context work belongs in Smarter Compact.
OpenMem. Pluggable memory providers (Hindsight, mem0, Cognee) and one setup wizard for coding-agent memory — retain, recall, and index your sources.
A. Memory: your sources become memory any agent can query.
B. Context management (deprecated in OpenMem — use Smarter Compact instead): long sessions stay under the limit; nothing is summarized away.
Benchmarks (context — deprecated here): In seed-matched ContextBench log tasks on Haiku 5.5, smart compaction scored 0.469 higher than keep-everything (95% bootstrap interval 0.339–0.578; eight pairs). Methods and charts still live in this repo (redirect · evidence plan); ongoing product docs and install are on Smarter Compact.
Docs: bcmyguest.github.io/openmem/
MCP: npx -y -p @bcmyguest/openmem openmem-mcp (after the wizard — it needs a running provider)
Start here: Concepts · Quickstart · Compatibility · Development (clone, tests, prek)
Quickstart
| Step | Command |
|---|---|
| 1. Wizard | npx @bcmyguest/openmem setup |
| 2. Check | npx @bcmyguest/openmem doctor |
| 3. Coding agents | npx @bcmyguest/openmem install-coding-agent --yes |
From a git clone: Development guide (npm install, npm run setup, tests, prek).
Needs (wizard): Docker Compose v2, Node ≥ 24, and an LLM route for Hindsight — see Quickstart.
Later: npx @bcmyguest/openmem up / down / switch <provider> --yes / doctor.
Wizard dry-run (what first setup plans — no writes):
Full guide: Quickstart · Concepts · Architecture
Architecture
The two diagrams at the top show memory (A) and context management (B; deprecated in OpenMem, see Smarter Compact).
Same diagrams as Mermaid
flowchart LR
S["<b>Sources</b><br/>Git repos: docs, code outlines<br/>Obsidian vaults · notes · papers · bookmarks<br/>RSS · OpenAlex feeds"] -->|index| I["<b>OpenMem indexer</b><br/>polls repos, watches folders"]
I -->|retain| P[("<b>Memory provider</b><br/>one active, swappable<br/>Hindsight (default) · mem0 · Cognee · …")]
P <--> M["<b>OpenMem MCP</b><br/>memory_recall · memory_add<br/>memory_search · memory_reflect<br/>memory_pages_* + export/import, status…"]
M <-->|tools| A["<b>Coding agents</b><br/>Claude Code · Codex · Cursor · OpenCode"]
A -.->|"session hooks: recall at start · retain at stop"| M
classDef om fill:#e8eaf9,stroke:#4651a6,color:#1b1d2a
class I,M om
flowchart LR
A["<b>Coding agent</b><br/>Claude Code · Codex · OpenCode 1"] -->|requests| X["<b>Context proxy</b><br/>LiteLLM pre-call hook<br/>trims at 125k tokens (Haiku 95k) · no LLM call"]
X -->|trimmed request| API["<b>Model API</b><br/>Anthropic · ChatGPT (Codex)"]
X -->|every turn| S[("<b>Session store</b><br/>SQLite · every turn, verbatim")]
S -->|"MCP: smart_compact_search · smart_compact_sql"| A
O["<b>OpenCode 2</b><br/>native plugin, no proxy"] -.->|same store| S
classDef om fill:#e8eaf9,stroke:#4651a6,color:#1b1d2a
class X,S om
Native compaction replaces history with an LLM summary, so exact values can be lost; smart compaction keeps every turn verbatim and searchable. Context trimming in OpenMem is deprecated — use Smarter Compact (smarter-compact enable). Legacy stack path: context proxy redirect. See architecture for memory runtime paths and provider-specific behavior.
Providers and portability
- Providers — Provider status lists every provider and its support level from the manifests. Contributor details: adding a provider.
- MCP — unified
memory_*plus optional native/NotebookLM servers: MCP setup. - Context management (deprecated in OpenMem) — moved to Smarter Compact; OpenMem page is a redirect.
- Portable memory —
memory_export/memory_importspeak PMM: Portable memory. - Switch —
npx @bcmyguest/openmem switch <provider>does not migrate data by itself; export/import (or re-index) moves content.
Compose runs the shared indexer and the services required by the selected provider. Hindsight uses litellm and hindsight (127.0.0.1:8888); mem0 and Cognee use their own APIs and do not include LiteLLM by default. LiteLLM can also be added for memory_reflect synthesis on mem0/Cognee, or to host the optional context proxy's pre-call hook. See Architecture for runtime paths.
Inspiration and related
OpenMem is not affiliated with these projects; they shape the problem or the pattern.
| OpenFeature | Inspiration for a vendor-agnostic interface + pluggable providers (there: feature flags; here: coding-agent memory). |
| mise / asdf | One CLI over many backends; declarative config and tasks without replacing each tool’s own settings. |
| LiteLLM | Model proxy used on Hindsight stacks; its pre-call hook hosts the context proxy. |
| Hindsight coding agents | Reference implementation for knowledge pages, initiative capture and ingest status; OpenMem's hooks replace it in openmem mode. |
| Mainplane | Inspiration for smart compaction: continue in a fresh context with a pointer to the saved transcript and retrieve as you go, instead of an LLM summary. |
| Letta / MemGPT | Inspiration for smart compaction: evicted turns kept verbatim in searchable recall storage the agent pages back with tools, and file-style search over the transcript (74.0% on LoCoMo). OpenMem does this in a proxy and an MCP server, so no Letta server is needed. |
| rtk | Compresses shell command output before the agent sees it; install-coding-agent runs rtk init when it is installed. Inspired the context proxy's compression of large tool results (reimplemented, not bundled). |
| opencode-clm | OpenCode plugin for Context Language Models: the model edits a file mirror of its own context. Same goal as smart compaction, with the model doing the trimming (comparison). |
| Meridian | Bridges a Claude subscription to an Anthropic-compatible API; optional Hindsight model backend (guide). |
| OpenCode / Claude Code hooks / Codex hooks | The agent hook and plugin APIs OpenMem translates between (compatibility). |
Research notes and benchmark results for the context proxy: Context research.
More setup analogues: Pluggable memory providers.
Formerly personal-memory. Use the
openmemCLI and MCP server name; installers drop the oldpersonal-memoryMCP entry.
References
Papers and preprints cited in our context-management work (full list):
| Reference | Link |
|---|---|
| MemGPT (Packer et al., 2023) | arXiv:2310.08560 |
| LoCoMo (An et al., 2024) | arXiv:2402.17753 |
| LongMemEval (Wu et al., 2024) | arXiv:2410.10813 |
| MemoryAgentBench (2025) | arXiv:2507.05257 |
| The Complexity Trap (Lindenbauer et al., 2025) | arXiv:2508.21433 |
| Context Language Models / ContextBench (Shao et al., 2025) | arXiv:2609.37725 |
| Compact-Bench (2026) | arXiv:2610.31710 |
Reports and blogs (Context Rot, Letta LoCoMo, Anthropic context engineering): references.md.
License
Apache License 2.0 — see LICENSE (Copyright 2026 B Guest).
Contributing
Contributions are welcome. See CONTRIBUTING.md and the development guide for tests and CI.
Frequently asked questions
What is OpenMem?
Memory interface for coding agents — stable memory_* tools over Hindsight, mem0, or Cognee.
How do I install OpenMem?
It runs on your machine. In Claude Code: claude mcp add openmem -e 'MEMORY_PROVIDER=<MEMORY_PROVIDER>' -e 'PM_STACK_ROOT=<PM_STACK_ROOT>' -- npx -y @bcmyguest/openmem@0.6.3. For other clients, paste the JSON configuration from this page into their MCP settings.
Does OpenMem need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is OpenMem open source?
Yes. Its code is on GitHub under the Apache-2.0 license.
Who maintains OpenMem?
It is published by bcmyguest. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.