Everything written goes through secret detection, policy filtering, deduplication and conflict detection, and candidates that come from transcript extraction wait in a queue for approval instead of landing in storage. Two things to set up on day one: the global instruction file that tells your assistant to load context at session start and call `remember` when it learns something durable, and a decision about `export_static_memory_files`, which writes memory into files that may end up committed.
A local memory server for AI coding tools. It stores project knowledge — rules, gotchas, architecture decisions — and runs everything through a pipeline that detects secrets, applies policy, deduplicates, and flags conflicts before anything is saved.
- Structured memory saved directly, single or batch, with content, type and optional scope and tags — `remember`
- Retrieval shaped for the start of a session: project rules, relevant context for a natural-language query, and a search across scope, type and tags — `get_project_rules`, `get_relevant_context`, `search_memory`
- An approval queue rather than silent writes: list, approve, reject, and bulk versions of both — `list_memory_candidates`, `approve_memory_candidate`, `approve_all_candidates`, `reject_memory_candidate`, `reject_all_candidates`
- Maintenance on what is already stored: update, supersede with a link to the replacement, and review memories older than a threshold that defaults to 6 months — `update_memory`, `supersede_memory`, `review_stale_memories`
- Static fallback files generated for tools that cannot read memory over MCP — `AGENTS.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, `.cursor/rules/openmembrane.mdc` — via `export_static_memory_files`, with confidential memories omitted by default
- A session transcript submitted for server-side extraction when you have an extractor configured — `propose_memory_from_session`
- Operational visibility separated from history: `get_diagnostics` for problems, `list_audit_log` for normal memory activity
Node.js >= 18 and `npx openmembrane`, or a global `npm install -g openmembrane`. No cloud account: memory is stored locally, by default in `.openmembrane` under the working directory, moved with `OPENMEMBRANE_HOME`, with `OPENMEMBRANE_PROJECT_ID` setting the default project when a call omits it. Setup blocks are documented for Claude Desktop, Claude Code, VS Code and Copilot, Cursor and OpenCode. Only `propose_memory_from_session` needs an LLM — it requires a configured extractor, OpenAI or a compatible endpoint.
One command — npx openmembrane
