Cross-AI · Local-first · v0.2

Every AI you use.
One memory you own.

Native AI memory has five structural gaps — per-project silos, no bridge between products, no cross-AI by design, one-machine binding, and gone the moment your account is. memex captures every conversation into one local SQLite file you own, searchable from any MCP-compatible agent.

MIT · Local SQLite file you own · Survives provider bans by design

Five gaps in native AI memory

Even Claude Memory (Pro/Max), ChatGPT memory, and Claude Code's CLAUDE.md leave structural holes. memex closes all five — verifiable against Anthropic's own open feature requests.

Native AI memory
memex
Per-project, not cross-project. Claude Memory keeps separate state per project — no recall across them. anthropics/claude-code #36561, #39195
One global SQLite index across every project, every chat, every machine.
No bridge between Anthropic's own products. Web Claude can't see your Code sessions. Code can't see Cowork. API can't see anything else.
Web Claude exports, Code .jsonl, Cowork sessions (incl. subagents) — all in one searchable index.
No cross-AI memory by design. ChatGPT, Cursor, Cline, Continue, Zed, Telegram AI bots — every provider keeps its own silo. None can read another's.
Any MCP-compatible client (and there's a growing list) reads the same memex memory through 8 standard tools.
Tied to one machine. Claude Code's history lives in ~/.claude/projects/ on whichever laptop you used. New machine = blank slate. anthropics/claude-code #25739
Plain SQLite file. Sync via iCloud / Syncthing / rsync / git-annex — your choice. Or run memex on every machine and let auto-capture rebuild locally.
Account dies → memory dies. Anthropic banned multiple orgs without warning in April 2026. Country policy blocks companies with >50% RU/CN/IR/KP ownership. Lose access — lose Memory + Projects + history with it. HN #47853021 · April 2026
The SQLite file on your laptop doesn't depend on any provider. Your AI history is yours by architecture, not policy.
And one more thing —

memex is MIT-licensed and not VC-funded. The code on GitHub IS the product — forkable, runnable forever, and impossible to quietly kill via acquihire. Rewind/Limitless got bought by Meta and shut down their Mac app on December 19, 2025. Local-first tools die when their owners cash out. memex can't, because there's no central owner to buy.

How it works

One folder. One database. Any agent can ask.

~/.claude/projects/ ← Claude Code sessions ~/Library/.../local-agent-mode ← Cowork sessions (incl. subagents) memex-sync daemon · FSEvents · ~1.5s debounce ~/.memex/inbox/ ← atomic snapshot writes chokidar inbox watcher parser Claude JSONL (flat + nested) / Telegram JSON SQLite + FTS5 ~/.memex/data/memex.db · UNIQUE(msg_id) dedup MCP server stdio JSON-RPC · 8 tools · proactive instructions any client: • Claude Code ~/.claude/config.json • Cursor ~/.cursor/mcp.json • Cline · Continue · Zed · ... your agent calls memex_overview() at session start, then memex_search() on every topic the user references — no prompting needed

What it gives you

🔄

Live auto-capture

memex-sync daemon watches your Claude Code and Cowork directories via FSEvents. Every new session captured into memory within ~1.5 seconds. One install command, runs forever.

🎯

Proactive recall

Server-side instructions teach any connecting agent to call memex first — for any topic, name, or decision the user references. No more 'please remember to check memex'. Decision tree, abstention rules, FTS5 syntax — all baked in.

🧠

Cross-session, cross-agent

Discussion in Cowork? Cursor sees it. Conversation in Claude Code? Continue can read it. Telegram chat with your AI bot? All searchable. One source of truth, any client.

🌳

Subagent-aware

Cowork sessions spawn helper subagents. Their transcripts captured separately and linked to parent. Search finds delegated research. Pull a main session with include_subagents:true to see the full picture.

🔒

Survives any ban

Anthropic decides when Claude Memory disappears. memex doesn't. Account suspended? Country blocked? TOS update? The SQLite file on your laptop doesn't care. Your AI history stays yours, by architecture — not policy.

Two pieces, opt-in

MCP server (passive memory) installs with npm. Auto-capture daemon (live updates) installs separately with one command. You decide. Without consent, nothing runs in your background.

MCP tools your agent gets

Tiny surface, big impact. The agent decides when to call them.

memex_overview(recent_limit?, format?)
One-shot corpus snapshot for orienting at session start: sources, totals, date range, recent conversation titles, and live sync-status banner. Agents call this first.
memex_search(query, limit?, source?, group_by_conversation?, expand_match?, include_archived?, format?)
FTS5 search with per-conversation dedup by default (one best hit per chat + match_count). expand_match:true returns full message text instead of 360-char preview.
memex_list_conversations(limit?, source?, since_ts?, include_archived?, include_subagents?, format?)
Browse chats sorted by recency. Each entry shows conversation_id, title, source, date range, message_count. Subagents hidden by default.
memex_get_conversation(conversation_id, limit?, include_subagents?, format?)
Full transcript of one chat. include_subagents:true folds in all spawned subagent transcripts in chronological order with a [↳ subagent] tag.
memex_recent(limit?, source?, include_archived?, format?)
Latest N messages by timestamp across all sources. For 'what was I just talking about'.
memex_archive_conversation(conversation_id, archive?)
Hide a chat from default listing/search without deleting. Stays fully indexed; pass include_archived:true to include it. Visibility flag, never a delete.
memex_status(format?)
Health check for the memex-sync daemon: installed/running/PID, last capture freshness, watched files count, actionable advice if something's off.
memex_list_sources(format?)
Diagnostic: message counts per source, recent imports, paths to inbox and DB, archived count.

Quickstart

Two paths. Pick the one that fits.

🤖 Easiest

Let your AI install memex for you

Already chatting with Claude Code, Cursor, Cline, Continue, or Zed? Any of them can do the whole install in 2 minutes — clone, wire the MCP config, turn on auto-capture. Just paste this prompt into the agent. It will show you each command before running, ask for confirmation on anything risky, and tell you when to restart.

Then paste into your AI agent's chat.
Install memex on this machine. Memex is a local-first AI memory tool — it captures my Claude Code and Cowork conversations into a searchable SQLite index that any MCP-compatible agent can query. Repo: https://github.com/parallelclaw/memex-mvp

Do these four steps in order. Show each command before you run it. Stop and ask if anything fails or looks wrong.

1. Clone and install
   - Suggest a parent directory (default: ~/Documents). Confirm with me.
   - cd into that directory
   - git clone https://github.com/parallelclaw/memex-mvp
   - cd memex-mvp
   - npm install
   Verify: server.js exists; npm install completed without fatal errors.

2. Wire memex into my MCP client
   - You're running inside one of: Claude Code, Cursor, Cline, Continue, Zed.
     Tell me which one you've inferred and which config file you'll edit.
     Common locations:
       Claude Code  → ~/.claude/config.json (or platform-specific equivalent)
       Cursor       → ~/.cursor/mcp.json
       Cline        → VS Code settings.json (cline.mcpServers)
       Continue     → ~/.continue/config.json
       Zed          → ~/.config/zed/settings.json (context_servers)
     If unclear, ask me.
   - Read the existing config (if present). Show me a diff before saving.
   - MERGE this entry into mcpServers — never overwrite other servers I have:
     {
       "mcpServers": {
         "memex": {
           "command": "node",
           "args": ["<absolute path to memex-mvp/server.js>"]
         }
       }
     }
     Use the absolute path from step 1 (run pwd inside memex-mvp).
   - If the config file doesn't exist, create the parent directory and write a minimal valid file with just memex.
   Verify: re-read the file after save; confirm memex entry is present and the path is absolute.

3. Turn on live auto-capture (recommended)
   - From the memex-mvp directory: npx memex-sync install
   - Then npx memex-sync status — should print "daemon installed", "running (PID …)", "watching N sessions".
   Verify: status output shows a non-zero PID.

4. Tell me what to do next
   - Tell me to fully quit and reopen the MCP client (Cmd+Q on macOS) so it picks up the new memex tools.
   - After restart, suggest I ask: "show me what memex has in memory"
     — that triggers memex_overview and confirms everything works end-to-end.

Safety rules — read these before starting:
- If `node` or `npm` aren't installed, stop and tell me to install Node.js (recommend nvm.sh). Don't try to install Node yourself.
- Never run rm, sudo, or anything destructive without explicit confirmation from me.
- Show every command before running it. If I say "no" or "stop", halt and explain.
- If a step fails, do NOT auto-retry or auto-fix — tell me what failed and ask how to proceed.
- When editing my MCP config, always preserve existing entries. If you can't merge cleanly, abort and tell me.

Begin by greeting me, asking which directory to clone into, and confirming which MCP client I'm using.
— or do it yourself —

Manual install — 4 steps, ~5 minutes

Each step shows where it happens. Do them in order. You only do this once.

📟 Terminal

1. Install memex on your machine

Open the Terminal app (Spotlight → type "Terminal" → Enter). Paste these three lines, press Enter after each:

git clone https://github.com/parallelclaw/memex-mvp
cd memex-mvp
npm install

The third command prints a lot of text — that's normal, wait until it finishes.

📝 Text editor

2. Tell Claude Code where memex lives

Still in Terminal, find the full path to your memex folder:

pwd

Copy what it prints — that's your-memex-path. Now open ~/.claude/config.json in any text editor (TextEdit, VS Code, Sublime, vim — anything). If the file doesn't exist, create it. Paste this and replace your-memex-path with what you copied:

{
  "mcpServers": {
    "memex": {
      "command": "node",
      "args": ["your-memex-path/server.js"]
    }
  }
}

Save the file. (Cursor, Cline, Continue, Zed have similar config files — same JSON shape.)

📟 Terminal

3. Turn on auto-capture (recommended)

Back in Terminal, run:

npx memex-sync install

This sets up a tiny background process that catches every new Claude Code and Cowork session within ~1.5 seconds. It survives reboots, crashes, and lid-closes — install once, forget it.

Verify it's working:

npx memex-sync status

Should print: daemon installed · running (PID …) · watching N sessions.

💬 Claude Code

4. Open Claude Code, talk to memex

Open a new Claude Code session. In the chat, ask in plain language:

show me what memex has in memory

The agent will call memex_overview automatically. From this moment on, every conversation in Claude Code or Cowork is captured into memex within seconds — and the next time you open a session, the agent already knows what you've been working on.

Stuck on any step? Open an issue — we'll help.

Companion: claude-backup

A separate Python CLI for exporting Claude Code/Cowork sessions to Markdown — for backup, sharing, reading offline, anywhere outside memex. Not required for memex itselfnpx memex-sync scan-claude ingests the same data without any Python dependency. Use claude-backup if you specifically want Markdown files as a side-effect.

pip install claude-backup
claude-backup export-all -o ./markdown-backup/
# → readable .md files of every session
github.com/parallelclaw/claude-backup →