memex-mvp · your AI's missing memory
English · Русский
Power your agent
การติดตั้งจากผู้เผยแพร่ ไม่ใช่เอนด์พอยต์ของ PlugMCP
URL แบบรีโมตหรือคำสั่งบนเครื่องของคุณ? การติดตั้งสองแบบต่างกันอย่างไร
รันบน 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.
เปิดจากผู้เผยแพร่
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.
เครื่องมือ
ยังไม่มีรายการเครื่องมือ เซิร์ฟเวอร์แบบรีโมตจะได้รายการหลังการตรวจสอบสถานะครั้งแรก
FAQ
คัดลอกคอนฟิก stdio สำหรับ Cursor, Claude Desktop, Claude Code หรือ VS Code ได้ในหน้านี้ คอนฟิกนี้ใช้การติดตั้งของผู้เผยแพร่ ไม่ใช่พร็อกซีของ PlugMCP
ระเบียนนี้ไม่ได้ระบุตัวแปรสภาพแวดล้อมที่จำเป็น
Memex Mvp ทำงานแบบโลคัลผ่าน stdio
ตรวจสอบล่าสุดเมื่อ 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.