{"id":"25eabb70-a0e4-4a9d-bdb6-5d409a6bd3ac","entityType":"agent","slug":"clawhub-sedelev-install-memex","name":"Install memex — cross-AI memory","canonicalUrl":"https://www.xpersona.co/agent/clawhub-sedelev-install-memex","canonicalPath":"/agent/clawhub-sedelev-install-memex","generatedAt":"2026-10-11T10:50:13.652Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":null},"description":"Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (loc...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s171srkkzs7tq0b2sb81x0ahk985wd1y:install-memex","sourceUrl":"https://clawhub.ai/sedelev/install-memex","homepage":"https://clawhub.ai/sedelev/skills/install-memex","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/sedelev/install-memex","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/sedelev/skills/install-memex","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Install memex — cross-AI memory technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":null},"stars":null,"forks":null,"downloads":1109,"packageName":null,"latestVersion":"1.5.1","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:45:08.713Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T08:45:08.779Z","lastCrawledAt":"2026-10-11T08:45:08.713Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T08:45:08.713Z","lastVerifiedAt":null,"highlights":[{"version":"1.5.1","createdAt":"2026-05-19T12:39:56.273Z","changelog":"v1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.","fileCount":5,"zipByteSize":19435},{"version":"1.5.0","createdAt":"2026-05-18T07:34:21.244Z","changelog":"v1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.","fileCount":4,"zipByteSize":17679},{"version":"1.4.0","createdAt":"2026-05-17T17:39:35.170Z","changelog":"v1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.","fileCount":4,"zipByteSize":16996},{"version":"1.3.1","createdAt":"2026-05-16T17:22:20.912Z","changelog":"v1.3.1 — added explicit Safety & Transparency block at the top of SKILL.md so static scanners + reviewers + curious users can verify each 'suspicious' pattern (curl|bash, PATH edit, LaunchAgent, MCP config edit, AppleScript, brew install) is intentional + source-of-truth linked. No behavior change; this is documentation only. v1.3 sets up memex (local-first MCP server for cross-agent AI memory) end-to-end in ~60 seconds via curl one-liner — auto-fixes npm EACCES, installs the auto-capture daemon (LaunchAgent), wires the Brian Chesky SessionStart hook into ~/.claude/settings.json, backfills history, and registers MCP for Claude Code CLI. Then proactively walks v0.10 Telegram capture: export from Telegram Desktop → daemon stages it → AI asks per-chat which to import (privacy-first consent, allow/skip/block patterns). Cross-client coverage: Claude Code CLI gets native SessionStart hook; Cursor/Cline/Continue/Zed/Claude Desktop get the same wow-moment via SERVER_INSTRUCTIONS teaching the agent to call memex_overview first. 18 MCP tools after install. URL/Perplexity capture via memex_store_document. Terminal CLI fallback when MCP isn't wired.","fileCount":4,"zipByteSize":16774},{"version":"1.3.0","createdAt":"2026-05-16T17:08:27.257Z","changelog":"Sets up memex (local-first MCP server for cross-agent AI memory) end-to-end in ~60 seconds via curl one-liner — auto-fixes npm EACCES, installs the auto-capture daemon (LaunchAgent), wires the Brian Chesky SessionStart hook into ~/.claude/settings.json, backfills history, and registers MCP for Claude Code CLI. Then proactively walks v0.10 Telegram capture: export from Telegram Desktop → daemon stages it → AI asks per-chat which to import (privacy-first consent, allow/skip/block patterns). Cross-client coverage: Claude Code CLI gets native SessionStart hook; Cursor/Cline/Continue/Zed/Claude Desktop get the same wow-moment via SERVER_INSTRUCTIONS teaching the agent to call memex_overview first. 18 MCP tools after install. URL/Perplexity capture via memex_store_document. Terminal CLI fallback when MCP isn't wired.","fileCount":4,"zipByteSize":15505}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171srkkzs7tq0b2sb81x0ahk985wd1y:install-memex","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171srkkzs7tq0b2sb81x0ahk985wd1y:install-memex` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/sedelev/install-memex before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T10:50:13.647Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sedelev-install-memex/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":null},"readme":"Skill: Install memex — cross-AI memory\n\nOwner: sedelev\n\nSummary: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (loc...\n\nTags: ai-memory:1.5.1, brian-chesky:1.5.1, chat-archive:1.5.1, claude-code:1.5.1, claude-cowork:1.5.1, cline:1.5.1, context-persistence:1.5.1, continue:1.5.1, cowork:1.5.1, cross-agent:1.5.1, cursor:1.5.1, fts5:1.5.1, install:1.5.1, latest:1.5.1, local-first:1.5.1, mcp:1.5.1, mcp-server:1.5.1, memex:1.5.1, memory:1.5.1, obsidian:1.5.1, parallelclaw:1.5.1, session-hook:1.5.1, session-memory:1.5.1, setup:1.5.1, sqlite:1.5.1, telegram:1.5.1, telegram-capture:1.5.1, verbatim:1.5.1, zed:1.5.1\n\nVersion history:\n\nv1.5.1 | 2026-05-19T12:39:56.273Z | user\n\nv1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.\n\nv1.5.0 | 2026-05-18T07:34:21.244Z | user\n\nv1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.\n\nv1.4.0 | 2026-05-17T17:39:35.170Z | user\n\nv1.4.0 — adds a new post-install step suggesting 'memex web --open' (added in memex-mvp v0.10.8/0.10.9). Opt-in read-only local dashboard at http://127.0.0.1:8765 with 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending-Telegram review with checkboxes, and read-only settings. Localhost-only by default; --public + --token for remote access. ~30KB client bundle (Node raw http + htmx, no React build) vs claude-mem's ~10MB viewer. Great demo moment after install — user sees their actual messages verbatim, not an AI summary. Same v1.3.1 safety baseline preserved: Safety & Transparency block at the top of SKILL.md, agent shows every shell command before running, sudo never without explicit user OK, MCP configs merged not overwritten, memex itself emits zero outbound network traffic at runtime. v1.3 setup flow unchanged: curl one-liner / npm install -g + LaunchAgent + Brian Chesky SessionStart hook + Telegram per-chat consent. 18 MCP tools after install. Cross-client coverage: Claude Code CLI native hook; Cursor/Cline/Continue/Zed/Claude Desktop via SERVER_INSTRUCTIONS.\n\nv1.3.1 | 2026-05-16T17:22:20.912Z | user\n\nv1.3.1 — added explicit Safety & Transparency block at the top of SKILL.md so static scanners + reviewers + curious users can verify each 'suspicious' pattern (curl|bash, PATH edit, LaunchAgent, MCP config edit, AppleScript, brew install) is intentional + source-of-truth linked. No behavior change; this is documentation only. v1.3 sets up memex (local-first MCP server for cross-agent AI memory) end-to-end in ~60 seconds via curl one-liner — auto-fixes npm EACCES, installs the auto-capture daemon (LaunchAgent), wires the Brian Chesky SessionStart hook into ~/.claude/settings.json, backfills history, and registers MCP for Claude Code CLI. Then proactively walks v0.10 Telegram capture: export from Telegram Desktop → daemon stages it → AI asks per-chat which to import (privacy-first consent, allow/skip/block patterns). Cross-client coverage: Claude Code CLI gets native SessionStart hook; Cursor/Cline/Continue/Zed/Claude Desktop get the same wow-moment via SERVER_INSTRUCTIONS teaching the agent to call memex_overview first. 18 MCP tools after install. URL/Perplexity capture via memex_store_document. Terminal CLI fallback when MCP isn't wired.\n\nv1.3.0 | 2026-05-16T17:08:27.257Z | user\n\nSets up memex (local-first MCP server for cross-agent AI memory) end-to-end in ~60 seconds via curl one-liner — auto-fixes npm EACCES, installs the auto-capture daemon (LaunchAgent), wires the Brian Chesky SessionStart hook into ~/.claude/settings.json, backfills history, and registers MCP for Claude Code CLI. Then proactively walks v0.10 Telegram capture: export from Telegram Desktop → daemon stages it → AI asks per-chat which to import (privacy-first consent, allow/skip/block patterns). Cross-client coverage: Claude Code CLI gets native SessionStart hook; Cursor/Cline/Continue/Zed/Claude Desktop get the same wow-moment via SERVER_INSTRUCTIONS teaching the agent to call memex_overview first. 18 MCP tools after install. URL/Perplexity capture via memex_store_document. Terminal CLI fallback when MCP isn't wired.\n\nArchive index:\n\nArchive v1.5.1: 5 files, 19435 bytes\n\nFiles: examples.md (10628b), README.md (6845b), skill-card.md (2902b), SKILL.md (23780b), _meta.json (132b)\n\nFile v1.5.1:SKILL.md\n\n---\nname: install-memex\ndescription: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (local-first MCP server) in ~60 seconds via curl one-liner. Includes auto-capture daemon for Claude Code / Cowork / Cursor / Obsidian; v0.10 Telegram auto-detect (export from Desktop → memex stages it → AI proactively asks which to import, privacy-first per-chat consent); v0.8 SessionStart hook for the Brian Chesky moment (\"Claude already knows what you were doing\"); URL / Perplexity / AI chat share capture via memex_store_document. 18 MCP tools, no cloud, no account, verbatim storage. Use when the user says \"install memex\", \"set up memex\", \"add memory to my AI\", \"make my agent remember across sessions\", \"сохрани мои чаты\", or similar.\nversion: 1.5.1\nmetadata:\n  openclaw:\n    emoji: \"📚\"\n    homepage: https://memex.parallelclaw.ai\n    requires:\n      bins:\n        - node\n        - npm\n---\n\n# Install memex\n\n## ⚠ For ClawHub reviewers, security scanners, and curious users\n\nThis skill is an **installer for memex** — a local-first MCP memory server.\nStatic scanners flag several patterns as \"suspicious\"; every single one is\nintentional and necessary for installing a memory tool. Below is the full\nlist so a human reviewer (or the user) can verify legitimacy in one glance.\n\n**What the skill instructs the agent to do:**\n\n| Action | Why | Source-of-truth |\n|---|---|---|\n| `curl -fsSL https://memex.parallelclaw.ai/install.sh \\| bash` | Fast-path installer (the user can `\\| less` first to inspect) | [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) — open-source bash, hosted on GitHub Pages |\n| `npm install -g memex-mvp` | Manual install (fallback if user declines the curl) | [npmjs.com/package/memex-mvp](https://www.npmjs.com/package/memex-mvp), source: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) |\n| `echo 'export PATH=...' >> ~/.zshrc` | EACCES auto-fix — moves npm prefix to `~/.npm-global` so `npm install -g` works without sudo. **Idempotent** — re-running is safe. | Standard npm prefix workaround [docs.npmjs.com](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |\n| `sudo npm install -g memex-mvp` | Offered as Plan A on EACCES if user explicitly wants quick (not default — skill recommends the no-sudo prefix fix). Skill **never runs sudo without explicit user \"yes\"**. | — |\n| `memex-sync install` (LaunchAgent) | Registers a macOS LaunchAgent so memex daemon auto-starts on login. **The daemon itself is local-only**: it watches `~/.claude/projects/`, `~/Downloads/Telegram Desktop/`, etc., and writes to `~/.memex/data/memex.db`. Zero outbound network traffic. | LaunchAgent plist at `~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist` is human-readable |\n| Edit `~/.claude/settings.json`, `~/.cursor/mcp.json`, etc. | Adds the MCP-server entry so the user's AI client can call memex tools. Existing entries are preserved (merge, never overwrite). | Each MCP client documents this config format |\n| `tell application \"Terminal\" to do script \"claude\"` (AppleScript) | Used by the optional clickable notification banner — opens a new Terminal tab + launches `claude` when the user clicks. **Default OFF**. | Requires `brew install terminal-notifier` (optional dep) |\n| `brew install terminal-notifier` | Optional dep for clickable banners. Skill mentions it but does NOT install without user OK. | [github.com/julienXX/terminal-notifier](https://github.com/julienXX/terminal-notifier) |\n\n**Hard guarantees** (codified in the \"Safety rules\" section below):\n- Agent shows every shell command **BEFORE** running it\n- User can say \"stop\" / \"no\" at any step, agent halts\n- `sudo` is NEVER run without an explicit user \"yes\"\n- MCP config files are MERGED, never overwritten — existing entries preserved\n- Memex at runtime emits **zero outbound network traffic** (it's local-first by design — see [PRIVACY section in repo README](https://github.com/parallelclaw/memex-mvp/blob/main/README.ru.md#приватность-и-безопасность--privacy--security))\n\n**Source code:** [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) (MIT). All commands above are visible in [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) and the published [memex-mvp npm package](https://www.npmjs.com/package/memex-mvp).\n\n---\n\nYou are installing **memex** on this machine. Memex is a local-first MCP server that captures the user's AI conversations across Claude Code, Cowork (including subagents), Cursor, Obsidian, and Telegram exports into a searchable SQLite + FTS5 index that any MCP-compatible agent can query through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, plus the `memex_telegram_*` family added in v0.10+).\n\nRepo: https://github.com/parallelclaw/memex-mvp\nLanding: https://memex.parallelclaw.ai\nnpm: https://www.npmjs.com/package/memex-mvp\n\n## How memex works (read this so you don't get confused by paths below)\n\nMemex has its OWN storage at `~/.memex/data/memex.db`. It READS from each tool's native data location automatically — Claude Code from `~/.claude/projects/`, Cursor from its `state.vscdb`, Cowork from its sessions dir, Obsidian from configured vaults. You do NOT need to change where Claude Code, Cursor, or any other tool saves its data. Memex is a passive observer.\n\n## Prerequisite\n\nThis skill only works if you are running INSIDE an AI agent that has direct access to the user's shell — i.e. one of: Claude Code (CLI), Cursor, Cline, Continue, or Zed. Web-based agents (ChatGPT in browser, Claude.ai web, Claude Desktop without tools, etc.) cannot execute `npm`/file operations. If you are NOT a CLI-based agent with shell access, stop now and tell the user to use the manual install at https://memex.parallelclaw.ai/#quickstart.\n\n## Discovery — do this BEFORE the numbered steps\n\nScan the user's setup so you can tailor advice and tell them exactly what memex will pick up.\n\n1. Identify which MCP client you're running inside (you should know from context — Claude Code CLI, Cursor, Cline, Continue, or Zed).\n2. Run these read-only checks one by one:\n   ```sh\n   ls -d ~/.claude/projects 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Claude/local-agent-mode-sessions 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Cursor 2>/dev/null\n   ls ~/.continue/config.json 2>/dev/null\n   ls -d ~/.config/zed 2>/dev/null\n   ```\n3. Report to the user in plain language:\n   - \"You're running inside [X]. I will edit [path] in step 2 below.\"\n   - \"Tools with data found on this machine: [list]\"\n   - \"Tools NOT found (memex won't capture from these): [list]\"\n   - \"After install, memex will auto-index conversations from: [detected sources]\"\n4. Wait for the user's \"ok\" before starting step 1.\n\n## Fast path — one-line installer (try this first)\n\nmemex ships a hosted bash installer that does steps 1, 3, and 4 in a single run — and also wires up Claude Code's MCP entry if `claude` is on PATH. It's idempotent (safe to re-run), auto-fixes the `EACCES` case by moving npm's prefix to `~/.npm-global`, and prompts before enabling the auto-context hook.\n\nShow this command to the user, explain what it does, get their **explicit ok**, then run:\n\n```sh\ncurl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n```\n\nWhat the script does, in order:\n1. Checks Node ≥ 20.\n2. `npm install -g memex-mvp` — on EACCES, sets `npm config set prefix ~/.npm-global`, appends PATH to `~/.zshrc`, retries.\n3. `memex-sync install` with `--auto-context yes` (Brian Chesky hook into `~/.claude/settings.json` — preserves other hooks).\n4. `memex-sync scan` — backfills existing history.\n5. `claude mcp add memex --scope user -- memex` if Claude Code CLI is detected.\n\nAfter the script finishes:\n- If the user is in **Claude Code (CLI)** → install is complete. Skip straight to step 6 (verification + restart). Also do step 5 (offer Telegram capture).\n- If the user is in **Cursor / Cline / Continue / Zed** → the npm install + daemon + auto-context + scan are done, but the GUI client's MCP config still needs the memex entry. **Skip step 1 (already installed)**, **skip step 3** (daemon already installed) and **skip step 4** (scan already ran). **Do step 2** (wire MCP into the GUI client's config), **step 5** (offer Telegram), and **step 6** (verify + restart).\n\nIf the script fails for any reason — non-zero exit, weird output, user uncomfortable piping curl to bash — fall back to the **Manual install** below.\n\nTo inspect what the script does first: `curl -fsSL https://memex.parallelclaw.ai/install.sh | less` (don't pipe to bash).\n\n## Manual install (if the fast path didn't fit)\n\nDo these in order. Show each command before running it. Stop and ask if anything fails or looks wrong.\n\n### 1. Install memex from npm\n\n```sh\nnpm install -g memex-mvp\n```\n\nIf you get `EACCES` (macOS system Node), **recommend Option B (permanent prefix fix) by default** and proceed unless the user explicitly chooses sudo.\n\nSay to the user:\n\n> \"Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. Proceed with B?\"\n\nIf the user agrees (or says anything like \"ok\", \"yes\", \"default\", \"go\", \"B\") — proceed with B without further questions:\n\n```sh\nmkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\nnpm install -g memex-mvp\n```\n\nIf the user **explicitly** picks A (or says \"sudo\", \"fast\", \"quick\"), use sudo:\n\n```sh\nsudo npm install -g memex-mvp\n```\n\nAfter the install completes, verify with `which memex` (should print an absolute path) and `memex --version` (should print the version).\n\n**Important if Option B was used + user already had memex from a prior sudo install:** the old sudo-installed copy in `/usr/local/lib/node_modules/memex-mvp/` is now orphaned (PATH prefers the new home install). Mention this once:\n\n> \"By the way, you have an older sudo-installed memex copy in `/usr/local/lib/`. It's harmless but takes ~60 MB. Clean it up when convenient: `sudo npm uninstall -g memex-mvp` — not urgent.\"\n\nDon't run that uninstall yourself — let the user decide when.\n\nIf `node` or `npm` are missing, STOP and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n\n**Verify:** `which memex` prints an absolute path; `memex-sync --help` runs without error.\n\n### 2. Wire memex into the MCP client\n\nCommon config locations:\n\n| Client       | Config file                                         |\n|--------------|-----------------------------------------------------|\n| Claude Code  | `~/.claude/config.json` (or platform equivalent)    |\n| Cursor       | `~/.cursor/mcp.json`                                |\n| Cline        | VS Code `settings.json` (`cline.mcpServers`)        |\n| Continue     | `~/.continue/config.json`                           |\n| Zed          | `~/.config/zed/settings.json` (`context_servers`)   |\n\nTell the user which one you've inferred and which file you'll edit. If unclear, ask.\n\nRead the existing config (if present). Show the user a diff before saving.\n\nGet the **absolute** path to the memex binary — GUI apps (Cursor, Cline, Claude Desktop) on macOS often don't inherit shell PATH, so a bare `\"command\": \"memex\"` fails with `spawn memex ENOENT`. Run:\n\n```sh\nwhich memex\n```\n\nCapture that path (e.g. `/Users/<you>/.npm-global/bin/memex` or `/usr/local/bin/memex`). If it's a shim, also run `realpath $(which memex)` to resolve to the real binary.\n\nMERGE this entry into `mcpServers` — never overwrite other servers the user has:\n\n```json\n{\n  \"mcpServers\": {\n    \"memex\": {\n      \"command\": \"<absolute path from which memex>\"\n    }\n  }\n}\n```\n\nOne path, no `args`. The published npm package wires up its own entry point.\n\nIf the config file doesn't exist, create the parent directory and write a minimal valid file with just memex.\n\n**Verify:** re-read the file after save; confirm `memex` entry is present and `command` is an absolute path.\n\n### 3. Turn on live auto-capture + auto-context (v0.8+)\n\n```sh\nmemex-sync install\n```\n\nDuring `memex-sync install`, you'll see a prompt:\n\n```\nAuto-context (Brian Chesky mode):\n  When you open Claude Code in a project, memex can inject 500-1500 tokens\n  of relevant context so Claude knows what you were doing — without you\n  having to ask. Adds a SessionStart hook to ~/.claude/settings.json.\n  Other hooks (e.g. gstack) are preserved.\n\n  Enable? [Y/n]\n```\n\n**Answer Y unless the user has stated privacy concerns** about Claude seeing context from their other AI conversations. Auto-context is the \"10/10 magic moment\" of memex — without it the install ships at base capability. Other hooks (gstack, custom) are preserved untouched.\n\nFor non-interactive flows (CI / scripts): pass `--auto-context yes` or `--yes`.\n\n```sh\nmemex-sync status\n```\n\n`status` should print \"daemon installed\", \"running (PID …)\", \"watching N sessions\".\n\n**Verify:** status output shows a non-zero PID. Also run `memex hook status` — should show `INSTALLED` if auto-context was accepted.\n\n### 4. Backfill existing history\n\nThe daemon only catches NEW sessions going forward. To index everything already on disk:\n\n```sh\nmemex-sync scan\n```\n\nThis walks `~/.claude/projects/`, Cowork sessions, Cursor `state.vscdb`, and any configured Obsidian vaults once, ingesting whatever exists.\n\nOptionally:\n```sh\nmemex-sync backfill-projects\n```\n\nTags older conversations with their `project_path` so `memex_list_projects` works on them.\n\n**Verify:** after scan, `memex-sync status` shows a non-zero \"ingested\" count.\n\n### 5. Offer Telegram-export capture (v0.10+)\n\nAfter the core install is done, **proactively** ask:\n\n> \"Memex can also remember your Telegram chats — work, family, group chats, whatever you want indexed. Want me to set that up too? It's about 2 minutes.\"\n\nIf yes, run `memex_telegram_check` (MCP tool) or `memex telegram check` (CLI). The result tells you the user's state and the next step. Walk them through:\n\n  - **No Telegram Desktop?** → Give the download URL from the check output. Wait for them to install + log in.\n  - **Logged in <24h ago?** → Tell them: \"Telegram blocks export for the first 24h. Wait ~X hours, then come back.\"\n  - **Ready to export?** → Show the click-path: open chat → ⋮ menu (top-right) → \"Export chat history\" → format HTML or JSON → Export.\n\nAfter the user exports, memex's daemon **auto-detects** the file in ~/Downloads/Telegram Desktop/ within ~7 seconds and stages it in `~/.memex/pending/`. Then:\n\n  - Call `memex_telegram_pending` to list staged exports (chat name, msg count, date range).\n  - **Present as a numbered list**, ask which to import. Accept indices, titles, or natural language (\"import family and work, skip bank\").\n  - Call `memex_telegram_import` with selected indices/titles. The chat is added to the allow-list — future re-exports auto-merge via UNIQUE(msg_id).\n  - For sensitive chats user doesn't want (Bank, Therapist, etc.), call `memex_telegram_skip`.\n\n**⚠ Existing exports back-fill (v0.10.13+):** if the user had Telegram Desktop exports SITTING IN `~/Downloads/Telegram Desktop/` BEFORE memex was installed, the daemon's chokidar watcher may or may not detect them (race with FSEvents on first run). The fast remedy is `memex telegram scan` — it walks the Downloads dir and stages every `ChatExport_*` folder (HTML or JSON, both work). v0.10.13's `memex-sync install` also runs this scan automatically at the end, but if the user already installed pre-0.10.13, OR if `memex telegram pending` reports zero entries despite a populated Downloads dir, run `memex telegram scan` explicitly. Both HTML and JSON formats are supported — don't tell the user to re-export in JSON.\n\n**Optional — clickable native macOS banner (v0.10.4+):** memex can fire a macOS notification the moment an export is staged. Default OFF for privacy. If the user wants this:\n\n```sh\nbrew install terminal-notifier             # required for clickable banner\nmemex telegram notifications on            # enable; default: titles hidden\nmemex telegram notifications on --show-titles   # include chat names in banner\n```\n\nWhen enabled with `terminal-notifier`, clicking the banner opens (auto-detect priority): Claude Code CLI in a fresh Terminal tab → Claude Desktop → Terminal with `memex telegram pending`. The CLI launch path triggers the SessionStart hook → Brian Chesky moment. Override target: `memex telegram notifications target <auto|claude-cli|claude-desktop|terminal|none>`.\n\n**Other useful Telegram commands** (no MCP-tool wiring needed):\n\n```sh\nmemex telegram check          # diagnostic: Desktop? login age (24h)? watcher?\nmemex telegram open-pending   # one-shot: open pending list in best client\nmemex telegram mode auto      # auto-import allow-listed chats on re-export\nmemex telegram status         # decisions counts (allowed/skipped/blocked)\n```\n\n**Privacy is the core promise. Never auto-import. Always get explicit per-chat consent on the first round.**\n\nIf the user declines Telegram setup (\"not now\" / \"skip\"): say \"OK, I'll skip Telegram. You can run `memex telegram check` anytime later to start.\" Don't push.\n\n### 6. Tell the user what to do next\n\nTell the user to fully quit and reopen the MCP client (Cmd+Q on macOS) so it picks up the new memex tools.\n\n**🌟 OFFER TO IMPORT THEIR EXISTING DATA RIGHT NOW (v0.10.12+):** before anything else, ask the user if they have a Telegram export or a chat-history file sitting somewhere on disk that they'd like to load. Many users come with a `result.json` they exported yesterday, sitting in `~/Downloads/` or a project folder. Don't make them figure out memex's \"magic paths\" — just ask:\n\n> \"Do you have any chat exports already on disk you want loaded into memex right now? Tell me the path (e.g. `~/Downloads/result.json` or `~/projects/memex/result.json`) — I'll handle it.\"\n\nThen call `memex_import_file({path: \"<their-path>\"})`. The tool auto-detects format (Telegram JSON / HTML / Claude JSONL / Cowork JSONL), respects the privacy gate for Telegram (returns `needs_consent` with a preview — surface it, get user OK, retry with `force: true`), and gives you a structured result in one call. **Do not use bash `mv`/`cp` to shuffle files into `~/.memex/inbox/`** — that was the old workflow and burned ~10k tokens per file. Use `memex_import_file` instead.\n\n**🌟 ALSO STRONGLY RECOMMEND THIS (v0.10.8+):** offer to run `memex web --open` for them right now. It's the single most magical post-install moment — a local browser tab opens at `http://127.0.0.1:8765` with 5 pages showing every conversation memex has captured, dialogue rendered as chat-bubbles, full-text searchable. Verbatim — not AI-summarized. Read-only, localhost-only, Ctrl+C to stop. Phrase it naturally, e.g.:\n\n> \"I can open a local web dashboard that lets you actually *see* what memex captured — every message, in chat-bubble form, searchable. It's just a browser tab on `localhost:8765`. Run it now? It's a way better demo than asking me search queries blind.\"\n\nThen run `memex web --open` (in a backgrounded shell if your shell wrapper supports it — otherwise tell the user to run it themselves in another terminal). Wait for them to react before continuing.\n\n**After that, suggest other ways to confirm end-to-end:**\n- \"show me what memex has in memory\" → triggers `memex_overview`\n- \"what projects has memex captured\" → triggers `memex_list_projects`\n- \"search memex for [recent topic]\" → triggers `memex_search`\n- \"save https://en.wikipedia.org/wiki/As_We_May_Think to memex\" → triggers `memex_store_document` and teaches the user that URL-saving exists (v0.6+)\n- **Open Claude Code in any project the user worked on recently** — the SessionStart auto-context (v0.8+) should kick in and Claude will mention prior work _before_ the user types anything. This is the \"Brian Chesky moment\" — the magical-first-impression of memex.\n- **(if Telegram was set up)** `memex telegram check` — confirms daemon's Telegram-Downloads watcher is active and shows the user's full capture pipeline state.\n\nThese confirm everything works end-to-end.\n\n**Brian Chesky moment beyond Claude Code (v0.10.7+):** the SessionStart hook works only in Claude Code CLI. But starting v0.10.7, the same proactive behaviour is taught to agents in Cursor / Cline / Continue / Zed / Claude Desktop via SERVER_INSTRUCTIONS — these agents call `memex_overview` automatically on first interaction, read its `telegram_pending` field, and surface pending exports in their first reply. Slightly higher latency (one MCP roundtrip vs hook's instant inject), but same UX.\n\n**CLI fallback (v0.7+):** if the MCP integration doesn't pick up in the user's client for any reason, tell them they can verify memex from the terminal directly — same binary, no MCP needed:\n\n```sh\nmemex overview      # confirms memex itself is healthy\nmemex search \"foo\"  # FTS search from CLI\nmemex list          # list conversations\nmemex --help        # command reference\n```\n\nThis is also useful for agents without native MCP support (OpenCode + Kimi, plain shell scripts, CI pipelines) — they can shell out to `memex` directly.\n\n## Safety rules — read before starting\n\n- If `node` or `npm` aren't installed, stop and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n- Never run `rm`, `sudo`, or anything destructive without explicit confirmation from the user.\n- Show every command before running it. If the user says \"no\" or \"stop\", halt and explain.\n- If a step fails, do NOT auto-retry or auto-fix — tell the user what failed and ask how to proceed.\n- When editing the MCP config, always preserve existing entries. If you can't merge cleanly, abort and tell the user.\n- Do NOT modify the host application's settings beyond adding the memex entry to its `mcpServers` config. Specifically: do not redirect where Cursor / Claude Code / any other tool saves its data. Memex reads from each tool's native location automatically. The only file you should touch is the MCP config file listed in step 2.\n- Stay focused on the main install task. If sidetracked into a sub-task (changing workspace, fixing an unrelated config issue, looking up something else), once it's done you MUST return to the memex install and explicitly tell the user: \"OK, back to memex install. We were at step N — should I continue?\". Don't go silent after a side task. Don't assume the user wants to abandon the install — always confirm.\n\n## Begin\n\nGreet the user, confirm which MCP client you're running inside, and run the Discovery checks before any install actions. After Discovery, **propose the fast path (curl one-liner) first** — it covers ~90% of cases in one shot. After the core install completes, **proactively offer Telegram-export capture (step 5)** unless the user has already declined. Only fall back to the manual flow if the user objects, the script fails, or you're inside a GUI client where you'll still need to do step 2 manually after the script runs.\n\nFile v1.5.1:README.md\n\n# 📚 Install memex — cross-AI memory in 2 minutes\n\n> One prompt sets up local-first AI memory across **Claude Code, Cowork, Cursor, Cline, Continue, and Zed** — plus Obsidian notes and Telegram chats. No cloud. No account. No data leaves your machine.\n\n## What this skill does\n\nAfter you drop the skill into your agent (`~/.claude/skills/` for Claude Code, or your client's equivalent), saying **\"install memex\"** triggers a guided installation:\n\n1. **Discovery** — read-only checks for which MCP client you're using and what AI data already exists on your machine\n2. **Fast path (v1.1+)** — `curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`: one hosted bash script does npm install (with EACCES auto-fix to `~/.npm-global`), daemon setup, v0.8 auto-context hook, history backfill, and `claude mcp add memex` if Claude Code CLI is on PATH. Idempotent.\n3. **Fallback: manual five-step** — if curl fails, the user declines, or the agent is inside a GUI client (Cursor/Cline/Continue/Zed) where the MCP config still needs editing: `npm install -g memex-mvp` → MCP config merge → `memex-sync install` → `memex-sync scan`.\n4. **MCP config merge** (only needed for GUI clients) — adds a single absolute-path `command` entry into your client's `mcpServers` config. Never overwrites your other servers.\n5. **Restart hint + verification commands** — including the v0.7+ CLI fallback (`memex overview`, `memex search \"foo\"`) so you can verify memex works even if MCP didn't wire up cleanly.\n\nEnd-to-end: **~60 seconds** via fast path, **~2 minutes** via manual flow, fully observable (agent shows each command before running).\n\n## What is memex?\n\nMemex is a **local-first MCP server** that captures every conversation you have with an AI — across **Claude Code, Cowork (including subagent transcripts), Cursor, Cline, Continue, Zed**, plus **Obsidian notes**, **Telegram chats**, and **web pages / AI chat shares** (v0.6+ via `memex_store_document` — agent fetches, memex stores verbatim) — into one searchable SQLite + FTS5 corpus.\n\nAny MCP-compatible agent can then query that corpus through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, the `memex_telegram_*` family for v0.10+ chat capture, …).\n\n| Pain                                            | Memex                                |\n|-------------------------------------------------|--------------------------------------|\n| Claude forgets every session                    | One unified history across all sessions, all clients |\n| Switching from Claude Code to Cursor = lost context | Cursor can read your Claude history (same SQLite DB) |\n| Cloud memory services hold your data hostage    | One `~/.memex/data/memex.db` file on your disk       |\n| Mem0 / Supermemory pricing per token            | 0 LLM calls on write — free at any scale             |\n| Vendor ban = lose everything                    | Your DB stays even if Claude blocks your account     |\n\n📦 npm: [memex-mvp](https://www.npmjs.com/package/memex-mvp) · 🏠 [memex.parallelclaw.ai](https://memex.parallelclaw.ai) · 🐛 [GitHub](https://github.com/parallelclaw/memex-mvp)\n\n## Why a skill (vs. just copy-pasting the install prompt)\n\nThe install playbook also exists as a copy-paste prompt on the landing page. But once you have the skill installed, you skip a friction layer:\n\n| Without skill | With skill |\n|---|---|\n| Open landing page in browser | (already in your agent) |\n| Click \"Copy install prompt\" | — |\n| Paste a wall of text into Claude/Cursor | Just say \"install memex\" |\n| Hope the prompt is up-to-date | Skill version updates auto-fetched |\n\nThe skill description is written so Claude / OpenClaw auto-invoke it from any phrasing of \"install memex\", \"set up memex\", \"add memory to my AI\", etc. — no need to remember `/install-memex` exactly.\n\n## Example dialogue\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Quick discovery before any install actions...\n>\n> ✓ Found Claude Code data at `~/.claude/projects/` (8 sessions)\n> ✓ Found Cowork sessions (3 subagent transcripts)\n> ✗ Continue not installed\n> ✗ Zed not installed\n> ✓ Cursor data found (this is where I'll write the MCP config)\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, memex stages it and I'll ask which to import (privacy-first per-chat consent).\n>\n> Best path is the curl one-liner — does npm install (auto-fixes EACCES), daemon, auto-context hook, and history backfill in ~60 seconds. Want me to run:\n>\n> ```\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** yes\n>\n> **Agent:** [streams curl output, then edits `~/.cursor/mcp.json` to add `memex` MCP entry, prints restart hint, and offers Telegram capture setup]\n\nSee [examples.md](examples.md) for more sample dialogues, including EACCES recovery and partial-install scenarios.\n\n## Requirements\n\n- **Node.js 20–24** (LTS recommended). Install via [nodejs.org](https://nodejs.org), `brew install node`, or [nvm](https://github.com/nvm-sh/nvm)\n- **macOS or Linux** (Windows untested for memex itself; skill works anywhere your agent has shell access)\n- **An MCP-compatible CLI agent**: Claude Code, OpenClaw, Cursor (with MCP), Cline, Continue, or Zed. Web-only agents (ChatGPT, Claude.ai) can't execute install steps\n\n## Install the skill\n\n```sh\nmkdir -p ~/.claude/skills/install-memex\ncurl -fsSL https://raw.githubusercontent.com/parallelclaw/memex-mvp/main/skills/install-memex/SKILL.md \\\n  -o ~/.claude/skills/install-memex/SKILL.md\n```\n\nOr, if you've already done `npm install -g memex-mvp`, the skill ships inside the package:\n\n```sh\ncp -r \"$(npm root -g)/memex-mvp/skills/install-memex\" ~/.claude/skills/\n```\n\nThen in your agent: `install memex` (or `/install-memex` if your client supports slash-commands).\n\n## What the skill won't do\n\n- ❌ Install Node.js for you — it stops and asks you to install it\n- ❌ Run `sudo` without asking — EACCES fallback always confirms with you first\n- ❌ Overwrite your existing `mcpServers` config — always merges\n- ❌ Redirect any host application's data location — memex reads from each tool's native path\n- ❌ Send anything over the network (besides `npm install` itself)\n\n## License\n\n[MIT](https://github.com/parallelclaw/memex-mvp/blob/main/LICENSE) for memex itself.\nThis skill bundle is published on ClawHub under [MIT-0](https://opensource.org/license/mit-0) (effectively public domain — no attribution required) per ClawHub's publishing terms.\n\n---\n\n📚 Built by [@parallelclaw](https://github.com/parallelclaw) · Star the repo if memex helps you: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp)\n\nFile v1.5.1:_meta.json\n\n{\n  \"ownerId\": \"kn7073ez7kp7shjm06s5vr7thd85wezr\",\n  \"slug\": \"install-memex\",\n  \"version\": \"1.5.1\",\n  \"publishedAt\": 1779194396273\n}\n\nFile v1.5.1:examples.md\n\n# Example dialogues\n\nSample interactions when the user invokes this skill. These show typical happy paths and how the skill handles common edge cases.\n\n> **Note (v1.1+):** The skill now leads with the **fast-path one-liner** (`curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`) after Discovery — see Example 0 below. The legacy five-step examples (1–5 below) stay as the fallback when the agent is inside a GUI client (Cursor / Cline / Continue / Zed — still need step 2 manually after the script), the user declines curl, or the script fails.\n\n---\n\n## Example 0 · Fast path on Claude Code CLI (v1.1+)\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Claude Code CLI. Let me run a quick discovery first.\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (14 sessions)\n> ✓ Found Cowork sessions (5 subagent transcripts)\n> ✗ Cursor data not found\n> ✗ Continue / Zed not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, I'll ask which to import.\n>\n> The fast path is a single hosted bash script that does **npm install (with EACCES auto-fix), daemon setup, Brian Chesky auto-context hook, history backfill, and `claude mcp add memex`** all in one go. Idempotent. Want me to run:\n>\n> ```sh\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** ok\n>\n> **Agent:** [runs the curl command, streams output]\n>\n> ```\n> ▸ memex one-line installer\n> ▸ Node v20.11.1 — ok\n> ▸ Installing memex-mvp from npm...\n> ✓ memex 0.9.0 ready at /Users/you/.npm-global/bin/memex\n> ▸ Installing memex-sync (LaunchAgent + auto-context hook)...\n> ✓ daemon running (PID 41872)\n> ✓ Brian Chesky auto-context hook added to ~/.claude/settings.json\n> ▸ Backfilling history (memex-sync scan)...\n> ✓ 87 conversations indexed\n> ▸ Wiring MCP into Claude Code...\n> ✓ claude mcp add memex — done\n> ▸ All set. Quit Claude Code (Cmd+Q) and reopen any project. Memex will inject prior context before your first message.\n> ```\n>\n> All five steps done in ~25 seconds. Quit Claude Code (Cmd+Q) and reopen — when you open any project you've worked in, memex will inject relevant context before you even type. Try: `memex overview` from terminal to confirm.\n\n---\n\n## Example 1 · Happy path on a fresh Cursor install\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Let me run a quick discovery before any install actions...\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (12 sessions)\n> ✓ Found Cowork sessions (4 subagent transcripts)\n> ✓ Cursor data found — I'll write MCP config to ~/.cursor/mcp.json\n> ✗ Continue config not found\n> ✗ Zed config not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ Telegram capture also kicks in automatically — when you export a chat from Telegram Desktop, I'll ask which to import. If you also use Obsidian, we can wire that vault in after.\n>\n> Ready to proceed with Step 1?\n>\n> **User:** yes\n>\n> **Agent:** Running `npm install -g memex-mvp`...\n>\n> ```\n> + memex-mvp@0.5.4\n> ```\n>\n> ✓ Memex installed. Verifying: `which memex` → `/usr/local/bin/memex`. Good.\n>\n> Step 2: I'm about to merge a new entry into your `~/.cursor/mcp.json`. Here's the diff:\n>\n> ```diff\n>   {\n>     \"mcpServers\": {\n>       \"github\": { ... },\n> +     \"memex\": {\n> +       \"command\": \"/usr/local/bin/memex\"\n> +     }\n>     }\n>   }\n> ```\n>\n> Looks correct? (Y/n)\n>\n> **User:** yes\n>\n> **Agent:** ✓ Config saved.\n>\n> Step 3: `memex-sync install` — sets up the macOS LaunchAgent that auto-captures new Claude Code / Cowork / Cursor sessions...\n>\n> ```\n> ✓ memex-sync installed\n> ✓ daemon running (PID 47291)\n> ✓ watching 12 sessions across 3 source roots\n> ```\n>\n> Step 4: `memex-sync scan` to backfill existing history. This indexes everything already on your disk — might take 30-90 seconds...\n>\n> ```\n> ingested 847 messages from 12 conversations\n> ```\n>\n> ✓ All done. **Restart Cursor (Cmd+Q + reopen)** so it picks up the new memex tools. After restart, try:\n>\n> - \"what does memex have in memory?\"\n> - \"search memex for [a recent topic you worked on]\"\n> - \"list my memex projects\"\n\n---\n\n## Example 2 · EACCES recovery (macOS system Node) — recommend B by default\n\n> **User:** install memex\n>\n> **Agent:** [runs discovery, gets user OK] Step 1: `npm install -g memex-mvp`...\n>\n> ```\n> npm error code EACCES\n> npm error path: '/usr/local/lib/node_modules/memex-mvp'\n> ```\n>\n> Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n>\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. **Proceed with B?**\n>\n> **User:** ok\n>\n> **Agent:** Running the 5 prefix-fix commands:\n>\n> ```sh\n> mkdir -p ~/.npm-global\n> npm config set prefix ~/.npm-global\n> echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\n> source ~/.zshrc\n> npm install -g memex-mvp\n> ```\n>\n> ✓ Done. Verifying:\n>\n> ```\n> which memex → /Users/macbook/.npm-global/bin/memex\n> ```\n>\n> Now continuing to Step 2 with this path...\n\n---\n\n## Example 3 · Wants only Claude Code, not the daemon\n\n> **User:** install memex but skip the daemon\n>\n> **Agent:** Sure — that means memex will be available as a tool, but new sessions won't be auto-captured. You'll need to run `memex-sync scan` manually whenever you want to index recent sessions. Got it?\n>\n> **User:** yes\n>\n> **Agent:** [runs Steps 1, 2, 4 — skipping `memex-sync install` in Step 3]\n>\n> ✓ Memex installed, MCP config wired, backfill complete (847 messages from existing sessions).\n>\n> Since you skipped the daemon, here's how to refresh memex going forward:\n> ```sh\n> memex-sync scan\n> ```\n>\n> You can install the daemon any time later: `memex-sync install`.\n\n---\n\n## Example 4 · Existing memex install detected\n\n> **User:** install memex\n>\n> **Agent:** Quick check: `which memex` → `/usr/local/bin/memex`. You already have memex installed.\n>\n> Running `memex-sync status`:\n> ```\n> daemon running (PID 47291), watching 12 sessions\n> last capture: 4 minutes ago\n> ```\n>\n> Memex is working. What would you like to do?\n>\n> - **Reinstall** (e.g. to update to the latest version): I can run `npm install -g memex-mvp@latest`\n> - **Add a new source** (Obsidian vault, Telegram exports, etc.)\n> - **Add memex to another MCP client** (you have it in Cursor; want it in Cline / Continue / Zed too?)\n> - **Nothing** — already good\n\n---\n\n## Example 5 · Web-only agent (no shell access)\n\n> **User:** install memex\n>\n> **Agent:** I see you're running me through claude.ai web — I don't have access to your machine's shell, so I can't run `npm install` or write files for you.\n>\n> You have three options to install memex:\n>\n> 1. **CLI agents** (best UX): Open Claude Code, Cursor, Cline, Continue, or Zed and ask me there. Those have shell access and will run this skill end-to-end.\n>\n> 2. **Manual install** (~5 minutes, you run the commands): Follow https://memex.parallelclaw.ai/#quickstart — 4 steps in your terminal.\n>\n> 3. **One-liner from terminal**:\n> ```sh\n> npm install -g memex-mvp\n> memex-sync install\n> ```\n> Then add `{\"mcpServers\": {\"memex\": {\"command\": \"$(which memex)\"}}}` to your MCP client's config file. Details: https://memex.parallelclaw.ai\n>\n> Which path works for you?\n\n---\n\n---\n\n## Example 6 · Right after install — testing URL save (v0.6+)\n\n> **User:** save https://en.wikipedia.org/wiki/As_We_May_Think to memex\n>\n> **Agent:** Fetching the page with WebFetch...\n>\n> ```\n> ✓ Got 12,847 chars from en.wikipedia.org\n> ```\n>\n> Calling `memex_store_document(content, url=https://en.wikipedia.org/wiki/As_We_May_Think, title=auto)`...\n>\n> ```\n> ✓ stored\n>   conversation_id: web-d3b07a384d1b\n>   title: \"As We May Think\"\n>   length: 12,847 chars\n>   warnings: []\n> ```\n>\n> Saved. Try searching it now: *\"search memex for memex Bush 1945\"* — the article will show up alongside any AI chats where you discussed it.\n>\n> 💡 By the way, you can save any URL this way — Perplexity threads, blog posts, ChatGPT shares, Twitter threads, GitHub discussions. For Perplexity specifically, the thread must be made Public first (Share → Public link). For Cloudflare-protected sites, memex auto-falls back through `r.jina.ai` proxy.\n\n---\n\n---\n\n## Example 7 · MCP didn't connect — agent recommends CLI fallback (v0.7+)\n\n> **User:** ok, I installed memex. but when I ask Claude \"show me what memex has\", nothing happens.\n>\n> **Agent:** Could be a MCP-config issue with your Claude client — let's verify memex itself is healthy first, separately from MCP:\n>\n> ```sh\n> memex overview\n> ```\n>\n> ```\n> memex corpus snapshot\n>\n> Total: 1,247 messages in 23 conversations\n>\n> By source:\n>   claude-code           742 msgs · 18 chats · 2026-04-06 → 2026-05-15\n>   claude-cowork         312 msgs ·  4 chats · 2026-04-06 → 2026-05-07\n>   ...\n> ```\n>\n> Memex itself is healthy — your data is there. The problem is the MCP wiring in your Claude client.\n>\n> Try `memex search \"recent topic you discussed\"` directly in the terminal — if that returns hits, you've got a fully-working memex; it's just not exposed to your Claude session yet.\n>\n> Then check your Claude MCP config (`~/.claude/config.json` or equivalent) — the `memex` entry should have an absolute path. Run `which memex` to get it, and verify it's there. If you need to re-do the wiring, ask me again — I'll re-run step 2 of the install.\n\n---\n\n## What these examples illustrate about the skill's behavior\n\n- **Always discover first**, then ask for confirmation before any write action\n- **Show every command** before running it; show diffs for config edits\n- **Recommend the better default** with a clear reason (e.g. Option B for EACCES) instead of forcing the user to weigh both options blind. Fall back to alternatives only if explicitly chosen.\n- **Detect and adapt** to existing installs, missing prerequisites, partial setups\n- **Refuse gracefully** when running in a context where the install can't actually work (web-only agents)\n\nIf you see the skill *not* doing one of these things, that's a bug — report it at https://github.com/parallelclaw/memex-mvp/issues.\n\nFile v1.5.1:skill-card.md\n\n## Description:\n\nMake Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever by guiding installation of memex, a local-first MCP memory server backed by a shared SQLite corpus.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sedelev](https://clawhub.ai/user/sedelev)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and MCP-compatible agent users use this skill to install and configure memex so AI conversation history, selected chat exports, and related local data can be indexed and searched across supported clients.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The fast install path executes a remote installer and can modify local tool configuration.\n\nMitigation: Inspect the installer or use the documented manual path, review each command before execution, and confirm config changes before writing them.\n\nRisk: The installed memory service can index sensitive AI conversations, chat exports, and local files selected through supported capture flows.\n\nMitigation: Confirm which sources will be watched, import sensitive chats only with explicit consent, and skip sources that should not be available to future agents.\n\nRisk: Automatic context injection can surface prior conversation content to future agent sessions.\n\nMitigation: Decline or disable auto-context unless automatic memory injection is desired, and verify the installed hook or client behavior after setup.\n\nRisk: Using sudo for global npm installation can expand the impact of a bad or compromised package install.\n\nMitigation: Prefer a user-level npm prefix or another non-sudo Node package management setup.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sedelev/skills/install-memex)\n- [memex homepage](https://memex.parallelclaw.ai)\n- [memex npm package](https://www.npmjs.com/package/memex-mvp)\n- [memex source repository](https://github.com/parallelclaw/memex-mvp)\n- [memex installer script](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh)\n- [npm EACCES guidance](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces user-facing installation steps, consent prompts, verification commands, and MCP configuration guidance.]\n\n## Skill Version(s):\n\n1.5.1 (source: server release metadata and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.5.0: 4 files, 17679 bytes\n\nFiles: examples.md (10628b), README.md (6845b), SKILL.md (23052b), _meta.json (132b)\n\nFile v1.5.0:SKILL.md\n\n---\nname: install-memex\ndescription: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (local-first MCP server) in ~60 seconds via curl one-liner. Includes auto-capture daemon for Claude Code / Cowork / Cursor / Obsidian; v0.10 Telegram auto-detect (export from Desktop → memex stages it → AI proactively asks which to import, privacy-first per-chat consent); v0.8 SessionStart hook for the Brian Chesky moment (\"Claude already knows what you were doing\"); URL / Perplexity / AI chat share capture via memex_store_document. 18 MCP tools, no cloud, no account, verbatim storage. Use when the user says \"install memex\", \"set up memex\", \"add memory to my AI\", \"make my agent remember across sessions\", \"сохрани мои чаты\", or similar.\nversion: 1.5.0\nmetadata:\n  openclaw:\n    emoji: \"📚\"\n    homepage: https://memex.parallelclaw.ai\n    requires:\n      bins:\n        - node\n        - npm\n---\n\n# Install memex\n\n## ⚠ For ClawHub reviewers, security scanners, and curious users\n\nThis skill is an **installer for memex** — a local-first MCP memory server.\nStatic scanners flag several patterns as \"suspicious\"; every single one is\nintentional and necessary for installing a memory tool. Below is the full\nlist so a human reviewer (or the user) can verify legitimacy in one glance.\n\n**What the skill instructs the agent to do:**\n\n| Action | Why | Source-of-truth |\n|---|---|---|\n| `curl -fsSL https://memex.parallelclaw.ai/install.sh \\| bash` | Fast-path installer (the user can `\\| less` first to inspect) | [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) — open-source bash, hosted on GitHub Pages |\n| `npm install -g memex-mvp` | Manual install (fallback if user declines the curl) | [npmjs.com/package/memex-mvp](https://www.npmjs.com/package/memex-mvp), source: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) |\n| `echo 'export PATH=...' >> ~/.zshrc` | EACCES auto-fix — moves npm prefix to `~/.npm-global` so `npm install -g` works without sudo. **Idempotent** — re-running is safe. | Standard npm prefix workaround [docs.npmjs.com](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |\n| `sudo npm install -g memex-mvp` | Offered as Plan A on EACCES if user explicitly wants quick (not default — skill recommends the no-sudo prefix fix). Skill **never runs sudo without explicit user \"yes\"**. | — |\n| `memex-sync install` (LaunchAgent) | Registers a macOS LaunchAgent so memex daemon auto-starts on login. **The daemon itself is local-only**: it watches `~/.claude/projects/`, `~/Downloads/Telegram Desktop/`, etc., and writes to `~/.memex/data/memex.db`. Zero outbound network traffic. | LaunchAgent plist at `~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist` is human-readable |\n| Edit `~/.claude/settings.json`, `~/.cursor/mcp.json`, etc. | Adds the MCP-server entry so the user's AI client can call memex tools. Existing entries are preserved (merge, never overwrite). | Each MCP client documents this config format |\n| `tell application \"Terminal\" to do script \"claude\"` (AppleScript) | Used by the optional clickable notification banner — opens a new Terminal tab + launches `claude` when the user clicks. **Default OFF**. | Requires `brew install terminal-notifier` (optional dep) |\n| `brew install terminal-notifier` | Optional dep for clickable banners. Skill mentions it but does NOT install without user OK. | [github.com/julienXX/terminal-notifier](https://github.com/julienXX/terminal-notifier) |\n\n**Hard guarantees** (codified in the \"Safety rules\" section below):\n- Agent shows every shell command **BEFORE** running it\n- User can say \"stop\" / \"no\" at any step, agent halts\n- `sudo` is NEVER run without an explicit user \"yes\"\n- MCP config files are MERGED, never overwritten — existing entries preserved\n- Memex at runtime emits **zero outbound network traffic** (it's local-first by design — see [PRIVACY section in repo README](https://github.com/parallelclaw/memex-mvp/blob/main/README.ru.md#приватность-и-безопасность--privacy--security))\n\n**Source code:** [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) (MIT). All commands above are visible in [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) and the published [memex-mvp npm package](https://www.npmjs.com/package/memex-mvp).\n\n---\n\nYou are installing **memex** on this machine. Memex is a local-first MCP server that captures the user's AI conversations across Claude Code, Cowork (including subagents), Cursor, Obsidian, and Telegram exports into a searchable SQLite + FTS5 index that any MCP-compatible agent can query through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, plus the `memex_telegram_*` family added in v0.10+).\n\nRepo: https://github.com/parallelclaw/memex-mvp\nLanding: https://memex.parallelclaw.ai\nnpm: https://www.npmjs.com/package/memex-mvp\n\n## How memex works (read this so you don't get confused by paths below)\n\nMemex has its OWN storage at `~/.memex/data/memex.db`. It READS from each tool's native data location automatically — Claude Code from `~/.claude/projects/`, Cursor from its `state.vscdb`, Cowork from its sessions dir, Obsidian from configured vaults. You do NOT need to change where Claude Code, Cursor, or any other tool saves its data. Memex is a passive observer.\n\n## Prerequisite\n\nThis skill only works if you are running INSIDE an AI agent that has direct access to the user's shell — i.e. one of: Claude Code (CLI), Cursor, Cline, Continue, or Zed. Web-based agents (ChatGPT in browser, Claude.ai web, Claude Desktop without tools, etc.) cannot execute `npm`/file operations. If you are NOT a CLI-based agent with shell access, stop now and tell the user to use the manual install at https://memex.parallelclaw.ai/#quickstart.\n\n## Discovery — do this BEFORE the numbered steps\n\nScan the user's setup so you can tailor advice and tell them exactly what memex will pick up.\n\n1. Identify which MCP client you're running inside (you should know from context — Claude Code CLI, Cursor, Cline, Continue, or Zed).\n2. Run these read-only checks one by one:\n   ```sh\n   ls -d ~/.claude/projects 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Claude/local-agent-mode-sessions 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Cursor 2>/dev/null\n   ls ~/.continue/config.json 2>/dev/null\n   ls -d ~/.config/zed 2>/dev/null\n   ```\n3. Report to the user in plain language:\n   - \"You're running inside [X]. I will edit [path] in step 2 below.\"\n   - \"Tools with data found on this machine: [list]\"\n   - \"Tools NOT found (memex won't capture from these): [list]\"\n   - \"After install, memex will auto-index conversations from: [detected sources]\"\n4. Wait for the user's \"ok\" before starting step 1.\n\n## Fast path — one-line installer (try this first)\n\nmemex ships a hosted bash installer that does steps 1, 3, and 4 in a single run — and also wires up Claude Code's MCP entry if `claude` is on PATH. It's idempotent (safe to re-run), auto-fixes the `EACCES` case by moving npm's prefix to `~/.npm-global`, and prompts before enabling the auto-context hook.\n\nShow this command to the user, explain what it does, get their **explicit ok**, then run:\n\n```sh\ncurl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n```\n\nWhat the script does, in order:\n1. Checks Node ≥ 20.\n2. `npm install -g memex-mvp` — on EACCES, sets `npm config set prefix ~/.npm-global`, appends PATH to `~/.zshrc`, retries.\n3. `memex-sync install` with `--auto-context yes` (Brian Chesky hook into `~/.claude/settings.json` — preserves other hooks).\n4. `memex-sync scan` — backfills existing history.\n5. `claude mcp add memex --scope user -- memex` if Claude Code CLI is detected.\n\nAfter the script finishes:\n- If the user is in **Claude Code (CLI)** → install is complete. Skip straight to step 6 (verification + restart). Also do step 5 (offer Telegram capture).\n- If the user is in **Cursor / Cline / Continue / Zed** → the npm install + daemon + auto-context + scan are done, but the GUI client's MCP config still needs the memex entry. **Skip step 1 (already installed)**, **skip step 3** (daemon already installed) and **skip step 4** (scan already ran). **Do step 2** (wire MCP into the GUI client's config), **step 5** (offer Telegram), and **step 6** (verify + restart).\n\nIf the script fails for any reason — non-zero exit, weird output, user uncomfortable piping curl to bash — fall back to the **Manual install** below.\n\nTo inspect what the script does first: `curl -fsSL https://memex.parallelclaw.ai/install.sh | less` (don't pipe to bash).\n\n## Manual install (if the fast path didn't fit)\n\nDo these in order. Show each command before running it. Stop and ask if anything fails or looks wrong.\n\n### 1. Install memex from npm\n\n```sh\nnpm install -g memex-mvp\n```\n\nIf you get `EACCES` (macOS system Node), **recommend Option B (permanent prefix fix) by default** and proceed unless the user explicitly chooses sudo.\n\nSay to the user:\n\n> \"Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. Proceed with B?\"\n\nIf the user agrees (or says anything like \"ok\", \"yes\", \"default\", \"go\", \"B\") — proceed with B without further questions:\n\n```sh\nmkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\nnpm install -g memex-mvp\n```\n\nIf the user **explicitly** picks A (or says \"sudo\", \"fast\", \"quick\"), use sudo:\n\n```sh\nsudo npm install -g memex-mvp\n```\n\nAfter the install completes, verify with `which memex` (should print an absolute path) and `memex --version` (should print the version).\n\n**Important if Option B was used + user already had memex from a prior sudo install:** the old sudo-installed copy in `/usr/local/lib/node_modules/memex-mvp/` is now orphaned (PATH prefers the new home install). Mention this once:\n\n> \"By the way, you have an older sudo-installed memex copy in `/usr/local/lib/`. It's harmless but takes ~60 MB. Clean it up when convenient: `sudo npm uninstall -g memex-mvp` — not urgent.\"\n\nDon't run that uninstall yourself — let the user decide when.\n\nIf `node` or `npm` are missing, STOP and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n\n**Verify:** `which memex` prints an absolute path; `memex-sync --help` runs without error.\n\n### 2. Wire memex into the MCP client\n\nCommon config locations:\n\n| Client       | Config file                                         |\n|--------------|-----------------------------------------------------|\n| Claude Code  | `~/.claude/config.json` (or platform equivalent)    |\n| Cursor       | `~/.cursor/mcp.json`                                |\n| Cline        | VS Code `settings.json` (`cline.mcpServers`)        |\n| Continue     | `~/.continue/config.json`                           |\n| Zed          | `~/.config/zed/settings.json` (`context_servers`)   |\n\nTell the user which one you've inferred and which file you'll edit. If unclear, ask.\n\nRead the existing config (if present). Show the user a diff before saving.\n\nGet the **absolute** path to the memex binary — GUI apps (Cursor, Cline, Claude Desktop) on macOS often don't inherit shell PATH, so a bare `\"command\": \"memex\"` fails with `spawn memex ENOENT`. Run:\n\n```sh\nwhich memex\n```\n\nCapture that path (e.g. `/Users/<you>/.npm-global/bin/memex` or `/usr/local/bin/memex`). If it's a shim, also run `realpath $(which memex)` to resolve to the real binary.\n\nMERGE this entry into `mcpServers` — never overwrite other servers the user has:\n\n```json\n{\n  \"mcpServers\": {\n    \"memex\": {\n      \"command\": \"<absolute path from which memex>\"\n    }\n  }\n}\n```\n\nOne path, no `args`. The published npm package wires up its own entry point.\n\nIf the config file doesn't exist, create the parent directory and write a minimal valid file with just memex.\n\n**Verify:** re-read the file after save; confirm `memex` entry is present and `command` is an absolute path.\n\n### 3. Turn on live auto-capture + auto-context (v0.8+)\n\n```sh\nmemex-sync install\n```\n\nDuring `memex-sync install`, you'll see a prompt:\n\n```\nAuto-context (Brian Chesky mode):\n  When you open Claude Code in a project, memex can inject 500-1500 tokens\n  of relevant context so Claude knows what you were doing — without you\n  having to ask. Adds a SessionStart hook to ~/.claude/settings.json.\n  Other hooks (e.g. gstack) are preserved.\n\n  Enable? [Y/n]\n```\n\n**Answer Y unless the user has stated privacy concerns** about Claude seeing context from their other AI conversations. Auto-context is the \"10/10 magic moment\" of memex — without it the install ships at base capability. Other hooks (gstack, custom) are preserved untouched.\n\nFor non-interactive flows (CI / scripts): pass `--auto-context yes` or `--yes`.\n\n```sh\nmemex-sync status\n```\n\n`status` should print \"daemon installed\", \"running (PID …)\", \"watching N sessions\".\n\n**Verify:** status output shows a non-zero PID. Also run `memex hook status` — should show `INSTALLED` if auto-context was accepted.\n\n### 4. Backfill existing history\n\nThe daemon only catches NEW sessions going forward. To index everything already on disk:\n\n```sh\nmemex-sync scan\n```\n\nThis walks `~/.claude/projects/`, Cowork sessions, Cursor `state.vscdb`, and any configured Obsidian vaults once, ingesting whatever exists.\n\nOptionally:\n```sh\nmemex-sync backfill-projects\n```\n\nTags older conversations with their `project_path` so `memex_list_projects` works on them.\n\n**Verify:** after scan, `memex-sync status` shows a non-zero \"ingested\" count.\n\n### 5. Offer Telegram-export capture (v0.10+)\n\nAfter the core install is done, **proactively** ask:\n\n> \"Memex can also remember your Telegram chats — work, family, group chats, whatever you want indexed. Want me to set that up too? It's about 2 minutes.\"\n\nIf yes, run `memex_telegram_check` (MCP tool) or `memex telegram check` (CLI). The result tells you the user's state and the next step. Walk them through:\n\n  - **No Telegram Desktop?** → Give the download URL from the check output. Wait for them to install + log in.\n  - **Logged in <24h ago?** → Tell them: \"Telegram blocks export for the first 24h. Wait ~X hours, then come back.\"\n  - **Ready to export?** → Show the click-path: open chat → ⋮ menu (top-right) → \"Export chat history\" → format HTML or JSON → Export.\n\nAfter the user exports, memex's daemon **auto-detects** the file in ~/Downloads/Telegram Desktop/ within ~7 seconds and stages it in `~/.memex/pending/`. Then:\n\n  - Call `memex_telegram_pending` to list staged exports (chat name, msg count, date range).\n  - **Present as a numbered list**, ask which to import. Accept indices, titles, or natural language (\"import family and work, skip bank\").\n  - Call `memex_telegram_import` with selected indices/titles. The chat is added to the allow-list — future re-exports auto-merge via UNIQUE(msg_id).\n  - For sensitive chats user doesn't want (Bank, Therapist, etc.), call `memex_telegram_skip`.\n\n**Optional — clickable native macOS banner (v0.10.4+):** memex can fire a macOS notification the moment an export is staged. Default OFF for privacy. If the user wants this:\n\n```sh\nbrew install terminal-notifier             # required for clickable banner\nmemex telegram notifications on            # enable; default: titles hidden\nmemex telegram notifications on --show-titles   # include chat names in banner\n```\n\nWhen enabled with `terminal-notifier`, clicking the banner opens (auto-detect priority): Claude Code CLI in a fresh Terminal tab → Claude Desktop → Terminal with `memex telegram pending`. The CLI launch path triggers the SessionStart hook → Brian Chesky moment. Override target: `memex telegram notifications target <auto|claude-cli|claude-desktop|terminal|none>`.\n\n**Other useful Telegram commands** (no MCP-tool wiring needed):\n\n```sh\nmemex telegram check          # diagnostic: Desktop? login age (24h)? watcher?\nmemex telegram open-pending   # one-shot: open pending list in best client\nmemex telegram mode auto      # auto-import allow-listed chats on re-export\nmemex telegram status         # decisions counts (allowed/skipped/blocked)\n```\n\n**Privacy is the core promise. Never auto-import. Always get explicit per-chat consent on the first round.**\n\nIf the user declines Telegram setup (\"not now\" / \"skip\"): say \"OK, I'll skip Telegram. You can run `memex telegram check` anytime later to start.\" Don't push.\n\n### 6. Tell the user what to do next\n\nTell the user to fully quit and reopen the MCP client (Cmd+Q on macOS) so it picks up the new memex tools.\n\n**🌟 OFFER TO IMPORT THEIR EXISTING DATA RIGHT NOW (v0.10.12+):** before anything else, ask the user if they have a Telegram export or a chat-history file sitting somewhere on disk that they'd like to load. Many users come with a `result.json` they exported yesterday, sitting in `~/Downloads/` or a project folder. Don't make them figure out memex's \"magic paths\" — just ask:\n\n> \"Do you have any chat exports already on disk you want loaded into memex right now? Tell me the path (e.g. `~/Downloads/result.json` or `~/projects/memex/result.json`) — I'll handle it.\"\n\nThen call `memex_import_file({path: \"<their-path>\"})`. The tool auto-detects format (Telegram JSON / HTML / Claude JSONL / Cowork JSONL), respects the privacy gate for Telegram (returns `needs_consent` with a preview — surface it, get user OK, retry with `force: true`), and gives you a structured result in one call. **Do not use bash `mv`/`cp` to shuffle files into `~/.memex/inbox/`** — that was the old workflow and burned ~10k tokens per file. Use `memex_import_file` instead.\n\n**🌟 ALSO STRONGLY RECOMMEND THIS (v0.10.8+):** offer to run `memex web --open` for them right now. It's the single most magical post-install moment — a local browser tab opens at `http://127.0.0.1:8765` with 5 pages showing every conversation memex has captured, dialogue rendered as chat-bubbles, full-text searchable. Verbatim — not AI-summarized. Read-only, localhost-only, Ctrl+C to stop. Phrase it naturally, e.g.:\n\n> \"I can open a local web dashboard that lets you actually *see* what memex captured — every message, in chat-bubble form, searchable. It's just a browser tab on `localhost:8765`. Run it now? It's a way better demo than asking me search queries blind.\"\n\nThen run `memex web --open` (in a backgrounded shell if your shell wrapper supports it — otherwise tell the user to run it themselves in another terminal). Wait for them to react before continuing.\n\n**After that, suggest other ways to confirm end-to-end:**\n- \"show me what memex has in memory\" → triggers `memex_overview`\n- \"what projects has memex captured\" → triggers `memex_list_projects`\n- \"search memex for [recent topic]\" → triggers `memex_search`\n- \"save https://en.wikipedia.org/wiki/As_We_May_Think to memex\" → triggers `memex_store_document` and teaches the user that URL-saving exists (v0.6+)\n- **Open Claude Code in any project the user worked on recently** — the SessionStart auto-context (v0.8+) should kick in and Claude will mention prior work _before_ the user types anything. This is the \"Brian Chesky moment\" — the magical-first-impression of memex.\n- **(if Telegram was set up)** `memex telegram check` — confirms daemon's Telegram-Downloads watcher is active and shows the user's full capture pipeline state.\n\nThese confirm everything works end-to-end.\n\n**Brian Chesky moment beyond Claude Code (v0.10.7+):** the SessionStart hook works only in Claude Code CLI. But starting v0.10.7, the same proactive behaviour is taught to agents in Cursor / Cline / Continue / Zed / Claude Desktop via SERVER_INSTRUCTIONS — these agents call `memex_overview` automatically on first interaction, read its `telegram_pending` field, and surface pending exports in their first reply. Slightly higher latency (one MCP roundtrip vs hook's instant inject), but same UX.\n\n**CLI fallback (v0.7+):** if the MCP integration doesn't pick up in the user's client for any reason, tell them they can verify memex from the terminal directly — same binary, no MCP needed:\n\n```sh\nmemex overview      # confirms memex itself is healthy\nmemex search \"foo\"  # FTS search from CLI\nmemex list          # list conversations\nmemex --help        # command reference\n```\n\nThis is also useful for agents without native MCP support (OpenCode + Kimi, plain shell scripts, CI pipelines) — they can shell out to `memex` directly.\n\n## Safety rules — read before starting\n\n- If `node` or `npm` aren't installed, stop and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n- Never run `rm`, `sudo`, or anything destructive without explicit confirmation from the user.\n- Show every command before running it. If the user says \"no\" or \"stop\", halt and explain.\n- If a step fails, do NOT auto-retry or auto-fix — tell the user what failed and ask how to proceed.\n- When editing the MCP config, always preserve existing entries. If you can't merge cleanly, abort and tell the user.\n- Do NOT modify the host application's settings beyond adding the memex entry to its `mcpServers` config. Specifically: do not redirect where Cursor / Claude Code / any other tool saves its data. Memex reads from each tool's native location automatically. The only file you should touch is the MCP config file listed in step 2.\n- Stay focused on the main install task. If sidetracked into a sub-task (changing workspace, fixing an unrelated config issue, looking up something else), once it's done you MUST return to the memex install and explicitly tell the user: \"OK, back to memex install. We were at step N — should I continue?\". Don't go silent after a side task. Don't assume the user wants to abandon the install — always confirm.\n\n## Begin\n\nGreet the user, confirm which MCP client you're running inside, and run the Discovery checks before any install actions. After Discovery, **propose the fast path (curl one-liner) first** — it covers ~90% of cases in one shot. After the core install completes, **proactively offer Telegram-export capture (step 5)** unless the user has already declined. Only fall back to the manual flow if the user objects, the script fails, or you're inside a GUI client where you'll still need to do step 2 manually after the script runs.\n\nFile v1.5.0:README.md\n\n# 📚 Install memex — cross-AI memory in 2 minutes\n\n> One prompt sets up local-first AI memory across **Claude Code, Cowork, Cursor, Cline, Continue, and Zed** — plus Obsidian notes and Telegram chats. No cloud. No account. No data leaves your machine.\n\n## What this skill does\n\nAfter you drop the skill into your agent (`~/.claude/skills/` for Claude Code, or your client's equivalent), saying **\"install memex\"** triggers a guided installation:\n\n1. **Discovery** — read-only checks for which MCP client you're using and what AI data already exists on your machine\n2. **Fast path (v1.1+)** — `curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`: one hosted bash script does npm install (with EACCES auto-fix to `~/.npm-global`), daemon setup, v0.8 auto-context hook, history backfill, and `claude mcp add memex` if Claude Code CLI is on PATH. Idempotent.\n3. **Fallback: manual five-step** — if curl fails, the user declines, or the agent is inside a GUI client (Cursor/Cline/Continue/Zed) where the MCP config still needs editing: `npm install -g memex-mvp` → MCP config merge → `memex-sync install` → `memex-sync scan`.\n4. **MCP config merge** (only needed for GUI clients) — adds a single absolute-path `command` entry into your client's `mcpServers` config. Never overwrites your other servers.\n5. **Restart hint + verification commands** — including the v0.7+ CLI fallback (`memex overview`, `memex search \"foo\"`) so you can verify memex works even if MCP didn't wire up cleanly.\n\nEnd-to-end: **~60 seconds** via fast path, **~2 minutes** via manual flow, fully observable (agent shows each command before running).\n\n## What is memex?\n\nMemex is a **local-first MCP server** that captures every conversation you have with an AI — across **Claude Code, Cowork (including subagent transcripts), Cursor, Cline, Continue, Zed**, plus **Obsidian notes**, **Telegram chats**, and **web pages / AI chat shares** (v0.6+ via `memex_store_document` — agent fetches, memex stores verbatim) — into one searchable SQLite + FTS5 corpus.\n\nAny MCP-compatible agent can then query that corpus through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, the `memex_telegram_*` family for v0.10+ chat capture, …).\n\n| Pain                                            | Memex                                |\n|-------------------------------------------------|--------------------------------------|\n| Claude forgets every session                    | One unified history across all sessions, all clients |\n| Switching from Claude Code to Cursor = lost context | Cursor can read your Claude history (same SQLite DB) |\n| Cloud memory services hold your data hostage    | One `~/.memex/data/memex.db` file on your disk       |\n| Mem0 / Supermemory pricing per token            | 0 LLM calls on write — free at any scale             |\n| Vendor ban = lose everything                    | Your DB stays even if Claude blocks your account     |\n\n📦 npm: [memex-mvp](https://www.npmjs.com/package/memex-mvp) · 🏠 [memex.parallelclaw.ai](https://memex.parallelclaw.ai) · 🐛 [GitHub](https://github.com/parallelclaw/memex-mvp)\n\n## Why a skill (vs. just copy-pasting the install prompt)\n\nThe install playbook also exists as a copy-paste prompt on the landing page. But once you have the skill installed, you skip a friction layer:\n\n| Without skill | With skill |\n|---|---|\n| Open landing page in browser | (already in your agent) |\n| Click \"Copy install prompt\" | — |\n| Paste a wall of text into Claude/Cursor | Just say \"install memex\" |\n| Hope the prompt is up-to-date | Skill version updates auto-fetched |\n\nThe skill description is written so Claude / OpenClaw auto-invoke it from any phrasing of \"install memex\", \"set up memex\", \"add memory to my AI\", etc. — no need to remember `/install-memex` exactly.\n\n## Example dialogue\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Quick discovery before any install actions...\n>\n> ✓ Found Claude Code data at `~/.claude/projects/` (8 sessions)\n> ✓ Found Cowork sessions (3 subagent transcripts)\n> ✗ Continue not installed\n> ✗ Zed not installed\n> ✓ Cursor data found (this is where I'll write the MCP config)\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, memex stages it and I'll ask which to import (privacy-first per-chat consent).\n>\n> Best path is the curl one-liner — does npm install (auto-fixes EACCES), daemon, auto-context hook, and history backfill in ~60 seconds. Want me to run:\n>\n> ```\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** yes\n>\n> **Agent:** [streams curl output, then edits `~/.cursor/mcp.json` to add `memex` MCP entry, prints restart hint, and offers Telegram capture setup]\n\nSee [examples.md](examples.md) for more sample dialogues, including EACCES recovery and partial-install scenarios.\n\n## Requirements\n\n- **Node.js 20–24** (LTS recommended). Install via [nodejs.org](https://nodejs.org), `brew install node`, or [nvm](https://github.com/nvm-sh/nvm)\n- **macOS or Linux** (Windows untested for memex itself; skill works anywhere your agent has shell access)\n- **An MCP-compatible CLI agent**: Claude Code, OpenClaw, Cursor (with MCP), Cline, Continue, or Zed. Web-only agents (ChatGPT, Claude.ai) can't execute install steps\n\n## Install the skill\n\n```sh\nmkdir -p ~/.claude/skills/install-memex\ncurl -fsSL https://raw.githubusercontent.com/parallelclaw/memex-mvp/main/skills/install-memex/SKILL.md \\\n  -o ~/.claude/skills/install-memex/SKILL.md\n```\n\nOr, if you've already done `npm install -g memex-mvp`, the skill ships inside the package:\n\n```sh\ncp -r \"$(npm root -g)/memex-mvp/skills/install-memex\" ~/.claude/skills/\n```\n\nThen in your agent: `install memex` (or `/install-memex` if your client supports slash-commands).\n\n## What the skill won't do\n\n- ❌ Install Node.js for you — it stops and asks you to install it\n- ❌ Run `sudo` without asking — EACCES fallback always confirms with you first\n- ❌ Overwrite your existing `mcpServers` config — always merges\n- ❌ Redirect any host application's data location — memex reads from each tool's native path\n- ❌ Send anything over the network (besides `npm install` itself)\n\n## License\n\n[MIT](https://github.com/parallelclaw/memex-mvp/blob/main/LICENSE) for memex itself.\nThis skill bundle is published on ClawHub under [MIT-0](https://opensource.org/license/mit-0) (effectively public domain — no attribution required) per ClawHub's publishing terms.\n\n---\n\n📚 Built by [@parallelclaw](https://github.com/parallelclaw) · Star the repo if memex helps you: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp)\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn7073ez7kp7shjm06s5vr7thd85wezr\",\n  \"slug\": \"install-memex\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1779089661244\n}\n\nFile v1.5.0:examples.md\n\n# Example dialogues\n\nSample interactions when the user invokes this skill. These show typical happy paths and how the skill handles common edge cases.\n\n> **Note (v1.1+):** The skill now leads with the **fast-path one-liner** (`curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`) after Discovery — see Example 0 below. The legacy five-step examples (1–5 below) stay as the fallback when the agent is inside a GUI client (Cursor / Cline / Continue / Zed — still need step 2 manually after the script), the user declines curl, or the script fails.\n\n---\n\n## Example 0 · Fast path on Claude Code CLI (v1.1+)\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Claude Code CLI. Let me run a quick discovery first.\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (14 sessions)\n> ✓ Found Cowork sessions (5 subagent transcripts)\n> ✗ Cursor data not found\n> ✗ Continue / Zed not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, I'll ask which to import.\n>\n> The fast path is a single hosted bash script that does **npm install (with EACCES auto-fix), daemon setup, Brian Chesky auto-context hook, history backfill, and `claude mcp add memex`** all in one go. Idempotent. Want me to run:\n>\n> ```sh\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** ok\n>\n> **Agent:** [runs the curl command, streams output]\n>\n> ```\n> ▸ memex one-line installer\n> ▸ Node v20.11.1 — ok\n> ▸ Installing memex-mvp from npm...\n> ✓ memex 0.9.0 ready at /Users/you/.npm-global/bin/memex\n> ▸ Installing memex-sync (LaunchAgent + auto-context hook)...\n> ✓ daemon running (PID 41872)\n> ✓ Brian Chesky auto-context hook added to ~/.claude/settings.json\n> ▸ Backfilling history (memex-sync scan)...\n> ✓ 87 conversations indexed\n> ▸ Wiring MCP into Claude Code...\n> ✓ claude mcp add memex — done\n> ▸ All set. Quit Claude Code (Cmd+Q) and reopen any project. Memex will inject prior context before your first message.\n> ```\n>\n> All five steps done in ~25 seconds. Quit Claude Code (Cmd+Q) and reopen — when you open any project you've worked in, memex will inject relevant context before you even type. Try: `memex overview` from terminal to confirm.\n\n---\n\n## Example 1 · Happy path on a fresh Cursor install\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Let me run a quick discovery before any install actions...\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (12 sessions)\n> ✓ Found Cowork sessions (4 subagent transcripts)\n> ✓ Cursor data found — I'll write MCP config to ~/.cursor/mcp.json\n> ✗ Continue config not found\n> ✗ Zed config not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ Telegram capture also kicks in automatically — when you export a chat from Telegram Desktop, I'll ask which to import. If you also use Obsidian, we can wire that vault in after.\n>\n> Ready to proceed with Step 1?\n>\n> **User:** yes\n>\n> **Agent:** Running `npm install -g memex-mvp`...\n>\n> ```\n> + memex-mvp@0.5.4\n> ```\n>\n> ✓ Memex installed. Verifying: `which memex` → `/usr/local/bin/memex`. Good.\n>\n> Step 2: I'm about to merge a new entry into your `~/.cursor/mcp.json`. Here's the diff:\n>\n> ```diff\n>   {\n>     \"mcpServers\": {\n>       \"github\": { ... },\n> +     \"memex\": {\n> +       \"command\": \"/usr/local/bin/memex\"\n> +     }\n>     }\n>   }\n> ```\n>\n> Looks correct? (Y/n)\n>\n> **User:** yes\n>\n> **Agent:** ✓ Config saved.\n>\n> Step 3: `memex-sync install` — sets up the macOS LaunchAgent that auto-captures new Claude Code / Cowork / Cursor sessions...\n>\n> ```\n> ✓ memex-sync installed\n> ✓ daemon running (PID 47291)\n> ✓ watching 12 sessions across 3 source roots\n> ```\n>\n> Step 4: `memex-sync scan` to backfill existing history. This indexes everything already on your disk — might take 30-90 seconds...\n>\n> ```\n> ingested 847 messages from 12 conversations\n> ```\n>\n> ✓ All done. **Restart Cursor (Cmd+Q + reopen)** so it picks up the new memex tools. After restart, try:\n>\n> - \"what does memex have in memory?\"\n> - \"search memex for [a recent topic you worked on]\"\n> - \"list my memex projects\"\n\n---\n\n## Example 2 · EACCES recovery (macOS system Node) — recommend B by default\n\n> **User:** install memex\n>\n> **Agent:** [runs discovery, gets user OK] Step 1: `npm install -g memex-mvp`...\n>\n> ```\n> npm error code EACCES\n> npm error path: '/usr/local/lib/node_modules/memex-mvp'\n> ```\n>\n> Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n>\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. **Proceed with B?**\n>\n> **User:** ok\n>\n> **Agent:** Running the 5 prefix-fix commands:\n>\n> ```sh\n> mkdir -p ~/.npm-global\n> npm config set prefix ~/.npm-global\n> echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\n> source ~/.zshrc\n> npm install -g memex-mvp\n> ```\n>\n> ✓ Done. Verifying:\n>\n> ```\n> which memex → /Users/macbook/.npm-global/bin/memex\n> ```\n>\n> Now continuing to Step 2 with this path...\n\n---\n\n## Example 3 · Wants only Claude Code, not the daemon\n\n> **User:** install memex but skip the daemon\n>\n> **Agent:** Sure — that means memex will be available as a tool, but new sessions won't be auto-captured. You'll need to run `memex-sync scan` manually whenever you want to index recent sessions. Got it?\n>\n> **User:** yes\n>\n> **Agent:** [runs Steps 1, 2, 4 — skipping `memex-sync install` in Step 3]\n>\n> ✓ Memex installed, MCP config wired, backfill complete (847 messages from existing sessions).\n>\n> Since you skipped the daemon, here's how to refresh memex going forward:\n> ```sh\n> memex-sync scan\n> ```\n>\n> You can install the daemon any time later: `memex-sync install`.\n\n---\n\n## Example 4 · Existing memex install detected\n\n> **User:** install memex\n>\n> **Agent:** Quick check: `which memex` → `/usr/local/bin/memex`. You already have memex installed.\n>\n> Running `memex-sync status`:\n> ```\n> daemon running (PID 47291), watching 12 sessions\n> last capture: 4 minutes ago\n> ```\n>\n> Memex is working. What would you like to do?\n>\n> - **Reinstall** (e.g. to update to the latest version): I can run `npm install -g memex-mvp@latest`\n> - **Add a new source** (Obsidian vault, Telegram exports, etc.)\n> - **Add memex to another MCP client** (you have it in Cursor; want it in Cline / Continue / Zed too?)\n> - **Nothing** — already good\n\n---\n\n## Example 5 · Web-only agent (no shell access)\n\n> **User:** install memex\n>\n> **Agent:** I see you're running me through claude.ai web — I don't have access to your machine's shell, so I can't run `npm install` or write files for you.\n>\n> You have three options to install memex:\n>\n> 1. **CLI agents** (best UX): Open Claude Code, Cursor, Cline, Continue, or Zed and ask me there. Those have shell access and will run this skill end-to-end.\n>\n> 2. **Manual install** (~5 minutes, you run the commands): Follow https://memex.parallelclaw.ai/#quickstart — 4 steps in your terminal.\n>\n> 3. **One-liner from terminal**:\n> ```sh\n> npm install -g memex-mvp\n> memex-sync install\n> ```\n> Then add `{\"mcpServers\": {\"memex\": {\"command\": \"$(which memex)\"}}}` to your MCP client's config file. Details: https://memex.parallelclaw.ai\n>\n> Which path works for you?\n\n---\n\n---\n\n## Example 6 · Right after install — testing URL save (v0.6+)\n\n> **User:** save https://en.wikipedia.org/wiki/As_We_May_Think to memex\n>\n> **Agent:** Fetching the page with WebFetch...\n>\n> ```\n> ✓ Got 12,847 chars from en.wikipedia.org\n> ```\n>\n> Calling `memex_store_document(content, url=https://en.wikipedia.org/wiki/As_We_May_Think, title=auto)`...\n>\n> ```\n> ✓ stored\n>   conversation_id: web-d3b07a384d1b\n>   title: \"As We May Think\"\n>   length: 12,847 chars\n>   warnings: []\n> ```\n>\n> Saved. Try searching it now: *\"search memex for memex Bush 1945\"* — the article will show up alongside any AI chats where you discussed it.\n>\n> 💡 By the way, you can save any URL this way — Perplexity threads, blog posts, ChatGPT shares, Twitter threads, GitHub discussions. For Perplexity specifically, the thread must be made Public first (Share → Public link). For Cloudflare-protected sites, memex auto-falls back through `r.jina.ai` proxy.\n\n---\n\n---\n\n## Example 7 · MCP didn't connect — agent recommends CLI fallback (v0.7+)\n\n> **User:** ok, I installed memex. but when I ask Claude \"show me what memex has\", nothing happens.\n>\n> **Agent:** Could be a MCP-config issue with your Claude client — let's verify memex itself is healthy first, separately from MCP:\n>\n> ```sh\n> memex overview\n> ```\n>\n> ```\n> memex corpus snapshot\n>\n> Total: 1,247 messages in 23 conversations\n>\n> By source:\n>   claude-code           742 msgs · 18 chats · 2026-04-06 → 2026-05-15\n>   claude-cowork         312 msgs ·  4 chats · 2026-04-06 → 2026-05-07\n>   ...\n> ```\n>\n> Memex itself is healthy — your data is there. The problem is the MCP wiring in your Claude client.\n>\n> Try `memex search \"recent topic you discussed\"` directly in the terminal — if that returns hits, you've got a fully-working memex; it's just not exposed to your Claude session yet.\n>\n> Then check your Claude MCP config (`~/.claude/config.json` or equivalent) — the `memex` entry should have an absolute path. Run `which memex` to get it, and verify it's there. If you need to re-do the wiring, ask me again — I'll re-run step 2 of the install.\n\n---\n\n## What these examples illustrate about the skill's behavior\n\n- **Always discover first**, then ask for confirmation before any write action\n- **Show every command** before running it; show diffs for config edits\n- **Recommend the better default** with a clear reason (e.g. Option B for EACCES) instead of forcing the user to weigh both options blind. Fall back to alternatives only if explicitly chosen.\n- **Detect and adapt** to existing installs, missing prerequisites, partial setups\n- **Refuse gracefully** when running in a context where the install can't actually work (web-only agents)\n\nIf you see the skill *not* doing one of these things, that's a bug — report it at https://github.com/parallelclaw/memex-mvp/issues.\n\nArchive v1.4.0: 4 files, 16996 bytes\n\nFiles: examples.md (10628b), README.md (6845b), SKILL.md (21550b), _meta.json (132b)\n\nFile v1.4.0:SKILL.md\n\n---\nname: install-memex\ndescription: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (local-first MCP server) in ~60 seconds via curl one-liner. Includes auto-capture daemon for Claude Code / Cowork / Cursor / Obsidian; v0.10 Telegram auto-detect (export from Desktop → memex stages it → AI proactively asks which to import, privacy-first per-chat consent); v0.8 SessionStart hook for the Brian Chesky moment (\"Claude already knows what you were doing\"); URL / Perplexity / AI chat share capture via memex_store_document. 18 MCP tools, no cloud, no account, verbatim storage. Use when the user says \"install memex\", \"set up memex\", \"add memory to my AI\", \"make my agent remember across sessions\", \"сохрани мои чаты\", or similar.\nversion: 1.4.0\nmetadata:\n  openclaw:\n    emoji: \"📚\"\n    homepage: https://memex.parallelclaw.ai\n    requires:\n      bins:\n        - node\n        - npm\n---\n\n# Install memex\n\n## ⚠ For ClawHub reviewers, security scanners, and curious users\n\nThis skill is an **installer for memex** — a local-first MCP memory server.\nStatic scanners flag several patterns as \"suspicious\"; every single one is\nintentional and necessary for installing a memory tool. Below is the full\nlist so a human reviewer (or the user) can verify legitimacy in one glance.\n\n**What the skill instructs the agent to do:**\n\n| Action | Why | Source-of-truth |\n|---|---|---|\n| `curl -fsSL https://memex.parallelclaw.ai/install.sh \\| bash` | Fast-path installer (the user can `\\| less` first to inspect) | [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) — open-source bash, hosted on GitHub Pages |\n| `npm install -g memex-mvp` | Manual install (fallback if user declines the curl) | [npmjs.com/package/memex-mvp](https://www.npmjs.com/package/memex-mvp), source: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) |\n| `echo 'export PATH=...' >> ~/.zshrc` | EACCES auto-fix — moves npm prefix to `~/.npm-global` so `npm install -g` works without sudo. **Idempotent** — re-running is safe. | Standard npm prefix workaround [docs.npmjs.com](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |\n| `sudo npm install -g memex-mvp` | Offered as Plan A on EACCES if user explicitly wants quick (not default — skill recommends the no-sudo prefix fix). Skill **never runs sudo without explicit user \"yes\"**. | — |\n| `memex-sync install` (LaunchAgent) | Registers a macOS LaunchAgent so memex daemon auto-starts on login. **The daemon itself is local-only**: it watches `~/.claude/projects/`, `~/Downloads/Telegram Desktop/`, etc., and writes to `~/.memex/data/memex.db`. Zero outbound network traffic. | LaunchAgent plist at `~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist` is human-readable |\n| Edit `~/.claude/settings.json`, `~/.cursor/mcp.json`, etc. | Adds the MCP-server entry so the user's AI client can call memex tools. Existing entries are preserved (merge, never overwrite). | Each MCP client documents this config format |\n| `tell application \"Terminal\" to do script \"claude\"` (AppleScript) | Used by the optional clickable notification banner — opens a new Terminal tab + launches `claude` when the user clicks. **Default OFF**. | Requires `brew install terminal-notifier` (optional dep) |\n| `brew install terminal-notifier` | Optional dep for clickable banners. Skill mentions it but does NOT install without user OK. | [github.com/julienXX/terminal-notifier](https://github.com/julienXX/terminal-notifier) |\n\n**Hard guarantees** (codified in the \"Safety rules\" section below):\n- Agent shows every shell command **BEFORE** running it\n- User can say \"stop\" / \"no\" at any step, agent halts\n- `sudo` is NEVER run without an explicit user \"yes\"\n- MCP config files are MERGED, never overwritten — existing entries preserved\n- Memex at runtime emits **zero outbound network traffic** (it's local-first by design — see [PRIVACY section in repo README](https://github.com/parallelclaw/memex-mvp/blob/main/README.ru.md#приватность-и-безопасность--privacy--security))\n\n**Source code:** [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) (MIT). All commands above are visible in [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) and the published [memex-mvp npm package](https://www.npmjs.com/package/memex-mvp).\n\n---\n\nYou are installing **memex** on this machine. Memex is a local-first MCP server that captures the user's AI conversations across Claude Code, Cowork (including subagents), Cursor, Obsidian, and Telegram exports into a searchable SQLite + FTS5 index that any MCP-compatible agent can query through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, plus the `memex_telegram_*` family added in v0.10+).\n\nRepo: https://github.com/parallelclaw/memex-mvp\nLanding: https://memex.parallelclaw.ai\nnpm: https://www.npmjs.com/package/memex-mvp\n\n## How memex works (read this so you don't get confused by paths below)\n\nMemex has its OWN storage at `~/.memex/data/memex.db`. It READS from each tool's native data location automatically — Claude Code from `~/.claude/projects/`, Cursor from its `state.vscdb`, Cowork from its sessions dir, Obsidian from configured vaults. You do NOT need to change where Claude Code, Cursor, or any other tool saves its data. Memex is a passive observer.\n\n## Prerequisite\n\nThis skill only works if you are running INSIDE an AI agent that has direct access to the user's shell — i.e. one of: Claude Code (CLI), Cursor, Cline, Continue, or Zed. Web-based agents (ChatGPT in browser, Claude.ai web, Claude Desktop without tools, etc.) cannot execute `npm`/file operations. If you are NOT a CLI-based agent with shell access, stop now and tell the user to use the manual install at https://memex.parallelclaw.ai/#quickstart.\n\n## Discovery — do this BEFORE the numbered steps\n\nScan the user's setup so you can tailor advice and tell them exactly what memex will pick up.\n\n1. Identify which MCP client you're running inside (you should know from context — Claude Code CLI, Cursor, Cline, Continue, or Zed).\n2. Run these read-only checks one by one:\n   ```sh\n   ls -d ~/.claude/projects 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Claude/local-agent-mode-sessions 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Cursor 2>/dev/null\n   ls ~/.continue/config.json 2>/dev/null\n   ls -d ~/.config/zed 2>/dev/null\n   ```\n3. Report to the user in plain language:\n   - \"You're running inside [X]. I will edit [path] in step 2 below.\"\n   - \"Tools with data found on this machine: [list]\"\n   - \"Tools NOT found (memex won't capture from these): [list]\"\n   - \"After install, memex will auto-index conversations from: [detected sources]\"\n4. Wait for the user's \"ok\" before starting step 1.\n\n## Fast path — one-line installer (try this first)\n\nmemex ships a hosted bash installer that does steps 1, 3, and 4 in a single run — and also wires up Claude Code's MCP entry if `claude` is on PATH. It's idempotent (safe to re-run), auto-fixes the `EACCES` case by moving npm's prefix to `~/.npm-global`, and prompts before enabling the auto-context hook.\n\nShow this command to the user, explain what it does, get their **explicit ok**, then run:\n\n```sh\ncurl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n```\n\nWhat the script does, in order:\n1. Checks Node ≥ 20.\n2. `npm install -g memex-mvp` — on EACCES, sets `npm config set prefix ~/.npm-global`, appends PATH to `~/.zshrc`, retries.\n3. `memex-sync install` with `--auto-context yes` (Brian Chesky hook into `~/.claude/settings.json` — preserves other hooks).\n4. `memex-sync scan` — backfills existing history.\n5. `claude mcp add memex --scope user -- memex` if Claude Code CLI is detected.\n\nAfter the script finishes:\n- If the user is in **Claude Code (CLI)** → install is complete. Skip straight to step 6 (verification + restart). Also do step 5 (offer Telegram capture).\n- If the user is in **Cursor / Cline / Continue / Zed** → the npm install + daemon + auto-context + scan are done, but the GUI client's MCP config still needs the memex entry. **Skip step 1 (already installed)**, **skip step 3** (daemon already installed) and **skip step 4** (scan already ran). **Do step 2** (wire MCP into the GUI client's config), **step 5** (offer Telegram), and **step 6** (verify + restart).\n\nIf the script fails for any reason — non-zero exit, weird output, user uncomfortable piping curl to bash — fall back to the **Manual install** below.\n\nTo inspect what the script does first: `curl -fsSL https://memex.parallelclaw.ai/install.sh | less` (don't pipe to bash).\n\n## Manual install (if the fast path didn't fit)\n\nDo these in order. Show each command before running it. Stop and ask if anything fails or looks wrong.\n\n### 1. Install memex from npm\n\n```sh\nnpm install -g memex-mvp\n```\n\nIf you get `EACCES` (macOS system Node), **recommend Option B (permanent prefix fix) by default** and proceed unless the user explicitly chooses sudo.\n\nSay to the user:\n\n> \"Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. Proceed with B?\"\n\nIf the user agrees (or says anything like \"ok\", \"yes\", \"default\", \"go\", \"B\") — proceed with B without further questions:\n\n```sh\nmkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\nnpm install -g memex-mvp\n```\n\nIf the user **explicitly** picks A (or says \"sudo\", \"fast\", \"quick\"), use sudo:\n\n```sh\nsudo npm install -g memex-mvp\n```\n\nAfter the install completes, verify with `which memex` (should print an absolute path) and `memex --version` (should print the version).\n\n**Important if Option B was used + user already had memex from a prior sudo install:** the old sudo-installed copy in `/usr/local/lib/node_modules/memex-mvp/` is now orphaned (PATH prefers the new home install). Mention this once:\n\n> \"By the way, you have an older sudo-installed memex copy in `/usr/local/lib/`. It's harmless but takes ~60 MB. Clean it up when convenient: `sudo npm uninstall -g memex-mvp` — not urgent.\"\n\nDon't run that uninstall yourself — let the user decide when.\n\nIf `node` or `npm` are missing, STOP and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n\n**Verify:** `which memex` prints an absolute path; `memex-sync --help` runs without error.\n\n### 2. Wire memex into the MCP client\n\nCommon config locations:\n\n| Client       | Config file                                         |\n|--------------|-----------------------------------------------------|\n| Claude Code  | `~/.claude/config.json` (or platform equivalent)    |\n| Cursor       | `~/.cursor/mcp.json`                                |\n| Cline        | VS Code `settings.json` (`cline.mcpServers`)        |\n| Continue     | `~/.continue/config.json`                           |\n| Zed          | `~/.config/zed/settings.json` (`context_servers`)   |\n\nTell the user which one you've inferred and which file you'll edit. If unclear, ask.\n\nRead the existing config (if present). Show the user a diff before saving.\n\nGet the **absolute** path to the memex binary — GUI apps (Cursor, Cline, Claude Desktop) on macOS often don't inherit shell PATH, so a bare `\"command\": \"memex\"` fails with `spawn memex ENOENT`. Run:\n\n```sh\nwhich memex\n```\n\nCapture that path (e.g. `/Users/<you>/.npm-global/bin/memex` or `/usr/local/bin/memex`). If it's a shim, also run `realpath $(which memex)` to resolve to the real binary.\n\nMERGE this entry into `mcpServers` — never overwrite other servers the user has:\n\n```json\n{\n  \"mcpServers\": {\n    \"memex\": {\n      \"command\": \"<absolute path from which memex>\"\n    }\n  }\n}\n```\n\nOne path, no `args`. The published npm package wires up its own entry point.\n\nIf the config file doesn't exist, create the parent directory and write a minimal valid file with just memex.\n\n**Verify:** re-read the file after save; confirm `memex` entry is present and `command` is an absolute path.\n\n### 3. Turn on live auto-capture + auto-context (v0.8+)\n\n```sh\nmemex-sync install\n```\n\nDuring `memex-sync install`, you'll see a prompt:\n\n```\nAuto-context (Brian Chesky mode):\n  When you open Claude Code in a project, memex can inject 500-1500 tokens\n  of relevant context so Claude knows what you were doing — without you\n  having to ask. Adds a SessionStart hook to ~/.claude/settings.json.\n  Other hooks (e.g. gstack) are preserved.\n\n  Enable? [Y/n]\n```\n\n**Answer Y unless the user has stated privacy concerns** about Claude seeing context from their other AI conversations. Auto-context is the \"10/10 magic moment\" of memex — without it the install ships at base capability. Other hooks (gstack, custom) are preserved untouched.\n\nFor non-interactive flows (CI / scripts): pass `--auto-context yes` or `--yes`.\n\n```sh\nmemex-sync status\n```\n\n`status` should print \"daemon installed\", \"running (PID …)\", \"watching N sessions\".\n\n**Verify:** status output shows a non-zero PID. Also run `memex hook status` — should show `INSTALLED` if auto-context was accepted.\n\n### 4. Backfill existing history\n\nThe daemon only catches NEW sessions going forward. To index everything already on disk:\n\n```sh\nmemex-sync scan\n```\n\nThis walks `~/.claude/projects/`, Cowork sessions, Cursor `state.vscdb`, and any configured Obsidian vaults once, ingesting whatever exists.\n\nOptionally:\n```sh\nmemex-sync backfill-projects\n```\n\nTags older conversations with their `project_path` so `memex_list_projects` works on them.\n\n**Verify:** after scan, `memex-sync status` shows a non-zero \"ingested\" count.\n\n### 5. Offer Telegram-export capture (v0.10+)\n\nAfter the core install is done, **proactively** ask:\n\n> \"Memex can also remember your Telegram chats — work, family, group chats, whatever you want indexed. Want me to set that up too? It's about 2 minutes.\"\n\nIf yes, run `memex_telegram_check` (MCP tool) or `memex telegram check` (CLI). The result tells you the user's state and the next step. Walk them through:\n\n  - **No Telegram Desktop?** → Give the download URL from the check output. Wait for them to install + log in.\n  - **Logged in <24h ago?** → Tell them: \"Telegram blocks export for the first 24h. Wait ~X hours, then come back.\"\n  - **Ready to export?** → Show the click-path: open chat → ⋮ menu (top-right) → \"Export chat history\" → format HTML or JSON → Export.\n\nAfter the user exports, memex's daemon **auto-detects** the file in ~/Downloads/Telegram Desktop/ within ~7 seconds and stages it in `~/.memex/pending/`. Then:\n\n  - Call `memex_telegram_pending` to list staged exports (chat name, msg count, date range).\n  - **Present as a numbered list**, ask which to import. Accept indices, titles, or natural language (\"import family and work, skip bank\").\n  - Call `memex_telegram_import` with selected indices/titles. The chat is added to the allow-list — future re-exports auto-merge via UNIQUE(msg_id).\n  - For sensitive chats user doesn't want (Bank, Therapist, etc.), call `memex_telegram_skip`.\n\n**Optional — clickable native macOS banner (v0.10.4+):** memex can fire a macOS notification the moment an export is staged. Default OFF for privacy. If the user wants this:\n\n```sh\nbrew install terminal-notifier             # required for clickable banner\nmemex telegram notifications on            # enable; default: titles hidden\nmemex telegram notifications on --show-titles   # include chat names in banner\n```\n\nWhen enabled with `terminal-notifier`, clicking the banner opens (auto-detect priority): Claude Code CLI in a fresh Terminal tab → Claude Desktop → Terminal with `memex telegram pending`. The CLI launch path triggers the SessionStart hook → Brian Chesky moment. Override target: `memex telegram notifications target <auto|claude-cli|claude-desktop|terminal|none>`.\n\n**Other useful Telegram commands** (no MCP-tool wiring needed):\n\n```sh\nmemex telegram check          # diagnostic: Desktop? login age (24h)? watcher?\nmemex telegram open-pending   # one-shot: open pending list in best client\nmemex telegram mode auto      # auto-import allow-listed chats on re-export\nmemex telegram status         # decisions counts (allowed/skipped/blocked)\n```\n\n**Privacy is the core promise. Never auto-import. Always get explicit per-chat consent on the first round.**\n\nIf the user declines Telegram setup (\"not now\" / \"skip\"): say \"OK, I'll skip Telegram. You can run `memex telegram check` anytime later to start.\" Don't push.\n\n### 6. Tell the user what to do next\n\nTell the user to fully quit and reopen the MCP client (Cmd+Q on macOS) so it picks up the new memex tools.\n\nAfter restart, suggest they try any of:\n- \"show me what memex has in memory\" → triggers `memex_overview`\n- \"what projects has memex captured\" → triggers `memex_list_projects`\n- \"search memex for [recent topic]\" → triggers `memex_search`\n- \"save https://en.wikipedia.org/wiki/As_We_May_Think to memex\" → triggers `memex_store_document` and teaches the user that URL-saving exists (v0.6+)\n- **Open Claude Code in any project the user worked on recently** — the SessionStart auto-context (v0.8+) should kick in and Claude will mention prior work _before_ the user types anything. This is the \"Brian Chesky moment\" — the magical-first-impression of memex.\n\n- **(if Telegram was set up)** `memex telegram check` — confirms daemon's Telegram-Downloads watcher is active and shows the user's full capture pipeline state.\n- **(v0.10.8+)** `memex web --open` — opens the local read-only web dashboard at `http://127.0.0.1:8765`. 5 pages: corpus stats, FTS5-searchable conversations list, verbatim chat-bubble transcripts, pending Telegram review with checkboxes, settings/daemon status. Useful for the user to *see* their memory with their own eyes — and a strong demo moment (\"look at the actual messages verbatim, not an AI summary\"). Localhost-only by default; Ctrl+C to stop.\n\nThese confirm everything works end-to-end.\n\n**Brian Chesky moment beyond Claude Code (v0.10.7+):** the SessionStart hook works only in Claude Code CLI. But starting v0.10.7, the same proactive behaviour is taught to agents in Cursor / Cline / Continue / Zed / Claude Desktop via SERVER_INSTRUCTIONS — these agents call `memex_overview` automatically on first interaction, read its `telegram_pending` field, and surface pending exports in their first reply. Slightly higher latency (one MCP roundtrip vs hook's instant inject), but same UX.\n\n**CLI fallback (v0.7+):** if the MCP integration doesn't pick up in the user's client for any reason, tell them they can verify memex from the terminal directly — same binary, no MCP needed:\n\n```sh\nmemex overview      # confirms memex itself is healthy\nmemex search \"foo\"  # FTS search from CLI\nmemex list          # list conversations\nmemex --help        # command reference\n```\n\nThis is also useful for agents without native MCP support (OpenCode + Kimi, plain shell scripts, CI pipelines) — they can shell out to `memex` directly.\n\n## Safety rules — read before starting\n\n- If `node` or `npm` aren't installed, stop and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n- Never run `rm`, `sudo`, or anything destructive without explicit confirmation from the user.\n- Show every command before running it. If the user says \"no\" or \"stop\", halt and explain.\n- If a step fails, do NOT auto-retry or auto-fix — tell the user what failed and ask how to proceed.\n- When editing the MCP config, always preserve existing entries. If you can't merge cleanly, abort and tell the user.\n- Do NOT modify the host application's settings beyond adding the memex entry to its `mcpServers` config. Specifically: do not redirect where Cursor / Claude Code / any other tool saves its data. Memex reads from each tool's native location automatically. The only file you should touch is the MCP config file listed in step 2.\n- Stay focused on the main install task. If sidetracked into a sub-task (changing workspace, fixing an unrelated config issue, looking up something else), once it's done you MUST return to the memex install and explicitly tell the user: \"OK, back to memex install. We were at step N — should I continue?\". Don't go silent after a side task. Don't assume the user wants to abandon the install — always confirm.\n\n## Begin\n\nGreet the user, confirm which MCP client you're running inside, and run the Discovery checks before any install actions. After Discovery, **propose the fast path (curl one-liner) first** — it covers ~90% of cases in one shot. After the core install completes, **proactively offer Telegram-export capture (step 5)** unless the user has already declined. Only fall back to the manual flow if the user objects, the script fails, or you're inside a GUI client where you'll still need to do step 2 manually after the script runs.\n\nFile v1.4.0:README.md\n\n# 📚 Install memex — cross-AI memory in 2 minutes\n\n> One prompt sets up local-first AI memory across **Claude Code, Cowork, Cursor, Cline, Continue, and Zed** — plus Obsidian notes and Telegram chats. No cloud. No account. No data leaves your machine.\n\n## What this skill does\n\nAfter you drop the skill into your agent (`~/.claude/skills/` for Claude Code, or your client's equivalent), saying **\"install memex\"** triggers a guided installation:\n\n1. **Discovery** — read-only checks for which MCP client you're using and what AI data already exists on your machine\n2. **Fast path (v1.1+)** — `curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`: one hosted bash script does npm install (with EACCES auto-fix to `~/.npm-global`), daemon setup, v0.8 auto-context hook, history backfill, and `claude mcp add memex` if Claude Code CLI is on PATH. Idempotent.\n3. **Fallback: manual five-step** — if curl fails, the user declines, or the agent is inside a GUI client (Cursor/Cline/Continue/Zed) where the MCP config still needs editing: `npm install -g memex-mvp` → MCP config merge → `memex-sync install` → `memex-sync scan`.\n4. **MCP config merge** (only needed for GUI clients) — adds a single absolute-path `command` entry into your client's `mcpServers` config. Never overwrites your other servers.\n5. **Restart hint + verification commands** — including the v0.7+ CLI fallback (`memex overview`, `memex search \"foo\"`) so you can verify memex works even if MCP didn't wire up cleanly.\n\nEnd-to-end: **~60 seconds** via fast path, **~2 minutes** via manual flow, fully observable (agent shows each command before running).\n\n## What is memex?\n\nMemex is a **local-first MCP server** that captures every conversation you have with an AI — across **Claude Code, Cowork (including subagent transcripts), Cursor, Cline, Continue, Zed**, plus **Obsidian notes**, **Telegram chats**, and **web pages / AI chat shares** (v0.6+ via `memex_store_document` — agent fetches, memex stores verbatim) — into one searchable SQLite + FTS5 corpus.\n\nAny MCP-compatible agent can then query that corpus through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, the `memex_telegram_*` family for v0.10+ chat capture, …).\n\n| Pain                                            | Memex                                |\n|-------------------------------------------------|--------------------------------------|\n| Claude forgets every session                    | One unified history across all sessions, all clients |\n| Switching from Claude Code to Cursor = lost context | Cursor can read your Claude history (same SQLite DB) |\n| Cloud memory services hold your data hostage    | One `~/.memex/data/memex.db` file on your disk       |\n| Mem0 / Supermemory pricing per token            | 0 LLM calls on write — free at any scale             |\n| Vendor ban = lose everything                    | Your DB stays even if Claude blocks your account     |\n\n📦 npm: [memex-mvp](https://www.npmjs.com/package/memex-mvp) · 🏠 [memex.parallelclaw.ai](https://memex.parallelclaw.ai) · 🐛 [GitHub](https://github.com/parallelclaw/memex-mvp)\n\n## Why a skill (vs. just copy-pasting the install prompt)\n\nThe install playbook also exists as a copy-paste prompt on the landing page. But once you have the skill installed, you skip a friction layer:\n\n| Without skill | With skill |\n|---|---|\n| Open landing page in browser | (already in your agent) |\n| Click \"Copy install prompt\" | — |\n| Paste a wall of text into Claude/Cursor | Just say \"install memex\" |\n| Hope the prompt is up-to-date | Skill version updates auto-fetched |\n\nThe skill description is written so Claude / OpenClaw auto-invoke it from any phrasing of \"install memex\", \"set up memex\", \"add memory to my AI\", etc. — no need to remember `/install-memex` exactly.\n\n## Example dialogue\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Quick discovery before any install actions...\n>\n> ✓ Found Claude Code data at `~/.claude/projects/` (8 sessions)\n> ✓ Found Cowork sessions (3 subagent transcripts)\n> ✗ Continue not installed\n> ✗ Zed not installed\n> ✓ Cursor data found (this is where I'll write the MCP config)\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, memex stages it and I'll ask which to import (privacy-first per-chat consent).\n>\n> Best path is the curl one-liner — does npm install (auto-fixes EACCES), daemon, auto-context hook, and history backfill in ~60 seconds. Want me to run:\n>\n> ```\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** yes\n>\n> **Agent:** [streams curl output, then edits `~/.cursor/mcp.json` to add `memex` MCP entry, prints restart hint, and offers Telegram capture setup]\n\nSee [examples.md](examples.md) for more sample dialogues, including EACCES recovery and partial-install scenarios.\n\n## Requirements\n\n- **Node.js 20–24** (LTS recommended). Install via [nodejs.org](https://nodejs.org), `brew install node`, or [nvm](https://github.com/nvm-sh/nvm)\n- **macOS or Linux** (Windows untested for memex itself; skill works anywhere your agent has shell access)\n- **An MCP-compatible CLI agent**: Claude Code, OpenClaw, Cursor (with MCP), Cline, Continue, or Zed. Web-only agents (ChatGPT, Claude.ai) can't execute install steps\n\n## Install the skill\n\n```sh\nmkdir -p ~/.claude/skills/install-memex\ncurl -fsSL https://raw.githubusercontent.com/parallelclaw/memex-mvp/main/skills/install-memex/SKILL.md \\\n  -o ~/.claude/skills/install-memex/SKILL.md\n```\n\nOr, if you've already done `npm install -g memex-mvp`, the skill ships inside the package:\n\n```sh\ncp -r \"$(npm root -g)/memex-mvp/skills/install-memex\" ~/.claude/skills/\n```\n\nThen in your agent: `install memex` (or `/install-memex` if your client supports slash-commands).\n\n## What the skill won't do\n\n- ❌ Install Node.js for you — it stops and asks you to install it\n- ❌ Run `sudo` without asking — EACCES fallback always confirms with you first\n- ❌ Overwrite your existing `mcpServers` config — always merges\n- ❌ Redirect any host application's data location — memex reads from each tool's native path\n- ❌ Send anything over the network (besides `npm install` itself)\n\n## License\n\n[MIT](https://github.com/parallelclaw/memex-mvp/blob/main/LICENSE) for memex itself.\nThis skill bundle is published on ClawHub under [MIT-0](https://opensource.org/license/mit-0) (effectively public domain — no attribution required) per ClawHub's publishing terms.\n\n---\n\n📚 Built by [@parallelclaw](https://github.com/parallelclaw) · Star the repo if memex helps you: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp)\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7073ez7kp7shjm06s5vr7thd85wezr\",\n  \"slug\": \"install-memex\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1779039575170\n}\n\nFile v1.4.0:examples.md\n\n# Example dialogues\n\nSample interactions when the user invokes this skill. These show typical happy paths and how the skill handles common edge cases.\n\n> **Note (v1.1+):** The skill now leads with the **fast-path one-liner** (`curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`) after Discovery — see Example 0 below. The legacy five-step examples (1–5 below) stay as the fallback when the agent is inside a GUI client (Cursor / Cline / Continue / Zed — still need step 2 manually after the script), the user declines curl, or the script fails.\n\n---\n\n## Example 0 · Fast path on Claude Code CLI (v1.1+)\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Claude Code CLI. Let me run a quick discovery first.\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (14 sessions)\n> ✓ Found Cowork sessions (5 subagent transcripts)\n> ✗ Cursor data not found\n> ✗ Continue / Zed not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, I'll ask which to import.\n>\n> The fast path is a single hosted bash script that does **npm install (with EACCES auto-fix), daemon setup, Brian Chesky auto-context hook, history backfill, and `claude mcp add memex`** all in one go. Idempotent. Want me to run:\n>\n> ```sh\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** ok\n>\n> **Agent:** [runs the curl command, streams output]\n>\n> ```\n> ▸ memex one-line installer\n> ▸ Node v20.11.1 — ok\n> ▸ Installing memex-mvp from npm...\n> ✓ memex 0.9.0 ready at /Users/you/.npm-global/bin/memex\n> ▸ Installing memex-sync (LaunchAgent + auto-context hook)...\n> ✓ daemon running (PID 41872)\n> ✓ Brian Chesky auto-context hook added to ~/.claude/settings.json\n> ▸ Backfilling history (memex-sync scan)...\n> ✓ 87 conversations indexed\n> ▸ Wiring MCP into Claude Code...\n> ✓ claude mcp add memex — done\n> ▸ All set. Quit Claude Code (Cmd+Q) and reopen any project. Memex will inject prior context before your first message.\n> ```\n>\n> All five steps done in ~25 seconds. Quit Claude Code (Cmd+Q) and reopen — when you open any project you've worked in, memex will inject relevant context before you even type. Try: `memex overview` from terminal to confirm.\n\n---\n\n## Example 1 · Happy path on a fresh Cursor install\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Let me run a quick discovery before any install actions...\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (12 sessions)\n> ✓ Found Cowork sessions (4 subagent transcripts)\n> ✓ Cursor data found — I'll write MCP config to ~/.cursor/mcp.json\n> ✗ Continue config not found\n> ✗ Zed config not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ Telegram capture also kicks in automatically — when you export a chat from Telegram Desktop, I'll ask which to import. If you also use Obsidian, we can wire that vault in after.\n>\n> Ready to proceed with Step 1?\n>\n> **User:** yes\n>\n> **Agent:** Running `npm install -g memex-mvp`...\n>\n> ```\n> + memex-mvp@0.5.4\n> ```\n>\n> ✓ Memex installed. Verifying: `which memex` → `/usr/local/bin/memex`. Good.\n>\n> Step 2: I'm about to merge a new entry into your `~/.cursor/mcp.json`. Here's the diff:\n>\n> ```diff\n>   {\n>     \"mcpServers\": {\n>       \"github\": { ... },\n> +     \"memex\": {\n> +       \"command\": \"/usr/local/bin/memex\"\n> +     }\n>     }\n>   }\n> ```\n>\n> Looks correct? (Y/n)\n>\n> **User:** yes\n>\n> **Agent:** ✓ Config saved.\n>\n> Step 3: `memex-sync install` — sets up the macOS LaunchAgent that auto-captures new Claude Code / Cowork / Cursor sessions...\n>\n> ```\n> ✓ memex-sync installed\n> ✓ daemon running (PID 47291)\n> ✓ watching 12 sessions across 3 source roots\n> ```\n>\n> Step 4: `memex-sync scan` to backfill existing history. This indexes everything already on your disk — might take 30-90 seconds...\n>\n> ```\n> ingested 847 messages from 12 conversations\n> ```\n>\n> ✓ All done. **Restart Cursor (Cmd+Q + reopen)** so it picks up the new memex tools. After restart, try:\n>\n> - \"what does memex have in memory?\"\n> - \"search memex for [a recent topic you worked on]\"\n> - \"list my memex projects\"\n\n---\n\n## Example 2 · EACCES recovery (macOS system Node) — recommend B by default\n\n> **User:** install memex\n>\n> **Agent:** [runs discovery, gets user OK] Step 1: `npm install -g memex-mvp`...\n>\n> ```\n> npm error code EACCES\n> npm error path: '/usr/local/lib/node_modules/memex-mvp'\n> ```\n>\n> Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n>\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. **Proceed with B?**\n>\n> **User:** ok\n>\n> **Agent:** Running the 5 prefix-fix commands:\n>\n> ```sh\n> mkdir -p ~/.npm-global\n> npm config set prefix ~/.npm-global\n> echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\n> source ~/.zshrc\n> npm install -g memex-mvp\n> ```\n>\n> ✓ Done. Verifying:\n>\n> ```\n> which memex → /Users/macbook/.npm-global/bin/memex\n> ```\n>\n> Now continuing to Step 2 with this path...\n\n---\n\n## Example 3 · Wants only Claude Code, not the daemon\n\n> **User:** install memex but skip the daemon\n>\n> **Agent:** Sure — that means memex will be available as a tool, but new sessions won't be auto-captured. You'll need to run `memex-sync scan` manually whenever you want to index recent sessions. Got it?\n>\n> **User:** yes\n>\n> **Agent:** [runs Steps 1, 2, 4 — skipping `memex-sync install` in Step 3]\n>\n> ✓ Memex installed, MCP config wired, backfill complete (847 messages from existing sessions).\n>\n> Since you skipped the daemon, here's how to refresh memex going forward:\n> ```sh\n> memex-sync scan\n> ```\n>\n> You can install the daemon any time later: `memex-sync install`.\n\n---\n\n## Example 4 · Existing memex install detected\n\n> **User:** install memex\n>\n> **Agent:** Quick check: `which memex` → `/usr/local/bin/memex`. You already have memex installed.\n>\n> Running `memex-sync status`:\n> ```\n> daemon running (PID 47291), watching 12 sessions\n> last capture: 4 minutes ago\n> ```\n>\n> Memex is working. What would you like to do?\n>\n> - **Reinstall** (e.g. to update to the latest version): I can run `npm install -g memex-mvp@latest`\n> - **Add a new source** (Obsidian vault, Telegram exports, etc.)\n> - **Add memex to another MCP client** (you have it in Cursor; want it in Cline / Continue / Zed too?)\n> - **Nothing** — already good\n\n---\n\n## Example 5 · Web-only agent (no shell access)\n\n> **User:** install memex\n>\n> **Agent:** I see you're running me through claude.ai web — I don't have access to your machine's shell, so I can't run `npm install` or write files for you.\n>\n> You have three options to install memex:\n>\n> 1. **CLI agents** (best UX): Open Claude Code, Cursor, Cline, Continue, or Zed and ask me there. Those have shell access and will run this skill end-to-end.\n>\n> 2. **Manual install** (~5 minutes, you run the commands): Follow https://memex.parallelclaw.ai/#quickstart — 4 steps in your terminal.\n>\n> 3. **One-liner from terminal**:\n> ```sh\n> npm install -g memex-mvp\n> memex-sync install\n> ```\n> Then add `{\"mcpServers\": {\"memex\": {\"command\": \"$(which memex)\"}}}` to your MCP client's config file. Details: https://memex.parallelclaw.ai\n>\n> Which path works for you?\n\n---\n\n---\n\n## Example 6 · Right after install — testing URL save (v0.6+)\n\n> **User:** save https://en.wikipedia.org/wiki/As_We_May_Think to memex\n>\n> **Agent:** Fetching the page with WebFetch...\n>\n> ```\n> ✓ Got 12,847 chars from en.wikipedia.org\n> ```\n>\n> Calling `memex_store_document(content, url=https://en.wikipedia.org/wiki/As_We_May_Think, title=auto)`...\n>\n> ```\n> ✓ stored\n>   conversation_id: web-d3b07a384d1b\n>   title: \"As We May Think\"\n>   length: 12,847 chars\n>   warnings: []\n> ```\n>\n> Saved. Try searching it now: *\"search memex for memex Bush 1945\"* — the article will show up alongside any AI chats where you discussed it.\n>\n> 💡 By the way, you can save any URL this way — Perplexity threads, blog posts, ChatGPT shares, Twitter threads, GitHub discussions. For Perplexity specifically, the thread must be made Public first (Share → Public link). For Cloudflare-protected sites, memex auto-falls back through `r.jina.ai` proxy.\n\n---\n\n---\n\n## Example 7 · MCP didn't connect — agent recommends CLI fallback (v0.7+)\n\n> **User:** ok, I installed memex. but when I ask Claude \"show me what memex has\", nothing happens.\n>\n> **Agent:** Could be a MCP-config issue with your Claude client — let's verify memex itself is healthy first, separately from MCP:\n>\n> ```sh\n> memex overview\n> ```\n>\n> ```\n> memex corpus snapshot\n>\n> Total: 1,247 messages in 23 conversations\n>\n> By source:\n>   claude-code           742 msgs · 18 chats · 2026-04-06 → 2026-05-15\n>   claude-cowork         312 msgs ·  4 chats · 2026-04-06 → 2026-05-07\n>   ...\n> ```\n>\n> Memex itself is healthy — your data is there. The problem is the MCP wiring in your Claude client.\n>\n> Try `memex search \"recent topic you discussed\"` directly in the terminal — if that returns hits, you've got a fully-working memex; it's just not exposed to your Claude session yet.\n>\n> Then check your Claude MCP config (`~/.claude/config.json` or equivalent) — the `memex` entry should have an absolute path. Run `which memex` to get it, and verify it's there. If you need to re-do the wiring, ask me again — I'll re-run step 2 of the install.\n\n---\n\n## What these examples illustrate about the skill's behavior\n\n- **Always discover first**, then ask for confirmation before any write action\n- **Show every command** before running it; show diffs for config edits\n- **Recommend the better default** with a clear reason (e.g. Option B for EACCES) instead of forcing the user to weigh both options blind. Fall back to alternatives only if explicitly chosen.\n- **Detect and adapt** to existing installs, missing prerequisites, partial setups\n- **Refuse gracefully** when running in a context where the install can't actually work (web-only agents)\n\nIf you see the skill *not* doing one of these things, that's a bug — report it at https://github.com/parallelclaw/memex-mvp/issues.\n\nArchive v1.3.1: 4 files, 16774 bytes\n\nFiles: examples.md (10628b), README.md (6845b), SKILL.md (21089b), _meta.json (132b)\n\nFile v1.3.1:SKILL.md\n\n---\nname: install-memex\ndescription: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (local-first MCP server) in ~60 seconds via curl one-liner. Includes auto-capture daemon for Claude Code / Cowork / Cursor / Obsidian; v0.10 Telegram auto-detect (export from Desktop → memex stages it → AI proactively asks which to import, privacy-first per-chat consent); v0.8 SessionStart hook for the Brian Chesky moment (\"Claude already knows what you were doing\"); URL / Perplexity / AI chat share capture via memex_store_document. 18 MCP tools, no cloud, no account, verbatim storage. Use when the user says \"install memex\", \"set up memex\", \"add memory to my AI\", \"make my agent remember across sessions\", \"сохрани мои чаты\", or similar.\nversion: 1.3.1\nmetadata:\n  openclaw:\n    emoji: \"📚\"\n    homepage: https://memex.parallelclaw.ai\n    requires:\n      bins:\n        - node\n        - npm\n---\n\n# Install memex\n\n## ⚠ For ClawHub reviewers, security scanners, and curious users\n\nThis skill is an **installer for memex** — a local-first MCP memory server.\nStatic scanners flag several patterns as \"suspicious\"; every single one is\nintentional and necessary for installing a memory tool. Below is the full\nlist so a human reviewer (or the user) can verify legitimacy in one glance.\n\n**What the skill instructs the agent to do:**\n\n| Action | Why | Source-of-truth |\n|---|---|---|\n| `curl -fsSL https://memex.parallelclaw.ai/install.sh \\| bash` | Fast-path installer (the user can `\\| less` first to inspect) | [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) — open-source bash, hosted on GitHub Pages |\n| `npm install -g memex-mvp` | Manual install (fallback if user declines the curl) | [npmjs.com/package/memex-mvp](https://www.npmjs.com/package/memex-mvp), source: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) |\n| `echo 'export PATH=...' >> ~/.zshrc` | EACCES auto-fix — moves npm prefix to `~/.npm-global` so `npm install -g` works without sudo. **Idempotent** — re-running is safe. | Standard npm prefix workaround [docs.npmjs.com](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |\n| `sudo npm install -g memex-mvp` | Offered as Plan A on EACCES if user explicitly wants quick (not default — skill recommends the no-sudo prefix fix). Skill **never runs sudo without explicit user \"yes\"**. | — |\n| `memex-sync install` (LaunchAgent) | Registers a macOS LaunchAgent so memex daemon auto-starts on login. **The daemon itself is local-only**: it watches `~/.claude/projects/`, `~/Downloads/Telegram Desktop/`, etc., and writes to `~/.memex/data/memex.db`. Zero outbound network traffic. | LaunchAgent plist at `~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist` is human-readable |\n| Edit `~/.claude/settings.json`, `~/.cursor/mcp.json`, etc. | Adds the MCP-server entry so the user's AI client can call memex tools. Existing entries are preserved (merge, never overwrite). | Each MCP client documents this config format |\n| `tell application \"Terminal\" to do script \"claude\"` (AppleScript) | Used by the optional clickable notification banner — opens a new Terminal tab + launches `claude` when the user clicks. **Default OFF**. | Requires `brew install terminal-notifier` (optional dep) |\n| `brew install terminal-notifier` | Optional dep for clickable banners. Skill mentions it but does NOT install without user OK. | [github.com/julienXX/terminal-notifier](https://github.com/julienXX/terminal-notifier) |\n\n**Hard guarantees** (codified in the \"Safety rules\" section below):\n- Agent shows every shell command **BEFORE** running it\n- User can say \"stop\" / \"no\" at any step, agent halts\n- `sudo` is NEVER run without an explicit user \"yes\"\n- MCP config files are MERGED, never overwritten — existing entries preserved\n- Memex at runtime emits **zero outbound network traffic** (it's local-first by design — see [PRIVACY section in repo README](https://github.com/parallelclaw/memex-mvp/blob/main/README.ru.md#приватность-и-безопасность--privacy--security))\n\n**Source code:** [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) (MIT). All commands above are visible in [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) and the published [memex-mvp npm package](https://www.npmjs.com/package/memex-mvp).\n\n---\n\nYou are installing **memex** on this machine. Memex is a local-first MCP server that captures the user's AI conversations across Claude Code, Cowork (including subagents), Cursor, Obsidian, and Telegram exports into a searchable SQLite + FTS5 index that any MCP-compatible agent can query through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, plus the `memex_telegram_*` family added in v0.10+).\n\nRepo: https://github.com/parallelclaw/memex-mvp\nLanding: https://memex.parallelclaw.ai\nnpm: https://www.npmjs.com/package/memex-mvp\n\n## How memex works (read this so you don't get confused by paths below)\n\nMemex has its OWN storage at `~/.memex/data/memex.db`. It READS from each tool's native data location automatically — Claude Code from `~/.claude/projects/`, Cursor from its `state.vscdb`, Cowork from its sessions dir, Obsidian from configured vaults. You do NOT need to change where Claude Code, Cursor, or any other tool saves its data. Memex is a passive observer.\n\n## Prerequisite\n\nThis skill only works if you are running INSIDE an AI agent that has direct access to the user's shell — i.e. one of: Claude Code (CLI), Cursor, Cline, Continue, or Zed. Web-based agents (ChatGPT in browser, Claude.ai web, Claude Desktop without tools, etc.) cannot execute `npm`/file operations. If you are NOT a CLI-based agent with shell access, stop now and tell the user to use the manual install at https://memex.parallelclaw.ai/#quickstart.\n\n## Discovery — do this BEFORE the numbered steps\n\nScan the user's setup so you can tailor advice and tell them exactly what memex will pick up.\n\n1. Identify which MCP client you're running inside (you should know from context — Claude Code CLI, Cursor, Cline, Continue, or Zed).\n2. Run these read-only checks one by one:\n   ```sh\n   ls -d ~/.claude/projects 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Claude/local-agent-mode-sessions 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Cursor 2>/dev/null\n   ls ~/.continue/config.json 2>/dev/null\n   ls -d ~/.config/zed 2>/dev/null\n   ```\n3. Report to the user in plain language:\n   - \"You're running inside [X]. I will edit [path] in step 2 below.\"\n   - \"Tools with data found on this machine: [list]\"\n   - \"Tools NOT found (memex won't capture from these): [list]\"\n   - \"After install, memex will auto-index conversations from: [detected sources]\"\n4. Wait for the user's \"ok\" before starting step 1.\n\n## Fast path — one-line installer (try this first)\n\nmemex ships a hosted bash installer that does steps 1, 3, and 4 in a single run — and also wires up Claude Code's MCP entry if `claude` is on PATH. It's idempotent (safe to re-run), auto-fixes the `EACCES` case by moving npm's prefix to `~/.npm-global`, and prompts before enabling the auto-context hook.\n\nShow this command to the user, explain what it does, get their **explicit ok**, then run:\n\n```sh\ncurl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n```\n\nWhat the script does, in order:\n1. Checks Node ≥ 20.\n2. `npm install -g memex-mvp` — on EACCES, sets `npm config set prefix ~/.npm-global`, appends PATH to `~/.zshrc`, retries.\n3. `memex-sync install` with `--auto-context yes` (Brian Chesky hook into `~/.claude/settings.json` — preserves other hooks).\n4. `memex-sync scan` — backfills existing history.\n5. `claude mcp add memex --scope user -- memex` if Claude Code CLI is detected.\n\nAfter the script finishes:\n- If the user is in **Claude Code (CLI)** → install is complete. Skip straight to step 6 (verification + restart). Also do step 5 (offer Telegram capture).\n- If the user is in **Cursor / Cline / Continue / Zed** → the npm install + daemon + auto-context + scan are done, but the GUI client's MCP config still needs the memex entry. **Skip step 1 (already installed)**, **skip step 3** (daemon already installed) and **skip step 4** (scan already ran). **Do step 2** (wire MCP into the GUI client's config), **step 5** (offer Telegram), and **step 6** (verify + restart).\n\nIf the script fails for any reason — non-zero exit, weird output, user uncomfortable piping curl to bash — fall back to the **Manual install** below.\n\nTo inspect what the script does first: `curl -fsSL https://memex.parallelclaw.ai/install.sh | less` (don't pipe to bash).\n\n## Manual install (if the fast path didn't fit)\n\nDo these in order. Show each command before running it. Stop and ask if anything fails or looks wrong.\n\n### 1. Install memex from npm\n\n```sh\nnpm install -g memex-mvp\n```\n\nIf you get `EACCES` (macOS system Node), **recommend Option B (permanent prefix fix) by default** and proceed unless the user explicitly chooses sudo.\n\nSay to the user:\n\n> \"Hit EACCES — your Node is installed in a system directory that npm can't write to without admin rights. Two fixes:\n>\n> **A)** Quick: `sudo npm install -g memex-mvp` — one-time, requires your password\n> **B)** Permanent fix: I'll move npm's install location to your home directory. After this, no `npm install -g` will ever ask for sudo again, for any package. Five commands, one-time.\n>\n> I recommend **B** — it's a permanent improvement that benefits all your future Node tools, not just memex. Proceed with B?\"\n\nIf the user agrees (or says anything like \"ok\", \"yes\", \"default\", \"go\", \"B\") — proceed with B without further questions:\n\n```sh\nmkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\nnpm install -g memex-mvp\n```\n\nIf the user **explicitly** picks A (or says \"sudo\", \"fast\", \"quick\"), use sudo:\n\n```sh\nsudo npm install -g memex-mvp\n```\n\nAfter the install completes, verify with `which memex` (should print an absolute path) and `memex --version` (should print the version).\n\n**Important if Option B was used + user already had memex from a prior sudo install:** the old sudo-installed copy in `/usr/local/lib/node_modules/memex-mvp/` is now orphaned (PATH prefers the new home install). Mention this once:\n\n> \"By the way, you have an older sudo-installed memex copy in `/usr/local/lib/`. It's harmless but takes ~60 MB. Clean it up when convenient: `sudo npm uninstall -g memex-mvp` — not urgent.\"\n\nDon't run that uninstall yourself — let the user decide when.\n\nIf `node` or `npm` are missing, STOP and tell the user to install Node.js (recommend nvm.sh or `brew install node`). Don't try to install Node yourself.\n\n**Verify:** `which memex` prints an absolute path; `memex-sync --help` runs without error.\n\n### 2. Wire memex into the MCP client\n\nCommon config locations:\n\n| Client       | Config file                                         |\n|--------------|-----------------------------------------------------|\n| Claude Code  | `~/.claude/config.json` (or platform equivalent)    |\n| Cursor       | `~/.cursor/mcp.json`                                |\n| Cline        | VS Code `settings.json` (`cline.mcpServers`)        |\n| Continue     | `~/.continue/config.json`                           |\n| Zed          | `~/.config/zed/settings.json` (`context_servers`)   |\n\nTell the user which one you've inferred and which file you'll edit. If unclear, ask.\n\nRead the existing config (if present). Show the user a diff before saving.\n\nGet the **absolute** path to the memex binary — GUI apps (Cursor, Cline, Claude Desktop) on macOS often don't inherit shell PATH, so a bare `\"command\": \"memex\"` fails with `spawn memex ENOENT`. Run:\n\n```sh\nwhich memex\n```\n\nCapture that path (e.g. `/Users/<you>/.npm-global/bin/memex` or `/usr/local/bin/memex`). If it's a shim, also run `realpath $(which memex)` to resolve to the real binary.\n\nMERGE this entry into `mcpServers` — never overwrite other servers the user has:\n\n```json\n{\n  \"mcpServers\": {\n    \"memex\": {\n      \"command\": \"<absolute path from which memex>\"\n    }\n  }\n}\n```\n\nOne path, no `args`. The published npm package wires up its own entry point.\n\nIf the config file doesn't exist, create the parent directory and write a minimal valid file with just memex.\n\n**Verify:** re-read the file after save; confirm `memex` entry is present and `command` is an absolute path.\n\n### 3. Turn on live auto-capture + auto-context (v0.8+)\n\n```sh\nmemex-sync install\n```\n\nDuring `memex-sync install`, you'll see a prompt:\n\n```\nAuto-context (Brian Chesky mode):\n  When you open Claude Code in a project, memex can inject 500-1500 tokens\n  of relevant context so Claude knows what you were doing — without you\n  having to ask. Adds a SessionStart hook to ~/.claude/settings.json.\n  Other hooks (e.g. gstack) are preserved.\n\n  Enable? [Y/n]\n```\n\n**Answer Y unless the user has stated privacy concerns** about Claude seeing context from their other AI conversations. Auto-context is the \"10/10 magic moment\" of memex — without it the install ships at base capability. Other hooks (gstack, custom) are preserved untouched.\n\nFor non-interactive flows (CI / scripts): pass `--auto-context yes` or `--yes`.\n\n```sh\nmemex-sync status\n```\n\n`status` should print \"daemon installed\", \"running (PID …)\", \"watching N sessions\".\n\n**Verify:** status output shows a non-zero PID. Also run `memex hook status` — should show `INSTALLED` if auto-context was accepted.\n\n### 4. Backfill existing history\n\nThe daemon only catches NEW sessions going forward. To index everything already on disk:\n\n```sh\nmemex-sync scan\n```\n\nThis walks `~/.claude/projects/`, Cowork sessions, Cursor `state.vscdb`, and any configured Obsidian vaults once, ingesting whatever exists.\n\nOptionally:\n```sh\nmemex-sync backfill-projects\n```\n\nTags older conversations with their `project_path` so `memex_list_projects` works on them.\n\n**Verify:** after scan, `memex-sync status` shows a non-zero \"ingested\" count.\n\n### 5. Offer Telegram-export capture (v0.10+)\n\nAfter the core install is done, **proactively** ask:\n\n> \"Memex can also remember your Telegram chats — work, family, group chats, whatever you want indexed. Want me to set that up too? It's about 2 minutes.\"\n\nIf yes, run `memex_telegram_check` (MCP tool) or `memex telegram check` (CLI). The result tells you the user's state and the next step. Walk them through:\n\n  - **No Telegram Desktop?** → Give the download URL from the check output. Wait for them to install + log in.\n  - **Logged in <24h ago?** → Tell them: \"Telegram blocks export for the first 24h. Wait ~X hours, then come back.\"\n  - **Ready to export?** → Show the click-path: open chat → ⋮ menu (top-right) → \"Export chat history\" → format HTML or JSON → Export.\n\nAfter the user exports, memex's daemon **auto-detects** the file in ~/Downloads/Telegram Desktop/ within ~7 seconds and stages it in `~/.memex/pending/`. Then:\n\n  - Call `memex_telegram_pending` to list staged exports (chat name, msg count, date range).\n  - **Present as a numbered list**, ask which to import. Accept indices, titles, or natural language (\"import family and work, skip bank\").\n  - Call `memex_telegram_import` with selected indices/titles. The chat is added to the allow-list — future re-exports auto-merge via UNIQUE(msg_id).\n  - For sensitive chats user doesn't want (Bank, Therapist, etc.), call `memex_telegram_skip`.\n\n**Optional — clickable native macOS banner (v0.10.4+):** memex can fire a macOS notification the moment an export is staged. Default OFF for privacy. If the user wants this:\n\n```sh\nbrew install terminal-notifier             # required for clickable banner\nmemex telegram notifications on            # enable; default: titles hidden\nmemex telegram notifications on --show-titles   # include chat names in banner\n```\n\nWhen enabled with `terminal-notifier`, clicking the banner opens (auto-detect priority): Claude Code CLI in a fresh Terminal tab → Claude Desktop → Terminal with `memex telegram pending`. The CLI launch path triggers the SessionStart hook → Brian Chesky moment. Override target: `memex telegram notifications target <auto|claude-cli|claude-desktop|terminal|none>`.\n\n**Other useful Telegram commands** (no MCP-tool wiring needed):\n\n```sh\nmemex telegram check          # diagnostic: Desktop? login age (24h)? watcher?\nmemex telegram open-pending   # one-shot: open pending list in best client\nmemex telegram mode auto      # auto-import allow-listed chats on re-export\nmemex telegram status         # decisions counts (allowed/skipped/blocked)\n```\n\n**Privacy is the core promise. Never auto-import. Always get explicit per-chat consent on the first round.**\n\nIf the user declines Telegram setup (\"not now\" / \"skip\"): say \"OK, I'll skip Telegram. You can run `memex telegram check` anytime later to start.\" Don't push.\n\n### 6. Tell the user what to do next\n\nTell the user to fully quit and reopen the MCP client (Cmd+Q on macOS) so it picks up the new memex tools.\n\nAfter restart, suggest they try any of:\n- \"show me what m\n\nArchive v1.3.0: 4 files, 15505 bytes\n\nFiles: examples.md (10628b), README.md (6845b), SKILL.md (17559b), _meta.json (132b)","readmeExcerpt":"Skill: Install memex — cross-AI memory Owner: sedelev Summary: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (loc... Tags: ai-memory:1.5.1, brian-chesky:1.5.1, chat-archive:1.5.1, claude-code:1.5.1, claude-cowork:1.5.1, cline:1.5.1, context-persistence:1.5.1, continue:1.5.1, cowork:1.5.1, cross-agent:1.5.1, curs","codeSnippets":[],"executableExamples":[{"language":"sh","snippet":"ls -d ~/.claude/projects 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Claude/local-agent-mode-sessions 2>/dev/null\n   ls -d ~/Library/Application\\ Support/Cursor 2>/dev/null\n   ls ~/.continue/config.json 2>/dev/null\n   ls -d ~/.config/zed 2>/dev/null"},{"language":"sh","snippet":"curl -fsSL https://memex.parallelclaw.ai/install.sh | bash"},{"language":"sh","snippet":"curl -fsSL https://memex.parallelclaw.ai/install.sh | bash"},{"language":"sh","snippet":"npm install -g memex-mvp"},{"language":"sh","snippet":"mkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\nnpm install -g memex-mvp"},{"language":"sh","snippet":"sudo npm install -g memex-mvp"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: install-memex\ndescription: Make Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever — one local SQLite corpus shared across all of them. Installs memex (local-first MCP server) in ~60 seconds via curl one-liner. Includes auto-capture daemon for Claude Code / Cowork / Cursor / Obsidian; v0.10 Telegram auto-detect (export from Desktop → memex stages it → AI proactively asks which to import, privacy-first per-chat consent); v0.8 SessionStart hook for the Brian Chesky moment (\"Claude already knows what you were doing\"); URL / Perplexity / AI chat share capture via memex_store_document. 18 MCP tools, no cloud, no account, verbatim storage. Use when the user says \"install memex\", \"set up memex\", \"add memory to my AI\", \"make my agent remember across sessions\", \"сохрани мои чаты\", or similar.\nversion: 1.5.1\nmetadata:\n  openclaw:\n    emoji: \"📚\"\n    homepage: https://memex.parallelclaw.ai\n    requires:\n      bins:\n        - node\n        - npm\n---\n\n# Install memex\n\n## ⚠ For ClawHub reviewers, security scanners, and curious users\n\nThis skill is an **installer for memex** — a local-first MCP memory server.\nStatic scanners flag several patterns as \"suspicious\"; every single one is\nintentional and necessary for installing a memory tool. Below is the full\nlist so a human reviewer (or the user) can verify legitimacy in one glance.\n\n**What the skill instructs the agent to do:**\n\n| Action | Why | Source-of-truth |\n|---|---|---|\n| `curl -fsSL https://memex.parallelclaw.ai/install.sh \\| bash` | Fast-path installer (the user can `\\| less` first to inspect) | [docs/install.sh](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh) — open-source bash, hosted on GitHub Pages |\n| `npm install -g memex-mvp` | Manual install (fallback if user declines the curl) | [npmjs.com/package/memex-mvp](https://www.npmjs.com/package/memex-mvp), source: [github.com/parallelclaw/memex-mvp](https://github.com/parallelclaw/memex-mvp) |\n| `echo 'export PATH=...' >> ~/.zshrc` | EACCES auto-fix — moves npm prefix to `~/.npm-global` so `npm install -g` works without sudo. **Idempotent** — re-running is safe. | Standard npm prefix workaround [docs.npmjs.com](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |\n| `sudo npm install -g memex-mvp` | Offered as Plan A on EACCES if user explicitly wants quick (not default — skill recommends the no-sudo prefix fix). Skill **never runs sudo without explicit user \"yes\"**. | — |\n| `memex-sync install` (LaunchAgent) | Registers a macOS LaunchAgent so memex daemon auto-starts on login. **The daemon itself is local-only**: it watches `~/.claude/projects/`, `~/Downloads/Telegram Desktop/`, etc., and writes to `~/.memex/data/memex.db`. Zero outbound network traffic. | LaunchAgent plist at `~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist` is human-readable |\n| Edit `~/.claude/settings.json`, `~/.cursor/mcp.json`, etc. | Adds the MCP-server entry so the use"},{"path":"README.md","content":"# 📚 Install memex — cross-AI memory in 2 minutes\n\n> One prompt sets up local-first AI memory across **Claude Code, Cowork, Cursor, Cline, Continue, and Zed** — plus Obsidian notes and Telegram chats. No cloud. No account. No data leaves your machine.\n\n## What this skill does\n\nAfter you drop the skill into your agent (`~/.claude/skills/` for Claude Code, or your client's equivalent), saying **\"install memex\"** triggers a guided installation:\n\n1. **Discovery** — read-only checks for which MCP client you're using and what AI data already exists on your machine\n2. **Fast path (v1.1+)** — `curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`: one hosted bash script does npm install (with EACCES auto-fix to `~/.npm-global`), daemon setup, v0.8 auto-context hook, history backfill, and `claude mcp add memex` if Claude Code CLI is on PATH. Idempotent.\n3. **Fallback: manual five-step** — if curl fails, the user declines, or the agent is inside a GUI client (Cursor/Cline/Continue/Zed) where the MCP config still needs editing: `npm install -g memex-mvp` → MCP config merge → `memex-sync install` → `memex-sync scan`.\n4. **MCP config merge** (only needed for GUI clients) — adds a single absolute-path `command` entry into your client's `mcpServers` config. Never overwrites your other servers.\n5. **Restart hint + verification commands** — including the v0.7+ CLI fallback (`memex overview`, `memex search \"foo\"`) so you can verify memex works even if MCP didn't wire up cleanly.\n\nEnd-to-end: **~60 seconds** via fast path, **~2 minutes** via manual flow, fully observable (agent shows each command before running).\n\n## What is memex?\n\nMemex is a **local-first MCP server** that captures every conversation you have with an AI — across **Claude Code, Cowork (including subagent transcripts), Cursor, Cline, Continue, Zed**, plus **Obsidian notes**, **Telegram chats**, and **web pages / AI chat shares** (v0.6+ via `memex_store_document` — agent fetches, memex stores verbatim) — into one searchable SQLite + FTS5 corpus.\n\nAny MCP-compatible agent can then query that corpus through 18 standard tools (`memex_search`, `memex_recent`, `memex_overview`, `memex_store_document`, the `memex_telegram_*` family for v0.10+ chat capture, …).\n\n| Pain                                            | Memex                                |\n|-------------------------------------------------|--------------------------------------|\n| Claude forgets every session                    | One unified history across all sessions, all clients |\n| Switching from Claude Code to Cursor = lost context | Cursor can read your Claude history (same SQLite DB) |\n| Cloud memory services hold your data hostage    | One `~/.memex/data/memex.db` file on your disk       |\n| Mem0 / Supermemory pricing per token            | 0 LLM calls on write — free at any scale             |\n| Vendor ban = lose everything                    | Your DB stays even if Claude blocks your account     |\n\n📦 npm: [memex-mvp](https://ww"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7073ez7kp7shjm06s5vr7thd85wezr\",\n  \"slug\": \"install-memex\",\n  \"version\": \"1.5.1\",\n  \"publishedAt\": 1779194396273\n}"},{"path":"examples.md","content":"# Example dialogues\n\nSample interactions when the user invokes this skill. These show typical happy paths and how the skill handles common edge cases.\n\n> **Note (v1.1+):** The skill now leads with the **fast-path one-liner** (`curl -fsSL https://memex.parallelclaw.ai/install.sh | bash`) after Discovery — see Example 0 below. The legacy five-step examples (1–5 below) stay as the fallback when the agent is inside a GUI client (Cursor / Cline / Continue / Zed — still need step 2 manually after the script), the user declines curl, or the script fails.\n\n---\n\n## Example 0 · Fast path on Claude Code CLI (v1.1+)\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Claude Code CLI. Let me run a quick discovery first.\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (14 sessions)\n> ✓ Found Cowork sessions (5 subagent transcripts)\n> ✗ Cursor data not found\n> ✗ Continue / Zed not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork**. v0.10+ also auto-detects Telegram Desktop exports — when you export a chat, I'll ask which to import.\n>\n> The fast path is a single hosted bash script that does **npm install (with EACCES auto-fix), daemon setup, Brian Chesky auto-context hook, history backfill, and `claude mcp add memex`** all in one go. Idempotent. Want me to run:\n>\n> ```sh\n> curl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n> ```\n>\n> **User:** ok\n>\n> **Agent:** [runs the curl command, streams output]\n>\n> ```\n> ▸ memex one-line installer\n> ▸ Node v20.11.1 — ok\n> ▸ Installing memex-mvp from npm...\n> ✓ memex 0.9.0 ready at /Users/you/.npm-global/bin/memex\n> ▸ Installing memex-sync (LaunchAgent + auto-context hook)...\n> ✓ daemon running (PID 41872)\n> ✓ Brian Chesky auto-context hook added to ~/.claude/settings.json\n> ▸ Backfilling history (memex-sync scan)...\n> ✓ 87 conversations indexed\n> ▸ Wiring MCP into Claude Code...\n> ✓ claude mcp add memex — done\n> ▸ All set. Quit Claude Code (Cmd+Q) and reopen any project. Memex will inject prior context before your first message.\n> ```\n>\n> All five steps done in ~25 seconds. Quit Claude Code (Cmd+Q) and reopen — when you open any project you've worked in, memex will inject relevant context before you even type. Try: `memex overview` from terminal to confirm.\n\n---\n\n## Example 1 · Happy path on a fresh Cursor install\n\n> **User:** install memex\n>\n> **Agent:** 👋 You're running inside Cursor. Let me run a quick discovery before any install actions...\n>\n> ```\n> ✓ Found Claude Code data at ~/.claude/projects/ (12 sessions)\n> ✓ Found Cowork sessions (4 subagent transcripts)\n> ✓ Cursor data found — I'll write MCP config to ~/.cursor/mcp.json\n> ✗ Continue config not found\n> ✗ Zed config not found\n> ```\n>\n> After install, memex will auto-index conversations from: **Claude Code, Cowork, Cursor**. v0.10+ Telegram capture also kicks in automatically — when you export a chat from Telegram Desktop, I'll ask which to import. If you also use Obsidian, we can wire "},{"path":"skill-card.md","content":"## Description:\n\nMake Claude, Cursor, Cline, Continue, and Zed remember every AI conversation forever by guiding installation of memex, a local-first MCP memory server backed by a shared SQLite corpus.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sedelev](https://clawhub.ai/user/sedelev)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and MCP-compatible agent users use this skill to install and configure memex so AI conversation history, selected chat exports, and related local data can be indexed and searched across supported clients.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The fast install path executes a remote installer and can modify local tool configuration.\n\nMitigation: Inspect the installer or use the documented manual path, review each command before execution, and confirm config changes before writing them.\n\nRisk: The installed memory service can index sensitive AI conversations, chat exports, and local files selected through supported capture flows.\n\nMitigation: Confirm which sources will be watched, import sensitive chats only with explicit consent, and skip sources that should not be available to future agents.\n\nRisk: Automatic context injection can surface prior conversation content to future agent sessions.\n\nMitigation: Decline or disable auto-context unless automatic memory injection is desired, and verify the installed hook or client behavior after setup.\n\nRisk: Using sudo for global npm installation can expand the impact of a bad or compromised package install.\n\nMitigation: Prefer a user-level npm prefix or another non-sudo Node package management setup.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sedelev/skills/install-memex)\n- [memex homepage](https://memex.parallelclaw.ai)\n- [memex npm package](https://www.npmjs.com/package/memex-mvp)\n- [memex source repository](https://github.com/parallelclaw/memex-mvp)\n- [memex installer script](https://github.com/parallelclaw/memex-mvp/blob/main/docs/install.sh)\n- [npm EACCES guidance](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces user-facing installation steps, consent prompts, verification commands, and MCP configuration guidance.]\n\n## Skill Version(s):\n\n1.5.1 (source: server release metadata and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2629,"uniquenessScore":30,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:45:08.779Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:50:13.652Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}