Community
Free
RMS Memory
Stop re-explaining your architecture. One vault, every IDE, every session.
GitHubYou're working on one project in three different tools. Cursor knows the architecture because you spent twenty minutes explaining it last week. Zed doesn't. Claude Code doesn't. Next week, Cursor won't either.
RMS Memory MCP is a local MCP server written in Rust. It maintains an isolated Markdown vault per project and exposes it to every connected IDE through five MCP tools. Architectural decisions, constraints, patterns, and debugging history accumulate in the vault as you work. Every agent that connects reads from the same source — without re-explaining, without copy-pasting, without drift.
.cursorrules, CLAUDE.md, .zed/assistant.md — every IDE has its own format, its own location, its own injection mechanism. You maintain copies. They go out of sync within a week. When you add a third tool, you add a third copy.
RMS Memory replaces all of them with a single vault and a single MCP server. The server injects the correct registry key into each IDE's rules file so agents know which project they're working in — but the knowledge itself lives in one place.
rms-memory install wires the server into every IDE at oncerms_writeHybrid retrieval (LanceDB) — embedded LanceDB combines vector similarity with Tantivy full-text search. A query for "why we moved from REST to gRPC" finds the relevant architecture decision even if the exact words aren't in the document. For corpus=all, Reciprocal Rank Fusion merges vault and code results without assuming distances from two corpora are comparable.
Semantic code memory — optional Tree-sitter indexing builds a separate code corpus from your source files. Supported languages: Rust, Go, TypeScript, JavaScript, JSX, TSX, Python, C, C++, Java, Ruby, Swift, Vue (inline scripts). Agents search by function name, struct, interface, or symbol — not just by filename. Unchanged segments reuse their vectors on reindex; only dirty paths are updated in watch mode.
Multilingual semantic parsing — fastembed-rs with multilingual-e5-small handles Russian and English natively. Mixed-language vaults work without configuration.
AST-aware Markdown chunking — pulldown-cmark walks the Markdown AST and attaches each chunk to its parent heading. Code blocks stay bound to the section they belong to. 1500-character boundary with 200-character overlap for oversized blocks — no mid-sentence truncation.
Global centralized vaults — each project gets an isolated vault computed from a hash of the project path at ~/.rms-memory/vaults/. No .mcp files in your repo. No per-repo configuration. A single registry.toml routes every registered project. Multi-scope support — --scope accepts arbitrary identifiers beyond filesystem paths: thread IDs, lead IDs, product scopes.
Multi-IDE auto-install — rms-memory install scans ~/.config/ and ~/Library/Application Support/ and injects the MCP server entry into every supported IDE configuration. No manual JSON editing. Supports Cursor, Zed, Claude Code, OpenCode, VS Code, and Codex. Rules-as-code patching non-destructively updates .cursorrules, .zed/assistant.md, and .claude/CLAUDE.md with the correct project registry key.
Audit metadata — every record auto-receives last_modified_by (actual IDE client name from MCP handshake), timestamp, created_at, confidence (0.0–1.0), and source. Use min_confidence in rms_search to filter by reliability. Records without a confidence value are always included — no silent exclusion of pre-migration content.
Durable writes — rms_write writes and fsyncs a same-directory temporary file before atomically replacing the target. Rolling .bak backups (default: 5) before any mutation. create mode correctly rejects overwriting existing files.
Safe project lifecycle — rms-memory projects remove <key> removes a registration without touching vault files. Permanent deletion with full cleanup is a separate, explicit operation requiring the exact project key, restricted to a child of the configured master vault. Source code is never touched.
Wiki isolation — <vault>/wiki/** is excluded from Markdown indexing, vector search, full-text search, watchers, durable graph, and Wiki context packs. rms_write rejects wiki paths. MCP remains AI-free — Wiki generation lives only in the companion GUI.
Production resiliency — per-project filesystem lock shared across concurrent IDE processes; path traversal and symlink escape prevention; panic-free database layer with Result-returning internals; request size limits (1 MB stdin cap, search limit clamped to 100); graceful shutdown on SIGINT; zombie process prevention on stdin EOF; GC for orphaned LanceDB indices; macOS sandbox bypass for fastembed model downloads; isolated telemetry logging at ~/.rms-memory/rms.log.
rms_search — searches Markdown vault by default. Set corpus to code or all. all uses Reciprocal Rank Fusion. Agents are instructed to call this first.
rms_code_search — convenience endpoint for the semantic code corpus. Results include file, symbol, kind, and line range.
rms_read — reads the full contents of a document found via rms_search.
rms_write — persists new decisions, constraints, or rules. Agents are prompted to call this proactively after solving a tricky bug or learning a preference. Auto-injects audit metadata.
rms_projects — lists registered project keys even when the MCP client did not supply workspace roots.
rms-memory install — hooks the server into all supported IDEs. --dry-run supported.
rms-memory init — registers a project into the global registry.
rms-memory config — interactive global setup; configure code index mode and language list per project.
rms-memory reindex — refresh Markdown vault (--vault), code memory (--code), or both (--all).
rms-memory doctor — 5-point vault health diagnostics. --repair-frontmatter safely repairs duplicate and missing IDs with backups.
rms-memory import — scans for existing docs (README.md, docs/, ADR/) and imports them as vault documents or zero-copy link files.
rms-memory sync — incremental LanceDB delete-then-insert sync.
rms-memory gc — prunes orphaned LanceDB indices.
rms-memory wiki — assembles a context pack from vault documents, code index, and project files for Wiki generation.
rms-memory export-llms — compiles the current vault into a single llms.txt payload.
Cursor · Zed · Claude Code · OpenCode · VS Code · Codex
bash
# macOS (Apple Silicon) and Linuxbrew tap max-ramas/tapbrew install rms-memory-mcp# Any platform with Rustcargo install rms-memory-mcp
Prebuilt binaries for aarch64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, and x86_64-pc-windows-msvc are published on every release, along with .deb and .rpm packages for Linux.
License: MIT · Free · GitHub
Community
Free