AI Memory is a long-term memory server for AI coding agents. It records what happens in a coding session (prompts, tool calls, session boundaries) through the agents' lifecycle hooks, compiles those observations into Markdown wiki pages at session end, and hands the next session a bounded brief of where the work left off, what failed, and what is still open. The next session can belong to a different agent, a different machine, or a teammate.
Memory is shared across more than twenty harnesses, including Claude Code, Codex, OpenCode, OpenClaw, Hermes, Pi, Oh My Pi, Devin, Grok Build, Cursor, and Gemini CLI, each wired through first-party MCP registration, lifecycle hooks, or both. A handoff is a typed, owned record claimed exactly once, so quitting one agent mid-task and opening another in the same directory continues the same workstream. A small cross-project profile of working habits (package manager, test layout, architecture conventions) is injected into every new repository at session start.
The source of truth is a git-backed wiki of plain Markdown files that can be read, edited, or synced by hand. A SQLite index derived from those files serves retrieval by fusing full-text search, entity matching, and graph-neighbor ranking, with optional vector search, into one ranking. The default path makes zero LLM calls: capture, search, handoffs, scheduled decay, extractive compaction of cold notes, near-duplicate collapse, and contradiction flagging all run without an API key. Nothing is hard-deleted, as the original stays in git and the version chain.
Adding an LLM provider is optional and upgrades session summaries and semantic search. Anthropic, OpenAI, Gemini, GitHub Copilot, OpenCode, and any OpenAI-compatible endpoint (Ollama, LM Studio, vLLM) serve consolidation, and OpenAI, Voyage, Gemini, and keyless OpenAI-compatible endpoints serve embeddings. An opt-in background pass can rewrite clusters of cold notes into single pages while the user is idle, without deleting any source.
The whole system is one Rust binary that runs an MCP/HTTP server over one data directory. It runs on the same laptop, a homelab box, or a LAN host, and a team can point every machine at one server: knowledge is shared per project, personal handoffs stay personal, and multi-user auth, per-person attribution, and an audit log of every mutation are built in. Capture is sanitized at a typed privacy boundary before storage, with per-repository rules to exclude paths or switch to allowlist mode. The project positions itself against Mem0, LangMem, Zep, Graphiti, Hindsight, OpenViking, and Supermemory on three points: files you own, a zero-LLM default, and cross-agent, cross-machine, and team sharing.
Features
- Cross-agent handoffs: typed, owned, claim-once handoffs let a session started in one harness continue in another with the architecture, failed approaches, and open questions intact
- Silent capture: lifecycle hooks record prompts, tool calls, and session boundaries and consolidate them into readable wiki pages at session end
- Markdown source of truth: a git-backed wiki of ordinary Markdown files, with a SQLite index that can always be rebuilt from them
- Fused retrieval: full-text search, entity match, and graph-neighbor ranking, plus optional vectors, combined into one ranking
- Zero-LLM default: capture, search, handoffs, decay, compaction, dedup, and contradiction flagging work with no API key
- Cross-project profile: a user's usual package manager, test layout, and architecture habits reach every new repository at session start
- Memory aging: per-tier decay schedules, access-weighted retention, extractive compaction of cold notes, and supersede-not-delete versioning with page restore
- Optional LLM consolidation: Anthropic, OpenAI, Gemini, GitHub Copilot, OpenCode, and OpenAI-compatible endpoints for summaries and semantic search, with an opt-in background rewrite of cold note clusters
- Team server: multi-user auth, per-person attribution, per-project sharing, and an audit log on a single self-hosted server
- Managed workstreams: a launcher that auto-wires a harness's hooks and MCP on first run and resumes a workstream in any supported harness
- Privacy boundary: observations are sanitized before storage, with per-repository ignore paths, allowlist mode, and per-repository server routing
- Packaging: a single binary with Linux packages, a macOS menu bar app, a Docker image, and a NixOS module





