Local-first persistent memory for Claude Code & Codex CLI - Rust CLI, hooks, MCP server, SQLite/SQLCipher, auditable recall for long-running coding work.
git clone https://github.com/majiayu000/remem{
"mcpServers": {
"remem": {
"command": "remem"
}
}
}MCP Servers overview
# remem: Local-first Coding Agent Memory for Claude Code and OpenAI Codex > Stop re-explaining your project every new coding-agent session. Language: **English** | [简体中文](README.zh-CN.md) `remem` is a single Rust binary that automatically captures, distills, searches, and injects project memory across Claude Code, OpenAI Codex, and Codex CLI sessions. It keeps decisions, bug-fix rationale, project patterns, and preferences available through hooks, MCP, CLI, and REST without requiring an external database. [](https://github.com/majiayu000/remem/actions/workflows/ci.yml) [](https://github.com/majiayu000/remem/releases/latest) [](https://crates.io/crates/remem-ai) [](https://www.npmjs.com/package/@remem-ai/remem) [](LICENSE)  *Real Claude Code session on a demo repo: a brand-new session recalls last week's root cause, commit, and open TODO — with memory citations, zero re-explaining.* ## What You Get - Claude Code, OpenAI Codex, and Codex CLI remember project decisions across sessions. - Bug-fix rationale, preferences, and project patterns are searchable. - Memory stays local by default with SQLite and SQLCipher. - Hooks, MCP tools, CLI commands, and a localhost REST API use the same store. - Current-memory contracts expose staleness, temporal/as-of truth, citation usage, and injection audit state instead of treating recall as a black box. - User-context controls keep personal claims, profile summaries, suppression feedback, and Markdown export explicit and reviewable. - One Rust binary; no hosted database or separate memory service. ## Install Install the `remem` binary: ```bash brew install majiayu000/tap/remem ``` Then configure hooks and MCP for your installed coding agents: ```bash REMEM_INSTALL_BINARY="$(brew --prefix remem)/bin/remem" remem install --target codex # or: REMEM_INSTALL_BINARY="$(brew --prefix remem)/bin/remem" remem install --target claude # or: REMEM_INSTALL_BINARY="$(brew --prefix remem)/bin/remem" remem install --target all ``` If you do not use Homebrew: ```bash curl -fsSL https://raw.githubusercontent.com/majiayu000/remem/main/install.sh | env REMEM_NO_CONFIG=1 sh ~/.local/bin/remem install --target codex # or: ~/.local/bin/remem install --target claude # or: ~/.local/bin/remem install --target all ``` `remem install` can auto-detect existing Claude Code and Codex CLI config directories. On first-time setups, use `--target codex`, `--target claude`, or `--target all` so remem can create the selected config files. Run `remem doctor` when you want to verify or troubleshoot the integration. If Claude Code reports a Hook Integrity Warning or doctor shows incomplete Claude hooks, run: ```bash remem install --target claude --repair ``` Repair mode restores only user-level Claude hooks in `~/.claude/settings.json`. It preserves third-party hooks, does not write `.claude.json` MCP settings, and does not initialize the runtime store or API token. ## Success Check  *What `remem install` configures, and what a new Codex session receives at SessionStart. The demo uses a temp HOME and temp database; no private memories are shown.* Start a new Claude Code or Codex CLI session after installation. remem should inject relevant project memory at session start and summarize durable memory after the session stops. Then run: ```bash remem status remem search "last decision" ``` For Codex CLI, `remem install` creates or updates: - `~/.remem/.key` and the encrypted `~/.remem/remem.db` - `~/.remem/config.toml` memory-AI profiles - Codex MCP registration in `~/.codex/config.toml` - Codex SessionStart/Stop hooks in `~/.codex/hooks.json` For a Codex-only setup, `remem doctor` reports Schema, Key format, Database, and the Codex Hooks/MCP rows as ok. If Claude Code config directories already exist but were not auto-detected during installation, run `remem install --target claude` or `remem install --target all`. If doctor warns about multiple `remem` binaries, follow the printed install-path fix so hooks keep using the intended binary. ## Install With Your Coding Agent Paste this into Claude Code or Codex CLI: > Install remem for this repository. Use the official README. Configure it for > this agent, run `remem doctor`, verify that session memory is working, and > summarize what was installed. ## Why remem if Claude Code and Codex already have memory? Built-in memory is useful for concise preferences and stable project guidance. remem is for engineering memory that needs to be searchable, auditable, project-scoped, and recoverable: - Search past decisions, bug fixes, and rationale with `remem search` - Inspect why a memory was injected with `remem why` - Keep memory local with SQLite and SQLCipher - Use MCP and REST APIs from coding agents and local tools - Track usage and background memory cost - Avoid hand-maintaining large `MEMORY.md` or `CLAUDE.md` files ### How remem Compares in the Ecosystem Snapshot from our [memory-tool ecosystem survey (2026-03)](docs/research/claude-memory-mcp-ecosystem-2026-03.md); check upstream projects for their current feature sets. | | remem | Built-in memory files | claude-mem | mem0 / OpenMemory | |---|---|---|---|---| | Capture | Automatic hooks + LLM distillation | Manual editing | Automatic hooks | Agent calls save tools | | Agents | Claude Code + Codex, one shared store | Per-tool files | Claude Code | Any MCP client | | Storage | Local SQLite, optional SQLCipher encryption | Plain text files | SQLite + Chroma vector DB | Vector DB, hosted platform or local server | | Retrieval | FTS + optional embeddings via CLI, MCP, REST | Loaded wholesale | Tiered vector search | Vector search | | Runtime | Single Rust binary | None | Node worker + background service | Python service | | Audit trail | `remem why`, provenance, usage and cost tracking | Git history | Not documented in survey | Not documented in survey | ## How remem Solves Session Amnesia | Without remem | With remem | |---|---| | "We use FTS5 trigram tokenizer..." (every session) | Injected automatically from memory | | "Do not use `expect()` in non-test code" (again) | Preference surfaced before you ask | | "Last session we decided to..." (reconstruct manually) | Decision history with rationale | | Bug context lost after session ends | Root cause + fix preserved | ## Other Install Channels ```bash # Quick install options curl -fsSL https://raw.githubusercontent.com/majiayu000/remem/main/install.sh | env REMEM_NO_CONFIG=1 REMEM_VERSION=vX.Y.Z sh ~/.local/bin/remem install --target codex curl -fsSL https://raw.githubusercontent.com/majiayu000/remem/main/install.sh | env REMEM_NO_CONFIG=1 sh ~/.local/bin/remem install --target codex curl -fsSL https://raw.githubusercontent.com/majiayu000/remem/main/install.sh | env REMEM_NO_CONFIG=1 REMEM_INSTALL_DIR=/usr/local/bin sh remem install --target codex # npm wrapper npm install -g @remem-ai/remem remem install --target codex # Cargo cargo install remem-ai --bin remem remem install --target codex # Manual GitHub Release download curl -LO https://github.com/majiayu000/remem/releases/latest/download/remem-darwin-arm64.tar.gz tar xzf remem-darwin-arm64.tar.gz mv remem ~/.local/bin/ codesign -s - -f ~/.local/bin/remem # required on macOS ARM ~/.local/bin/remem install --target codex # Build from source git clone https://github.com/majiayu000/remem.git cd remem cargo build --release cp target/release/remem ~/.local/bin/ codesign -s - -f ~/.local/bin/remem # required on macOS ARM ~/.local/bin/remem install --target codex ``` Use one canonical `remem` command on PATH. Standalone and source installs should normally live at `~/.local/bin/remem`; Windows standalone installs should use `%USERPROFILE%\.local\bin\remem.exe`. If you install through a package manager such as Homebrew or Cargo, update through that same channel and avoid keeping a second manual copy earlier or later on PATH. `remem doctor` and `remem install --dry-run` warn when multiple `remem` executables are visible. ### Updating an Existing Install When you replace the binary manually, rerun `remem install` so existing Claude Code and Codex hook commands pick up the current host-aware settings: ```bash cargo build --release cp target/release/remem ~/.local/bin/ codesign -s - -f ~/.local/bin/remem # required on macOS ARM remem install --target all ``` Verify the installed hooks include host-specific context commands: ```bash jq -r '.hooks.SessionStart[]?.hooks[]?.command' ~/.claude/settings.json jq -r '.hooks.SessionStart[]?.hooks[]?.command' ~/.codex/hooks.json ``` Expected commands are host-only; model, executor, and context policy live in `~/.remem/config.toml`: ```text /Users/you/.local/bin/remem context --host claude-code /Users/you/.local/bin/remem context --host codex-cli ``` ## Use With Codex `remem install --target codex` configures Codex in four ways: - Enables Codex hooks with `[features].hooks = true` in `~/.codex/config.toml` - Registers `remem` as an MCP server in `~/.codex/config.toml` - Writes Codex hook commands to `~/.codex/hooks.json` - Creates or updates `~/.remem/config.toml` memory-AI profiles After restarting Codex, remem automatically injects relevant project memory at session start and summarizes the session at stop. Codex can also call the MCP tools exposed by `remem mcp`, including `search`, `get_observations`, `save_memory`, `workstreams`, and `timeline`. SessionStart keeps Core, Preferences, and Workstreams on their existing paths
What people ask about remem
What is majiayu000/remem?
+
majiayu000/remem is mcp servers for the Claude AI ecosystem. Local-first persistent memory for Claude Code & Codex CLI - Rust CLI, hooks, MCP server, SQLite/SQLCipher, auditable recall for long-running coding work. It has 20 GitHub stars and was last updated today.
How do I install remem?
+
You can install remem by cloning the repository (https://github.com/majiayu000/remem) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is majiayu000/remem safe to use?
+
majiayu000/remem has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains majiayu000/remem?
+
majiayu000/remem is maintained by majiayu000. The last recorded GitHub activity is from today, with 19 open issues.
Are there alternatives to remem?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy remem to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/majiayu000-remem)<a href="https://claudewave.com/repo/majiayu000-remem"><img src="https://claudewave.com/api/badge/majiayu000-remem" alt="Featured on ClaudeWave: majiayu000/remem" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface