memorix
Memorix is a local-first, cross-agent memory and orchestration layer for AI coding agents, providing persistent context, multi-agent coordination, and memory management across IDEs and sessions.
Core Memory Operations
Store observations, decisions, gotchas, bug fixes, and discoveries with entity tagging, file references, and topic keys for upserts
Search memories via natural language or keyword, with filters for type, date range, and status
Fetch details for specific memory IDs; view timeline context (before/after a given observation)
Resolve/archive outdated or completed memories to keep context clean
Suggest topic keys to avoid duplicates on evolving topics
Memory Quality & Maintenance
Deduplicate — LLM-assisted or heuristic scanning and resolution of duplicate/contradictory memories
Consolidate — Merge similar observations by entity+type to reduce bloat
Retention management — Monitor memory health via exponential decay scoring and archive expired entries
Promote to mini-skills — Elevate key observations to permanent skills injected at every session start
Session Lifecycle
Start/end coding sessions with structured summaries (goal, discoveries, accomplishments, files) for seamless handoff
Recover previous session context after compaction or context loss
Workspace & Rules Sync
Sync and deduplicate agent rule files across Cursor, Claude Code, Codex, Windsurf, Copilot, Kiro, and more
Migrate MCP configs, workflows, rules, and skills between AI coding agents (scan, preview, or apply)
List, auto-generate, or inject project-specific skills derived from memory patterns
Agent Team Coordination
Register/unregister agents and list active team members with roles
Acquire/release advisory file locks (auto-expiring) to prevent conflicting edits
Create, claim, complete, and list tasks with dependency tracking across agents
Send direct or broadcast messages between agents
Data & Dashboard
Export/import observations and sessions as JSON or Markdown
Launch a local web dashboard to visualize knowledge graphs, retention scores, sessions, and agent team state
Integrates with the Windsurf IDE to provide cross-agent memory, multi-agent coordination, and project-specific knowledge retrieval.
Allows for local semantic embeddings and search enhancements using local Ollama-compatible endpoints.
Provides support for semantic vector search, intelligent narrative compression, and result reranking via OpenAI-compatible APIs.
Memorix gives the AI coding agents you already use a shared, searchable project memory that survives new chats, IDE switches, terminal sessions, and handoffs. The memory lives under the Git project, not inside one chat window or one tool.
Use Claude Code today, Codex tomorrow, and Cursor in the afternoon. The agent can change; the project memory stays the same.
Use Memorix when you keep re-explaining the same project to a new agent session: the last session already figured something out, another IDE cannot see it, or a design decision is buried in a chat you cannot find anymore.
Problem | What Memorix adds |
The next session forgets what the last session learned | Project-scoped memory, session summaries, timelines, and detail retrieval |
Different agents know different things | One local memory pool available through MCP, hooks, CLI, SDK, and the bundled terminal agent |
Git records what changed, but agents cannot recall it well | Git Memory turns commits into searchable engineering facts |
Architecture decisions disappear into old chats | Reasoning Memory stores why choices were made, with alternatives and trade-offs |
Static rule files drift | Gotchas, fixes, and project skills evolve from real work |
Parallel agent work gets messy |
|
Memorix is local-first. SQLite is the canonical store, Orama handles search, and LLM-backed formation/embedding is optional. Without model keys, Memorix still works with local full-text retrieval.
Capabilities
Memorix is more than a memory store. It also installs agent integrations, keeps useful work events, turns commits into project facts, exposes a local control plane, and can coordinate multi-agent work when a task needs it.
Capability | What it does | Entry point |
Memory Autopilot | A bounded task Workset with start files, current memory, source-backed knowledge, workflow starts, cautions, and verification |
|
Observation Memory | Searchable facts, fixes, gotchas, session summaries, and implementation notes scoped to the current Git project |
|
Curated Long-term Memory | Deliberately reviewed episodic, semantic, and procedural memory with source evidence. Only an explicitly portable user item can cross local projects |
|
Code State and Code Memory | Versioned local code snapshots, file/symbol links, and freshness checks. The built-in Lite index is always honest about its limits; an already-indexed local CodeGraph can add a bounded semantic outline |
|
Git Memory | Commit-derived engineering facts that answer what changed, where, and why it matters |
|
Reasoning Memory | Design rationale, alternatives, trade-offs, and risks that should survive beyond one chat |
|
Knowledge Workspace | Review-gated source-backed claims, Markdown pages, and canonical project workflows; proposals never overwrite reviewed pages silently |
|
Agent setup | One setup path for MCP, rules, hooks, skills, plugins, bundles, or extensions depending on the agent |
|
Agent doctor | Checks whether agent MCP config and guidance are current, then repairs Memorix-owned entries when needed |
|
Hooks and skills | Optional capture from supported agents, plus reusable project skills promoted from durable knowledge |
|
Dashboard and HTTP | A local web UI and shared MCP endpoint for browsing memory, project state, teams, and diagnostics |
|
Orchestration and team work | Task planning, worker handoffs, file locks, messages, verification gates, and review loops |
|
memcode | A bundled terminal coding agent that already reads and writes the same project memory |
|
CLI and SDK | Scriptable access for automation, imports/exports, diagnostics, and custom integrations |
|
Memorix connects through the interfaces each agent already supports: plugin packages, MCP, project rules, hooks, skills, or the bundled terminal agent. memorix setup chooses the right setup for each agent and keeps stdio MCP as the default transport.
Integration surfaces:
Surface | What it does | Memorix entry |
Setup command | Installs the recommended one-time user-level Memorix integration |
|
MCP | Gives an agent compact Memorix tools for project context, search, detail retrieval, storage, and resolution | bundled in setup packages or |
Usage guidance | Teaches an agent when and how to use Memorix without forcing memory lookup on every prompt | bundled or generated by |
Hooks | Optional capture of prompts, tool events, file edits, session lifecycle events, and native compaction checkpoints where the agent exposes them | bundled or generated by |
Plugin or bundle package | Installs plugin, compatible-bundle, or package files where the agent supports them | Claude Code, Codex, GitHub Copilot CLI, Antigravity, OpenClaw, Hermes Agent, Oh-my-Pi, Pi |
Extension | Installs extension files where the agent supports them | Gemini CLI |
Local plugin | Installs local plugin files where the agent loads them directly | OpenCode |
MCP/rules config | Writes MCP, rules, steering, guidance, or hook config for IDEs and agents that expose those surfaces | Cursor, Windsurf, Kiro, Trae |
Skills | Turns durable project knowledge into reusable task guidance |
|
memcode | Opens the bundled terminal agent that already uses Memorix memory |
|
See Integration Surfaces for the current support matrix and what each generated file means.
Use the same setup command without --global only when you intentionally want repo-local guidance, rules, or hooks in the current Git project.
CLI, MCP, and HTTP are different entry points:
memorixCLI is the direct command surface for setup, memory search/store, Git Memory, import/export, dashboard, orchestration, diagnostics, and automation.memorix serveis the stdio MCP bridge used by IDEs and coding agents. Its default tool profile ismicro, so agents see only the compact core tool set.memorix background start/memorix serve-httprun the HTTP service for a shared endpoint, dashboard, Docker, or multiple clients.
Requirements:
Node.js
>=22.18.0Git, because project identity is derived from the real Git root
Install and initialize:
npm install -g memorix
memorix init --global # optional defaults
memorix setup --agent claude --global # or codex, copilot, cursor, pi, gemini-cli, opencode,
# windsurf, kiro, antigravity, trae, openclaw, hermes, ompmemorix init is optional. It creates or updates TOML configuration:
~/.memorix/config.tomlfor global defaults<git-root>/memorix.tomlfor optional project overrides
Legacy memorix.yml, .env, and ~/.memorix/config.json are still read for compatibility, but new setup flows use TOML.
If you want repo-local guidance or hooks for a specific repository, run the same setup command from inside that repo without --global. Codex is the exception: its supported path is the user-level plugin install, so Memorix leaves project .codex configuration alone.
Connect an existing agent
Use the setup command first. The global form is the normal one-time install:
memorix setup --agent claude --global
memorix setup --agent codex --global
memorix setup --agent copilot --global
memorix setup --agent cursor --global
memorix setup --agent pi --global
memorix setup --agent gemini-cli --global
memorix setup --agent opencode --global
memorix setup --agent windsurf --global
memorix setup --agent kiro --global
memorix setup --agent antigravity --global
memorix setup --agent trae --global
memorix setup --agent openclaw --global
memorix setup --agent hermes --global
memorix setup --agent omp --globalWhat it installs depends on the target agent, but the goal is the same: make Memorix available wherever you open that agent without asking you to wire every repo by hand.
Claude Code: installs the Memorix plugin package, adds
CLAUDE.mdguidance, and enables hook capture when you do not pass--noHooks.Codex: installs one user-level Memorix plugin with bundled stdio MCP, skills, and lifecycle hooks. It does not write project-local
.codexconfig or change your model, approval, or sandbox settings. When Codex asks, review the plugin hook definition once with/hooks;--noHooksskips automatic capture.GitHub Copilot CLI: installs the Copilot plugin package and official Memorix skills.
Pi: installs the user-level Pi package and official skills.
Cursor: writes Cursor MCP/rules/config entries in the chosen scope.
Gemini CLI: installs the extension package,
GEMINI.mdcontext, hooks, and skills. Antigravity CLI has an official Gemini CLI migration path, but Gemini CLI remains an active standalone target.OpenCode: installs the local plugin file,
opencode.json, skills, andAGENTS.mdguidance.Windsurf, Kiro, Trae: write the MCP/rules/hooks files the target supports.
Antigravity: installs the official plugin package with
plugin.json,mcp_config.json,hooks.json, rules, and skills under~/.gemini/config/plugins/memorixor.agents/plugins/memorix.OpenClaw: installs an OpenClaw-compatible bundle with
.mcp.json, official skills, and an OpenClawHOOK.md/handler.tshook pack.Hermes Agent: installs into Hermes home (
%LOCALAPPDATA%\hermeson native Windows,~/.hermeselsewhere, orHERMES_HOME), enables the plugin inconfig.yaml, registers plugin hooks, slash/CLI commands, skills, and writes MCP config.Oh-my-Pi: installs an
omp.extensionspackage with extension hook events, amemorixcommand, official skills, and writes MCP config.
Need a quieter install? Add --noHooks for targets where setup can control hook capture separately from the host's official package entry. It keeps MCP and guidance, but skips Memorix hook capture.
If you intentionally want repo-local guidance or hooks, run the same command inside that repository without --global.
If your agent only needs a manual MCP entry, use stdio:
{
"mcpServers": {
"memorix": {
"command": "memorix",
"args": ["serve"]
}
}
}For a manually managed Claude Code entry, add "alwaysLoad": true inside the memorix server object. This lets Claude Code expose Memorix tools during print-mode startup; memorix doctor agents --agent claude can detect and repair a missing setting.
HTTP is not required for normal setup. Use it only when you intentionally want a shared background service, dashboard, Docker, or multiple clients using the same endpoint:
memorix background startThen point the client at:
http://localhost:3211/mcpIn HTTP mode, agents should bind the active repo explicitly with memorix_session_start(projectRoot=...) when the client can provide the workspace path. Git remains the final source of truth for project identity.
Uninstall
Preview what will be removed:
memorix uninstall --dry-runStop the background service and remove hooks:
memorix uninstall --background --hooksFull cleanup:
memorix uninstall --yes --background --hooks --purge-data
npm uninstall -g memorixmemorix uninstall reports MCP config entries for manual cleanup instead of silently editing every MCP file it finds.
Work from the CLI
memorix --cwd /path/to/repo resume "continue release blocker"
memorix checkpoint list
memorix memory search --query "release blocker"
memorix memory --help
# Optional: activate one local agent identity for personal/team records and coordination.
memorix identity join --agent-type codex --name codex-main
memorix memory store --text "private investigation note" --visibility personal
memorix task create --description "verify the release package"
# Deliberate durable memory: create a candidate, then review it before it can enter a Workset.
memorix memory long-term add --kind procedural --scope user --portability portable --title "Release verification preference" --text "Run focused tests and a packed-package smoke before publishing." --applicability "When publishing an npm package."
memorix memory long-term qualify --id <id> --reason "The user explicitly confirmed this preference."
memorix memory long-term approve --id <id> --reason "Reviewed for future local projects."
memorix transfer export --format json --out ./.memorix-export.json
memorix transfer import --file ./.memorix-export.json
memorix reasoning search --query "why sqlite"
memorix git-hook --force
memorix ingest log --count 20
memorix workbenchThe CLI is direct and does not depend on an MCP session. It binds to the current Git project, or to the project supplied with --cwd. Without an active identity it reads, writes, and exports project-visible memory only. Use memorix identity join or memorix identity use --agent-id <id> only when you intentionally need personal/team memory or coordinated task actions; memorix identity clear returns the terminal to project scope. --as <active-agent-id> is the one-command alternative for scripts. Both camelCase and kebab-case flags are accepted.
Use the bundled terminal agent
memorix
# or
memcodeThis opens memcode, a terminal coding agent that uses the same Memorix project memory as your MCP-connected agents.
Layer | Stores | Best for |
Observation Memory | facts, gotchas, fixes, implementation notes | "How does this work?" |
Reasoning Memory | rationale, alternatives, constraints, risks | "Why did we choose this?" |
Git Memory | commit-derived engineering facts | "What changed and where?" |
Code Memory | files, symbols, import edges, and memory-to-code freshness | "Which current code should I inspect first?" |
Curated Long-term Memory | reviewed episodic events, stable facts, or reusable procedures with evidence | "What should this agent still know or do later?" |
Compact Continuity | recent host-native compact summaries or lifecycle markers | "What survived the last context compaction?" |
Search is project-scoped by default. scope="global" searches across projects. The search boosts Git Memory for "what changed" questions and reasoning records for "why" questions.
Long-term memory is deliberately not an automatic dump of every note. A source observation, Claim, workflow, session, and code snapshot keep their existing roles. An agent may ask memorix_store to create an additional long-term candidate, but candidates never enter task context. Use memorix memory long-term qualify|approve|archive|supersede to record the evidence-backed lifecycle. Only a manually created or user-confirmed user + portable item may be considered in another local project; project code, Git facts, tests, workflows, sessions, and observations cannot be promoted into portable user memory.
memorix context "..." is the default Memory Autopilot entry. It builds a compact task-lensed brief for agents: bugfix tasks lean toward tests and repros, release tasks lean toward package/changelog/build checks, onboarding tasks lean toward docs and entry points, and stale or unrelated memories stay in warning lanes instead of flooding the prompt. A normal new task does not receive an old-session dump. For an explicit continuation, memorix resume "..." adds only the latest useful session summary, up to three readable durable anchors, and at most one recent source-labelled host compact checkpoint. A durable anchor carries a durable:<id> reference, so an agent can expand the full reviewed record through memorix_detail only when needed. Keyword matches stay primary; when no reviewed durable item matches and an embedding provider is configured, Memorix makes one 1.8-second, no-retry semantic fallback for paraphrases or cross-language tasks. A slow or unavailable provider simply leaves the normal keyword-only Workset intact. A checkpoint is lifecycle evidence, not durable memory or a transcript backup. Agents should read the suggested files before trusting stored memory.
You want | Run |
Install an agent integration package |
|
Check or repair an agent integration |
|
Manually expose stdio MCP |
|
Run shared HTTP MCP plus dashboard |
|
Debug HTTP MCP in the foreground |
|
Inspect or manage memory directly |
|
Manage reviewed long-term memory | `memorix memory long-term list |
Inspect native compaction continuity | `memorix checkpoint list |
Use the interactive terminal memory control plane |
|
Use the bundled terminal agent |
|
Run orchestrated subagent work |
|
memorix serve defaults to --mode micro (7 tools) to keep MCP tool schemas small for agents. Use --mode lite for the extended solo memory surface, --mode team for coordination tools, or --mode full for advanced and compatibility tools such as checkpoint inspection.
memorix orchestrate uses the current checkout for single-worker runs. When running multiple workers, it creates task worktrees under .worktrees/ and merges successful task branches back. Use --isolated to force worktree isolation for one worker, --no-worktree to disable it, --allow-dirty to run with uncommitted changes, and --no-auto-merge to preserve task worktrees for manual review.
memcode is the terminal coding agent bundled with Memorix. It can read, edit, run commands, resume sessions, switch models, and use /memory commands — all backed by the same project memory as your MCP-connected agents.
Use it when you want a terminal agent with memory already wired in.
one Git project -> one shared Memorix memory poolSee docs/MEMCODE.md for the memcode-specific guide.
Minimal ~/.memorix/config.toml:
[agent]
provider = "openai"
model = "gpt-4o"
api_key = "..."
[memory.llm]
provider = "openai"
model = "gpt-4o-mini"
api_key = "..."
[embedding]
provider = "auto"
[memory]
inject = "minimal"
formation = "active"Use [memory.llm] and [embedding] for Memorix memory quality and retrieval. Use [agent] for the model memcode talks to while coding. Keep credentials in global config or environment variables, and do not commit secrets.
For OpenRouter embeddings, use provider = "api", base_url = "https://openrouter.ai/api/v1", and model = "qwen/qwen3-embedding-8b". Memorix accepts OPENROUTER_API_KEY for that embedding endpoint; MEMORIX_EMBEDDING_API_KEY remains the explicit override.
Docker is for the HTTP service, not stdio MCP:
docker compose up --build -dThen open:
dashboard:
http://localhost:3211MCP:
http://localhost:3211/mcphealth:
http://localhost:3211/health
The container must be able to access the repository path passed as projectRoot for project-scoped Git and config behavior.
Use Memorix directly from TypeScript:
import { createMemoryClient } from 'memorix/sdk';
const client = await createMemoryClient({ projectRoot: '/path/to/repo' });
await client.store({
entityName: 'auth-module',
type: 'decision',
title: 'Use JWT for API auth',
narrative: 'Chose JWT because the API is stateless and used by multiple clients.',
});
const results = await client.search({ query: 'auth decision' });
await client.close();Start here | Use when |
You want the shortest route to the right guide | |
Installing, using | |
Plugin packages, MCP, project rules, hooks, and skills support | |
TOML config, model lanes, compatibility files | |
MCP tools and CLI commands | |
Commit ingestion and searchable engineering truth | |
Containerized HTTP service | |
Using the bundled terminal agent | |
AI-facing execution guide for install, binding, hooks, and troubleshooting | |
Contributing, testing, release checks | |
What changed in each release |
LLM-friendly summaries: llms.txt and llms-full.txt.
git clone https://github.com/AVIDS2/memorix.git
cd memorix
npm install
npm run lint
npm test
npm run buildMemorix draws from the MCP ecosystem and prior memory projects such as mcp-memory-service, MemCP, claude-mem, and Mem0. memcode is based on the Pi coding-agent codebase and adapts its terminal-agent model for the Memorix ecosystem.
Generated daily from GitHub stargazer events by GitHub Actions.
Maintenance
Related MCP Servers
- AlicenseAqualityBmaintenancePersistent cloud memory for AI coding assistants. 28 MCP tools for semantic search, auto-learning, task tracking, correction patterns, knowledge graphs, and session replay across Claude Code, Cursor, Windsurf, Cline, and any MCP client. Encrypted at rest. Team shared memory with author attribution.Last updated351997MIT
- AlicenseAqualityAmaintenanceSelf-hosted memory and governance layer for AI coding agents. 28 MCP tools with hybrid search, structured knowledge capture, behavioral nudges, and git-native storage. Zero cloud dependencies.Last updated304Business Source 1.1
- AlicenseBqualityAmaintenanceMulti-agent shared brain MCP server enabling cross-session memory, self-improving skill loops, and inter-agent signaling across Claude, Codex, Gemini, Copilot, and VS Code CLI agents.Last updated1008MIT
- Flicense-qualityAmaintenanceLocal-first cross-agent memory for AI coding agents. Persistent, shared memory over MCP — what you tell one agent can be recalled by another — with all data stored in a single local SQLite file, no cloud and no API keys.Last updated
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AVIDS2/memorix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server