memex-mvp · your AI's missing memory
English · Русский
Alimenter votre agent
Installation de l'éditeur. Ce n'est pas un endpoint PlugMCP.
Host a copy with our keys and logs.
Pas encore de version packagée dans le registre. Suivez le README du dépôt.
URL distante ou commande sur votre machine ? Ce qui distingue les deux installations
Exécuter sur PlugMCP
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
LancerDe l'éditeur
English · Русский
Local-first MCP memory server. Indexes Claude Code/Cowork/Telegram chats; any MCP-compatible AI agent (Cursor, Cline, Continue) can search them.
A single store for all your AI and Telegram chats.
A local-first MCP server that indexes every conversation you have with AI — Claude Code, Claude Cowork, Cursor, OpenClaw, Obsidian notes, and selected Telegram chats — into one searchable SQLite + FTS5 corpus and serves it back to any MCP-compatible client through a handful of tools.
No cloud. No account. No data leaves your machine.
~/.memex/inbox/ ← drop chat exports here (or symlink AI session files)
↓ chokidar watcher
parser (Telegram JSON · Claude Code JSONL · Cursor SQLite · Obsidian md)
↓
SQLite + FTS5 (~/.memex/data/memex.db)
↓
MCP server → Claude Code · Cursor · OpenClaw · …
One-line install (recommended):
curl -fsSL https://memex.parallelclaw.ai/install.sh | bash
That single command:
npm install -g memex-mvp, auto-fixing EACCES by moving npm's prefix to ~/.npm-global (no sudo needed, ever).memex-sync install) with the v0.8 Brian Chesky auto-context hook into ~/.claude/settings.json (preserves existing hooks).memex-sync scan) so memex already knows about your past sessions.claude (Claude Code CLI) is on PATH, runs claude mcp add memex --scope user -- memex to wire MCP automatically.Idempotent — safe to re-run. To inspect the script before piping to bash: curl -fsSL https://memex.parallelclaw.ai/install.sh | less.
Prefer manual install?
npm install -g memex-mvp
memex-sync install # macOS LaunchAgent for auto-capture
If npm install -g hits EACCES (system Node on macOS), either fix your prefix once:
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
Or use one-shot sudo npm install -g memex-mvp.
Want to try without installing globally?
npx memex-mvp install
If you'd rather have an AI agent walk you through everything, drop the
install-memex skill into ~/.claude/skills/:
mkdir -p ~/.claude/skills
curl -fsSL https://raw.githubusercontent.com/parallelclaw/memex-mvp/main/skills/install-memex/SKILL.md \
-o ~/.claude/skills/install-memex/SKILL.md
Then in Claude Code (or any Skills-aware agent) just say:
install memex
…or /install-memex. The agent handles npm install, MCP-config wiring,
auto-capture daemon, and verification — ~2 minutes.
After install, point your client at memex (an alias of server.js exposed on PATH):
claude mcp add memex --scope user -- memex
Add to that client's MCP config (e.g. ~/.cursor/mcp.json):
{
"mcpServers": {
"memex": { "command": "memex" }
}
}
Restart the client. Try the prompt:
"Use memex_overview to show me what's in my AI memory."
If you see a snapshot of sources and recent conversations — you're done.
For a fully-automated install across all detected MCP clients, see the AI-driven install guide on the landing page (paste the prompt into any MCP-enabled agent, it'll wire everything up itself).
The same memex binary that runs as an MCP server also has a terminal mode for direct queries. Useful when MCP isn't wired up, when you want to pipe results into shell scripts, or when debugging MCP-config issues:
memex search "Postgres migration" # full-text search
memex search "Q2 deck" --chat "Memex Bot" # scope to one conversation by title
memex search "JWT" --as-of 2026-05-01 # v0.8.1: time-travel — only msgs before date
memex when "Brian Chesky" # v0.8.1: "when did we talk about X" — dates + chats
memex recent --limit 5 # last 5 messages across all sources
memex list --source web # all saved URLs
memex get web-1582ab51a7b7 # full content of one conversation
memex overview # snapshot of corpus + v0.8.1: capture streak
memex projects # distinct project_paths captured
memex import ~/projects/memex/result.json # v0.10.12: ingest any file from any path
memex help # full user guide (HELP.md)
memex --help # command reference
memex import ~/projects/memex/result.json # auto-detects Telegram JSON
memex import ~/Downloads/ChatExport_2026-05-18/ # Telegram HTML export directory
memex import ~/path/to/session.jsonl # Claude Code JSONL
memex import ~/Downloads/result.json --force # skip Telegram privacy gate
memex import some-file --format claude-jsonl # explicit format override
For Telegram, the privacy gate fires for any chat that isn't on your allow-list — the command exits with a preview (title, message count, date range, senders) so you can review before re-running with --force. Same path via MCP: any AI agent can call memex_import_file({path: "..."}) to ingest one file in one tool call (instead of ~10k tokens of bash mv-shuffling).
Every query supports --json for machine-readable output: memex search foo --json | jq '.results[].snippet'. The DB is opened read-only — safe to run while memex-sync daemon is writing.
When called without arguments (memex), the binary still runs as an MCP stdio server (the way Claude Code / Cursor / OpenClaw launch it). CLI mode and MCP mode are the same package — no extra install.
After memex-sync install, you're prompted to enable auto-context. When yes, memex adds a SessionStart hook to ~/.claude/settings.json so that every time you open Claude Code in a project, Claude gets injected with ~500-1500 tokens of relevant context — what you did recently in this project, which conversations touched it, which related topics came up. No prompts. No tool calls. Just memory.
# Adding/removing the hook outside the install flow:
memex hook install # add SessionStart hook (idempotent)
memex hook uninstall # remove only the memex entry, preserves other hooks
memex hook status # show current state
# Inspecting what gets injected:
memex context # dry-run the hook output for the current dir
memex context --pwd /path # for a different project
memex context --no-source telegram # exclude a source
The hook respects existing hooks (e.g. gstack, custom user hooks) — they're preserved untouched.
Currently only Claude Code has native SessionStart hooks. For Cursor, an MCP-tool-based fallback is available (v0.9+).
Once memex is installed, any MCP-aware agent can also save web pages, AI chat shares, and pasted text into your memex memory — searchable from any other AI chat later. In Claude Code, Cursor, OpenClaw, …:
Save https://www.perplexity.ai/share/<id> to memex
Add this article to my memex: https://example.com/long-post
The agent fetches the page via its own WebFetch (auto-falling back to r.jina.ai for Cloudflare-protected sites — memex teaches the trick) and calls memex_store_document. Memex stores the content verbatim as a web source conversation, indistinguishable from AI chats at search time.
Perplexity threads need to be made Public in the Share dialog first — memex detects private threads and tells the user how to fix it. Full guide: HELP.md §8.
Memex stays 100% local — the agent fetches, memex only stores. Zero outbound calls from memex itself.
Telegram-export setup used to be 8 steps. v0.10+ collapses it to 2 (you click in Telegram; you pick which chats to keep). The rest is automatic.
How it works:
~/Downloads/Telegram Desktop/ in the background. No setup needed — already on after install.~/.memex/pending/ (NOT into your DB yet).memex_telegram_pending — sees a numbered list with chat name, msg count, date range.The agent leads. Just say "set up Telegram for memex" (or install memex in a fresh session — the install-memex skill v1.2+ proactively offers it). The agent will:
Three modes: pick (default — review each export), auto (allowed chats auto-import; new ones go to pending), manual (watcher off — drop files yourself).
Terminal equivalents: memex telegram check / pending / import 1 3 5 / skip 2 / mode auto. Full reference: memex telegram --help.
v0.10.1: 4-channel proactive notification. You'll find out about pending exports from whichever channel reaches you first:
memex_search / memex_recent / memex_overview tool responses include a telegram_pending field with chat names. Agent surfaces it as a natural aside.memex CLI command appends a 💡 tip line when pending > 0. Throttled to once per 6h.memex telegram notifications on to enable. Default OFF for lock-screen privacy; add --show-titles if you want chat names in the banner. v0.10.4+ clickable: if terminal-notifier is installed (brew install terminal-notifier), clicking the banner opens — in priority order — Claude Code CLI in a fresh Terminal (Brian Chesky moment via SessionStart hook), Claude Desktop, or Terminal with memex telegram pending queued. Override priority via memex telegram notifications target <auto|claude-cli|claude-desktop|terminal|none>.memex context injection includes a "🆕 N exports awaiting review" block with chat names. Claude leads with the question before you type anything.Opt-in, read-only local UI for browsing the corpus without any AI in the loop. Same SQLite, different surface.
memex web --open # localhost:8765, opens in browser
memex web --port 9000 # custom port
memex web --public --token s3cret # bind on 0.0.0.0 with bearer auth (for remote / tunnel)
memex web --help
Five pages:
Design constraints:
memex web starts the server; Ctrl+C stops it. No daemon./pending page — same privacy gate as memex telegram import.127.0.0.1. Use --public --token <…> for remote access (cron-friendly: same endpoint reserved for the future multi-host sync API).http + tagged template literals + htmx 14KB CDN. Total client bundle: ~30KB.All sources land in the same FTS5 corpus, searchable by one memex_search call.
Detailed search parameters (filters, sort, format) live in HELP.md.
~/.memex/data/memex.db. Back it up, encrypt it (FileVault is enough), rm it — your call.memex-sync sources <name> disable keeps that source out of the corpus permanently.See PRIVACY section in the Russian README for the full breakdown.
Built-in real sync (v0.13). Laptop with Claude/Cursor + a server with an agent (OpenClaw etc.)? Connect their memory in two copy-paste steps — no public ports, no firewall changes, no manual SSH keys, no hand-written services.
Step 1 — paste this prompt to the agent on your server:
Set up memex sync as a hub and give me a join token for my laptop:
1. npm install -g memex-mvp@latest (skip if installed)
2. memex-sync sync-server install --bind 127.0.0.1
3. memex-sync sync-server invite --join
Send me the memex-join:... line.
Step 2 — one command on your laptop:
memex-sync sync-join memex-join:eyJ2...
What that one command does, in order — and verifies at each step:
✓ token valid ([email protected], expires in 28m)
✓ SSH access — OK (no key? it prints yours + what to do)
✓ self-healing tunnel up (survives sleep, network changes, reboot)
✓ hub sync-server alive (cert pinned)
✓ first sync: pulled N · pushed M
✓ auto-sync every 15m installed
✓ health watchdog installed (alerts if sync goes silent > 1h)
✓ end-to-end verified: a test note round-tripped in 3.4s
The server binds loopback only — nothing is ever exposed to the internet;
all traffic rides inside SSH on port 22 (the one port that's never blocked).
Conflict-free by design: verbatim memory is append-only
(UNIQUE(source, conversation_id, msg_id)), so there is nothing to merge.
Interrupted first syncs resume from the last good page. Re-joining the same
hub keeps sync cursors — no pointless full re-replication. After a successful
join, no MEMEX_SYNC_EXPERIMENTAL env var is needed for any sync command.
Provenance (v0.14). Every row is stamped with the node that captured it,
and the stamp travels with sync — so "what did I discuss with the VPS agent
vs. on my laptop?" stays answerable after the corpora merge:
memex_search(query, origin: "vps1"). Conversations where two agents
interleave (e.g. two OpenClaw instances bridging one Telegram account) get
per-line [@node] tags in memex_get_conversation. Name your node by setting
origin in ~/.memex/config.json (defaults to the hostname, persisted) —
best done before data accumulates, since old rows keep their stamp.
Advanced topologies — multi-node mesh, reverse tunnels (laptop-as-hub),
transit hubs gluing nodes that can't see each other (proven live on a
San-Francisco Mac + Italy VPS + Asia VPS mesh) — are documented with the wire
protocol in SYNC.md. Agents can emit pair tokens via the
memex_sync_invite MCP tool.
Simple alternative (no sync engine). The corpus is one SQLite file plus a small
inbox directory, so a one-time scp covers migrations. See
MULTI_MACHINE.md for legacy file-sync recipes.
MIT — see LICENSE.
Local-first MCP memory server. Indexes Claude Code/Cowork/Telegram chats; any MCP-compatible AI agent (Cursor, Cline, Continue) can search them.
Outils
Pas encore de liste d'outils. Les serveurs distants en obtiennent une après le premier contrôle d'état.
FAQ
Copiez sur cette page la configuration stdio pour Cursor, Claude Desktop, Claude Code ou VS Code. Elle utilise l'installation de l'éditeur, pas un proxy PlugMCP.
Aucune variable d'environnement requise n'est indiquée sur cette fiche.
Memex Mvp s'exécute en local via stdio.
Dernière vérification : 2026-10-28. Local-first MCP memory server. Indexes Claude Code/Cowork/Telegram chats; any MCP-compatible AI agent (Cursor, Cline, Continue) can search them.