If you drive more than one coding agent on the same repository, you already know the tax: each tool starts from zero. Claude Code learns your deploy quirks in the terminal; Codex, an hour later, has never heard of them. Memorix fixes that with one local SQLite memory, keyed to your git project, that every agent reads and writes over MCP. Here's the whole setup for Claude Code, Codex, and Cursor.

What you get, in one screen#

1. Install and initialize#

npm install -g memorix
memorix init --global      # optional; writes ~/.memorix/config.toml

memorix init is optional — it just seeds a config file. Global config (~/.memorix/config.toml) sets cross-project defaults; a per-project memorix.toml at your git root overrides them. Start global.

2. Wire the three agents#

One command each. Each setup installs the right integration for that agent — a plugin, MCP config, lifecycle hooks, and (where supported) a skill.

memorix setup --agent claude --global    # Claude Code: plugin + CLAUDE.md guidance + hook capture
memorix setup --agent codex  --global    # Codex: user-level plugin with bundled stdio MCP + hooks
memorix setup --agent cursor --global    # Cursor: MCP + rules/config entries

Notes that save you a debugging session:

If you prefer to wire the MCP server by hand — for Cursor or any client that reads a JSON config — the stdio entry is:

{
  "mcpServers": {
    "memorix": {
      "command": "memorix",
      "args": ["serve"]
    }
  }
}

3. Know how the server runs#

memorix serve starts the stdio MCP server in --mode micro (7 tools) — the mode most agents launch on demand. Two other shapes exist when you want more:

memorix serve --mode lite        # more tools, still stdio
memorix serve-http --port 3211   # HTTP transport
memorix background start          # HTTP + a dashboard, left running

Use stdio (the default) for Claude Code and Cursor. Use serve-http/background start when you want the dashboard or a single shared server several agents dial into.

4. Verify the shared memory end to end#

You don't have to trust the wiring — prove it. Write a memory from the CLI, then search it back. If the search returns it, every agent hitting the same project store can too.

# store a durable project fact
memorix memory store --text "Deploy runs on a self-hosted GitHub runner, not Vercel." --visibility personal

# recall it — this is what the agents' MCP tools do under the hood
memorix memory search --query "how do we deploy"

That store/search pair is the loop the agents automate: capture hooks write during a session, and MCP tools like memorix memory and memorix resume pull the relevant facts back into context at the start of the next one — in whichever agent you happen to open. Ask Codex "how does deploy work here?" and the self-hosted-runner fact surfaces even though Claude Code is what learned it.

5. Decide on semantic recall (and keep keys out of git)#

Out of the box, search is full-text keyword via Orama — fully offline, no key. That's plenty for a single repo where you mostly need exact-ish recall of decisions and commands. If you want fuzzy semantic matches, add an embedding provider (OpenRouter or OpenAI) in config; Memorix then makes a single short semantic fallback when no keyword match lands.

One rule if you do: put the key in global config or an environment variable, never in the project memorix.toml that lands in git. Same discipline you'd apply to any agent credential — and the same reason we redact secrets before they reach a vendor in the observability world.

Where this leaves you#

Ten minutes and one npm package later, Claude Code, Codex, and Cursor share a single memory of your project — offline, in SQLite, keyed to your repo. Adding a fourth agent is one more memorix setup --agent <name>. If you'd rather compare the whole field first — including tools with a stricter human-approval write model — see our four-way comparison of shared agent-memory tools. The portability lesson is the same one behind one SKILL.md across five coding agents: the leverage isn't in any single tool — it's in the layer that travels between them.