[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-mem0-onboard":3,"mdc--8zse3d-key":49,"related-repo-mem0-onboard":1263,"related-org-mem0-onboard":1353},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":44,"sourceUrl":47,"mdContent":48},"onboard","onboard projects with Mem0","Sets up mem0 for a new project including API key configuration, MCP authentication, project file import, and coding categories. Use on first run in a new project, when API key needs updating, or to re-run initial setup after configuration changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"mem0","Mem0","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmem0.png","mem0ai",[13,17,20,23],{"name":14,"slug":15,"type":16},"Configuration","configuration","tag",{"name":18,"slug":19,"type":16},"Onboarding","onboarding",{"name":21,"slug":22,"type":16},"Memory","memory",{"name":24,"slug":25,"type":16},"Agents","agents",60691,"https:\u002F\u002Fgithub.com\u002Fmem0ai\u002Fmem0","2026-07-13T06:13:07.958239",null,7066,[25,32,33,34,35,36,37,38,39,22,40,41,42,43],"ai","ai-agents","application","chatbots","chatgpt","genai","llm","long-term-memory","memory-management","python","rag","state-management",{"repoUrl":27,"stars":26,"forks":30,"topics":45,"description":46},[25,32,33,34,35,36,37,38,39,22,40,41,42,43],"Universal memory layer for AI Agents","https:\u002F\u002Fgithub.com\u002Fmem0ai\u002Fmem0\u002Ftree\u002FHEAD\u002Fintegrations\u002Fmem0-plugin\u002Fskills\u002Fonboard","---\nname: onboard\ndescription: Sets up mem0 for a new project including API key configuration, MCP authentication, project file import, and coding categories. Use on first run in a new project, when API key needs updating, or to re-run initial setup after configuration changes.\n---\n\n# Mem0 Onboarding Wizard\n\nRun this wizard to set up the mem0 plugin for the current project. Complete in ~60 seconds.\n\n**IMPORTANT: Execute steps strictly in order (0 → 1 → 2 → 3 → 4 → 5 → 6). Each step depends on the previous one. Do NOT run steps in parallel or skip ahead. Complete one step fully before starting the next.**\n\n## Step 0: Ensure mem0ai SDK is installed\n\nThe plugin installs the `mem0ai` Python SDK automatically on session start via a venv in `${CLAUDE_PLUGIN_DATA}\u002Fvenv`. If Step 5 (categories) fails with an import error, run:\n\n```bash\n\"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fensure_deps.sh\"\n```\n\nThis is silent and idempotent — safe to run anytime.\n\n## Step 1: Set up API key\n\nCheck if the API key is available from any source:\n\n```bash\n[ -n \"${MEM0_API_KEY:-${CLAUDE_PLUGIN_OPTION_API_KEY:-}}\" ] && echo \"SET\" || echo \"NOT_SET\"\n```\n\nIMPORTANT: Never run `echo $MEM0_API_KEY` — that prints the secret in plaintext to the conversation log.\n\n### If API key IS set (output is \"SET\")\n\nPrint: `- API key found.` and proceed to Step 2.\n\n### If API key is NOT set (output is \"NOT_SET\")\n\nGuide the user through API key setup. Show this message:\n\n```\nStep 1: Setting up API key.\n\n- API key not found. Let's set it up.\n\n  1. Get your API key from https:\u002F\u002Fapp.mem0.ai\u002Fdashboard\u002Fapi-keys\n\n  2. Choose ONE method:\n\n     Option A — CLI (shell profile):\n       echo 'export MEM0_API_KEY=\"m0-your-key-here\"' >> ~\u002F.zshrc\n       source ~\u002F.zshrc\n\n     Option B — Desktop app (local environment editor):\n       Click the environment dropdown next to the prompt box,\n       hover over \"Local\", click the gear icon, and add:\n         MEM0_API_KEY = m0-your-key-here\n       (Stored encrypted on your machine, applies to all local sessions)\n\n     Note: The Desktop app does NOT inherit custom env vars from\n     shell profiles — it only reads PATH. Use Option B for Desktop.\n\n  3. Verify:\n     [ -n \"${MEM0_API_KEY:-${CLAUDE_PLUGIN_OPTION_API_KEY:-}}\" ] && echo \"SET\" || echo \"NOT_SET\"\n```\n\nAfter the user confirms, re-run the verify command. If NOT_SET, repeat. If SET, proceed to Step 2.\n\n## Step 2: MCP server connection\n\nFirst, check if MCP tools are already available using ToolSearch with query `\"mem0 search_memories\"`. The exact tool name varies by install method (may be `mcp__mem0__search_memories` or `mcp__plugin_mem0_mem0__search_memories`).\n\n**If MCP tools ARE found:** Print `- MCP already connected.` and proceed to Step 3.\n\n**If MCP tools are NOT found:**\n\nThe MCP server authenticates using the `MEM0_API_KEY` set in Step 1. No OAuth or browser login is needed.\n\n1. Verify the API key is set (re-run the Step 1 check)\n2. Check the plugin is installed: run `\u002Fplugins` and confirm `mem0` appears\n3. Check the MCP server is listed: run `\u002Fmcp` and look for `mcp.mem0.ai`\n4. If the server shows an error, ask the user to restart Claude Code and run `\u002Fmem0:onboard` again\n5. If all checks pass but tools are still missing: \"Restart Claude Code and run `\u002Fmem0:onboard` again.\"\n\n**STOP here** — do not proceed without MCP tools.\n\n## Step 3: Verify connectivity and show identity\n\nCall `search_memories` with `query=\"project setup\"`, `filters={\"AND\": [{\"user_id\": \"\u003Cactive_user_id>\"}, {\"app_id\": \"\u003Cactive_project_id>\"}]}`, `top_k=1` to verify connectivity.\n\nPrint:\n```\n- Connected\n  user:    \u003Cuser_id>\n  project: \u003Cproject_id>\n  branch:  \u003Cbranch>\n```\n\nIf the search fails, troubleshoot the API key and MCP connection.\n\n## Step 4: Import project files\n\nProject files (CLAUDE.md, AGENTS.md, etc.) are automatically imported into mem0 when a session starts. This step verifies import status and triggers a re-import if needed.\n\n### 4a: Detect project files\n\n```bash\nfor f in CLAUDE.md AGENTS.md .cursorrules .windsurfrules mem0.md; do\n  [ -f \"$f\" ] && echo \"FOUND: $f ($(wc -c \u003C \"$f\") bytes)\"\ndone || true\n```\n\nIf no files found, print `- No project files found. Skipping import.` and proceed to Step 5.\n\n### 4b: Check and import\n\nRun auto_import in foreground to check status and import if needed:\n\n```bash\nMEM0_DEBUG=1 MEM0_CWD=\"$PWD\" python3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_import.py\"\n```\n\n### 4c: Report to user\n\nParse the auto_import output and print a user-friendly summary:\n\n- If output contains `Imported` lines:\n  ```\n  - Importing project files into mem0... done.\n    \u003CN> file(s) imported (\u003CM> chunks). These are stored verbatim for future context.\n  ```\n- If output contains only `skipping` lines:\n  ```\n  - Project files already in mem0 (imported during session start). Verified server-side.\n  ```\n- If output contains `re-importing`:\n  ```\n  - Project files were missing from mem0. Re-imported successfully.\n  ```\n- If output contains errors or no files were processed:\n  ```\n  - Project file import failed. Check API key and retry with: \u002Fmem0:onboard\n  ```\n\n## Step 5: Coding categories (automatic)\n\nCoding categories optimized for development workflows are installed **automatically in the background on session start** — the same way project files are imported (Step 4). The user is no longer asked. This step only verifies they are in place and applies them if the background run hasn't finished yet.\n\nThe installer is idempotent and self-caching: it compares existing categories against the proposed set, skips the API call when they already match, and skips all network calls entirely once applied for this account (re-applying only if the taxonomy changes). Safe to run anytime.\n\nRun it in the foreground to verify, using the plugin's venv python:\n\n```bash\nVENV_PY=\"${CLAUDE_PLUGIN_DATA}\u002Fvenv\u002Fbin\u002Fpython3\"\nif [ -x \"${VENV_PY}\" ]; then\n  MEM0_DEBUG=1 \"${VENV_PY}\" \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_setup_categories.py\"\nelse\n  MEM0_DEBUG=1 python3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_setup_categories.py\"\nfi\n```\n\nParse the output:\n- contains `Applied \u003CN> coding categories` → Print: `- Coding categories installed (\u003CN> categories).`\n- contains `already configured` → Print: `- Coding categories already configured.`\n- error or `SDK not ready` → run the dependency installer first, then retry:\n```bash\n\"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fensure_deps.sh\"\n```\nThen retry the categories script.\n\n## Step 6: Summary\n\nPrint a summary:\n```\n- Onboarding complete.\n  user_id:    \u003Cuser_id>\n  project_id: \u003Cproject_id> (app_id)\n  files:      \u003CN> found, \u003CM> imported\n  categories: \u003Cinstalled | already configured>\n\nMemory is now active for this project. Start working — mem0 will\nautomatically search relevant context and capture learnings.\n\nRun \u002Fmem0:tour to see what mem0 already knows about this project.\n```\n",{"data":50,"body":51},{"name":4,"description":6},{"type":52,"children":53},"root",[54,63,69,78,85,106,151,156,162,167,266,279,286,299,305,310,320,325,331,360,378,386,398,472,482,488,524,529,538,543,549,554,560,738,751,757,762,835,841,846,928,934,946,951,956,1146,1151,1203,1232,1237,1243,1248,1257],{"type":55,"tag":56,"props":57,"children":59},"element","h1",{"id":58},"mem0-onboarding-wizard",[60],{"type":61,"value":62},"text","Mem0 Onboarding Wizard",{"type":55,"tag":64,"props":65,"children":66},"p",{},[67],{"type":61,"value":68},"Run this wizard to set up the mem0 plugin for the current project. Complete in ~60 seconds.",{"type":55,"tag":64,"props":70,"children":71},{},[72],{"type":55,"tag":73,"props":74,"children":75},"strong",{},[76],{"type":61,"value":77},"IMPORTANT: Execute steps strictly in order (0 → 1 → 2 → 3 → 4 → 5 → 6). Each step depends on the previous one. Do NOT run steps in parallel or skip ahead. Complete one step fully before starting the next.",{"type":55,"tag":79,"props":80,"children":82},"h2",{"id":81},"step-0-ensure-mem0ai-sdk-is-installed",[83],{"type":61,"value":84},"Step 0: Ensure mem0ai SDK is installed",{"type":55,"tag":64,"props":86,"children":87},{},[88,90,96,98,104],{"type":61,"value":89},"The plugin installs the ",{"type":55,"tag":91,"props":92,"children":94},"code",{"className":93},[],[95],{"type":61,"value":11},{"type":61,"value":97}," Python SDK automatically on session start via a venv in ",{"type":55,"tag":91,"props":99,"children":101},{"className":100},[],[102],{"type":61,"value":103},"${CLAUDE_PLUGIN_DATA}\u002Fvenv",{"type":61,"value":105},". If Step 5 (categories) fails with an import error, run:",{"type":55,"tag":107,"props":108,"children":113},"pre",{"className":109,"code":110,"language":111,"meta":112,"style":112},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fensure_deps.sh\"\n","bash","",[114],{"type":55,"tag":91,"props":115,"children":116},{"__ignoreMap":112},[117],{"type":55,"tag":118,"props":119,"children":122},"span",{"class":120,"line":121},"line",1,[123,129,135,141,146],{"type":55,"tag":118,"props":124,"children":126},{"style":125},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[127],{"type":61,"value":128},"\"",{"type":55,"tag":118,"props":130,"children":132},{"style":131},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[133],{"type":61,"value":134},"${",{"type":55,"tag":118,"props":136,"children":138},{"style":137},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[139],{"type":61,"value":140},"CLAUDE_PLUGIN_ROOT",{"type":55,"tag":118,"props":142,"children":143},{"style":131},[144],{"type":61,"value":145},"}",{"type":55,"tag":118,"props":147,"children":148},{"style":125},[149],{"type":61,"value":150},"\u002Fscripts\u002Fensure_deps.sh\"\n",{"type":55,"tag":64,"props":152,"children":153},{},[154],{"type":61,"value":155},"This is silent and idempotent — safe to run anytime.",{"type":55,"tag":79,"props":157,"children":159},{"id":158},"step-1-set-up-api-key",[160],{"type":61,"value":161},"Step 1: Set up API key",{"type":55,"tag":64,"props":163,"children":164},{},[165],{"type":61,"value":166},"Check if the API key is available from any source:",{"type":55,"tag":107,"props":168,"children":170},{"className":109,"code":169,"language":111,"meta":112,"style":112},"[ -n \"${MEM0_API_KEY:-${CLAUDE_PLUGIN_OPTION_API_KEY:-}}\" ] && echo \"SET\" || echo \"NOT_SET\"\n",[171],{"type":55,"tag":91,"props":172,"children":173},{"__ignoreMap":112},[174],{"type":55,"tag":118,"props":175,"children":176},{"class":120,"line":121},[177,182,187,192,197,202,207,212,217,222,228,233,239,243,248,252,256,261],{"type":55,"tag":118,"props":178,"children":179},{"style":131},[180],{"type":61,"value":181},"[",{"type":55,"tag":118,"props":183,"children":184},{"style":131},[185],{"type":61,"value":186}," -n",{"type":55,"tag":118,"props":188,"children":189},{"style":131},[190],{"type":61,"value":191}," \"${",{"type":55,"tag":118,"props":193,"children":194},{"style":137},[195],{"type":61,"value":196},"MEM0_API_KEY",{"type":55,"tag":118,"props":198,"children":199},{"style":131},[200],{"type":61,"value":201},":-${",{"type":55,"tag":118,"props":203,"children":204},{"style":137},[205],{"type":61,"value":206},"CLAUDE_PLUGIN_OPTION_API_KEY",{"type":55,"tag":118,"props":208,"children":209},{"style":131},[210],{"type":61,"value":211},":-}}\"",{"type":55,"tag":118,"props":213,"children":214},{"style":131},[215],{"type":61,"value":216}," ]",{"type":55,"tag":118,"props":218,"children":219},{"style":131},[220],{"type":61,"value":221}," &&",{"type":55,"tag":118,"props":223,"children":225},{"style":224},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[226],{"type":61,"value":227}," echo",{"type":55,"tag":118,"props":229,"children":230},{"style":131},[231],{"type":61,"value":232}," \"",{"type":55,"tag":118,"props":234,"children":236},{"style":235},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[237],{"type":61,"value":238},"SET",{"type":55,"tag":118,"props":240,"children":241},{"style":131},[242],{"type":61,"value":128},{"type":55,"tag":118,"props":244,"children":245},{"style":131},[246],{"type":61,"value":247}," ||",{"type":55,"tag":118,"props":249,"children":250},{"style":224},[251],{"type":61,"value":227},{"type":55,"tag":118,"props":253,"children":254},{"style":131},[255],{"type":61,"value":232},{"type":55,"tag":118,"props":257,"children":258},{"style":235},[259],{"type":61,"value":260},"NOT_SET",{"type":55,"tag":118,"props":262,"children":263},{"style":131},[264],{"type":61,"value":265},"\"\n",{"type":55,"tag":64,"props":267,"children":268},{},[269,271,277],{"type":61,"value":270},"IMPORTANT: Never run ",{"type":55,"tag":91,"props":272,"children":274},{"className":273},[],[275],{"type":61,"value":276},"echo $MEM0_API_KEY",{"type":61,"value":278}," — that prints the secret in plaintext to the conversation log.",{"type":55,"tag":280,"props":281,"children":283},"h3",{"id":282},"if-api-key-is-set-output-is-set",[284],{"type":61,"value":285},"If API key IS set (output is \"SET\")",{"type":55,"tag":64,"props":287,"children":288},{},[289,291,297],{"type":61,"value":290},"Print: ",{"type":55,"tag":91,"props":292,"children":294},{"className":293},[],[295],{"type":61,"value":296},"- API key found.",{"type":61,"value":298}," and proceed to Step 2.",{"type":55,"tag":280,"props":300,"children":302},{"id":301},"if-api-key-is-not-set-output-is-not_set",[303],{"type":61,"value":304},"If API key is NOT set (output is \"NOT_SET\")",{"type":55,"tag":64,"props":306,"children":307},{},[308],{"type":61,"value":309},"Guide the user through API key setup. Show this message:",{"type":55,"tag":107,"props":311,"children":315},{"className":312,"code":314,"language":61},[313],"language-text","Step 1: Setting up API key.\n\n- API key not found. Let's set it up.\n\n  1. Get your API key from https:\u002F\u002Fapp.mem0.ai\u002Fdashboard\u002Fapi-keys\n\n  2. Choose ONE method:\n\n     Option A — CLI (shell profile):\n       echo 'export MEM0_API_KEY=\"m0-your-key-here\"' >> ~\u002F.zshrc\n       source ~\u002F.zshrc\n\n     Option B — Desktop app (local environment editor):\n       Click the environment dropdown next to the prompt box,\n       hover over \"Local\", click the gear icon, and add:\n         MEM0_API_KEY = m0-your-key-here\n       (Stored encrypted on your machine, applies to all local sessions)\n\n     Note: The Desktop app does NOT inherit custom env vars from\n     shell profiles — it only reads PATH. Use Option B for Desktop.\n\n  3. Verify:\n     [ -n \"${MEM0_API_KEY:-${CLAUDE_PLUGIN_OPTION_API_KEY:-}}\" ] && echo \"SET\" || echo \"NOT_SET\"\n",[316],{"type":55,"tag":91,"props":317,"children":318},{"__ignoreMap":112},[319],{"type":61,"value":314},{"type":55,"tag":64,"props":321,"children":322},{},[323],{"type":61,"value":324},"After the user confirms, re-run the verify command. If NOT_SET, repeat. If SET, proceed to Step 2.",{"type":55,"tag":79,"props":326,"children":328},{"id":327},"step-2-mcp-server-connection",[329],{"type":61,"value":330},"Step 2: MCP server connection",{"type":55,"tag":64,"props":332,"children":333},{},[334,336,342,344,350,352,358],{"type":61,"value":335},"First, check if MCP tools are already available using ToolSearch with query ",{"type":55,"tag":91,"props":337,"children":339},{"className":338},[],[340],{"type":61,"value":341},"\"mem0 search_memories\"",{"type":61,"value":343},". The exact tool name varies by install method (may be ",{"type":55,"tag":91,"props":345,"children":347},{"className":346},[],[348],{"type":61,"value":349},"mcp__mem0__search_memories",{"type":61,"value":351}," or ",{"type":55,"tag":91,"props":353,"children":355},{"className":354},[],[356],{"type":61,"value":357},"mcp__plugin_mem0_mem0__search_memories",{"type":61,"value":359},").",{"type":55,"tag":64,"props":361,"children":362},{},[363,368,370,376],{"type":55,"tag":73,"props":364,"children":365},{},[366],{"type":61,"value":367},"If MCP tools ARE found:",{"type":61,"value":369}," Print ",{"type":55,"tag":91,"props":371,"children":373},{"className":372},[],[374],{"type":61,"value":375},"- MCP already connected.",{"type":61,"value":377}," and proceed to Step 3.",{"type":55,"tag":64,"props":379,"children":380},{},[381],{"type":55,"tag":73,"props":382,"children":383},{},[384],{"type":61,"value":385},"If MCP tools are NOT found:",{"type":55,"tag":64,"props":387,"children":388},{},[389,391,396],{"type":61,"value":390},"The MCP server authenticates using the ",{"type":55,"tag":91,"props":392,"children":394},{"className":393},[],[395],{"type":61,"value":196},{"type":61,"value":397}," set in Step 1. No OAuth or browser login is needed.",{"type":55,"tag":399,"props":400,"children":401},"ol",{},[402,408,428,447,460],{"type":55,"tag":403,"props":404,"children":405},"li",{},[406],{"type":61,"value":407},"Verify the API key is set (re-run the Step 1 check)",{"type":55,"tag":403,"props":409,"children":410},{},[411,413,419,421,426],{"type":61,"value":412},"Check the plugin is installed: run ",{"type":55,"tag":91,"props":414,"children":416},{"className":415},[],[417],{"type":61,"value":418},"\u002Fplugins",{"type":61,"value":420}," and confirm ",{"type":55,"tag":91,"props":422,"children":424},{"className":423},[],[425],{"type":61,"value":8},{"type":61,"value":427}," appears",{"type":55,"tag":403,"props":429,"children":430},{},[431,433,439,441],{"type":61,"value":432},"Check the MCP server is listed: run ",{"type":55,"tag":91,"props":434,"children":436},{"className":435},[],[437],{"type":61,"value":438},"\u002Fmcp",{"type":61,"value":440}," and look for ",{"type":55,"tag":91,"props":442,"children":444},{"className":443},[],[445],{"type":61,"value":446},"mcp.mem0.ai",{"type":55,"tag":403,"props":448,"children":449},{},[450,452,458],{"type":61,"value":451},"If the server shows an error, ask the user to restart Claude Code and run ",{"type":55,"tag":91,"props":453,"children":455},{"className":454},[],[456],{"type":61,"value":457},"\u002Fmem0:onboard",{"type":61,"value":459}," again",{"type":55,"tag":403,"props":461,"children":462},{},[463,465,470],{"type":61,"value":464},"If all checks pass but tools are still missing: \"Restart Claude Code and run ",{"type":55,"tag":91,"props":466,"children":468},{"className":467},[],[469],{"type":61,"value":457},{"type":61,"value":471}," again.\"",{"type":55,"tag":64,"props":473,"children":474},{},[475,480],{"type":55,"tag":73,"props":476,"children":477},{},[478],{"type":61,"value":479},"STOP here",{"type":61,"value":481}," — do not proceed without MCP tools.",{"type":55,"tag":79,"props":483,"children":485},{"id":484},"step-3-verify-connectivity-and-show-identity",[486],{"type":61,"value":487},"Step 3: Verify connectivity and show identity",{"type":55,"tag":64,"props":489,"children":490},{},[491,493,499,501,507,509,515,516,522],{"type":61,"value":492},"Call ",{"type":55,"tag":91,"props":494,"children":496},{"className":495},[],[497],{"type":61,"value":498},"search_memories",{"type":61,"value":500}," with ",{"type":55,"tag":91,"props":502,"children":504},{"className":503},[],[505],{"type":61,"value":506},"query=\"project setup\"",{"type":61,"value":508},", ",{"type":55,"tag":91,"props":510,"children":512},{"className":511},[],[513],{"type":61,"value":514},"filters={\"AND\": [{\"user_id\": \"\u003Cactive_user_id>\"}, {\"app_id\": \"\u003Cactive_project_id>\"}]}",{"type":61,"value":508},{"type":55,"tag":91,"props":517,"children":519},{"className":518},[],[520],{"type":61,"value":521},"top_k=1",{"type":61,"value":523}," to verify connectivity.",{"type":55,"tag":64,"props":525,"children":526},{},[527],{"type":61,"value":528},"Print:",{"type":55,"tag":107,"props":530,"children":533},{"className":531,"code":532,"language":61},[313],"- Connected\n  user:    \u003Cuser_id>\n  project: \u003Cproject_id>\n  branch:  \u003Cbranch>\n",[534],{"type":55,"tag":91,"props":535,"children":536},{"__ignoreMap":112},[537],{"type":61,"value":532},{"type":55,"tag":64,"props":539,"children":540},{},[541],{"type":61,"value":542},"If the search fails, troubleshoot the API key and MCP connection.",{"type":55,"tag":79,"props":544,"children":546},{"id":545},"step-4-import-project-files",[547],{"type":61,"value":548},"Step 4: Import project files",{"type":55,"tag":64,"props":550,"children":551},{},[552],{"type":61,"value":553},"Project files (CLAUDE.md, AGENTS.md, etc.) are automatically imported into mem0 when a session starts. This step verifies import status and triggers a re-import if needed.",{"type":55,"tag":280,"props":555,"children":557},{"id":556},"_4a-detect-project-files",[558],{"type":61,"value":559},"4a: Detect project files",{"type":55,"tag":107,"props":561,"children":563},{"className":109,"code":562,"language":111,"meta":112,"style":112},"for f in CLAUDE.md AGENTS.md .cursorrules .windsurfrules mem0.md; do\n  [ -f \"$f\" ] && echo \"FOUND: $f ($(wc -c \u003C \"$f\") bytes)\"\ndone || true\n",[564],{"type":55,"tag":91,"props":565,"children":566},{"__ignoreMap":112},[567,621,720],{"type":55,"tag":118,"props":568,"children":569},{"class":120,"line":121},[570,576,581,586,591,596,601,606,611,616],{"type":55,"tag":118,"props":571,"children":573},{"style":572},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[574],{"type":61,"value":575},"for",{"type":55,"tag":118,"props":577,"children":578},{"style":137},[579],{"type":61,"value":580}," f ",{"type":55,"tag":118,"props":582,"children":583},{"style":572},[584],{"type":61,"value":585},"in",{"type":55,"tag":118,"props":587,"children":588},{"style":235},[589],{"type":61,"value":590}," CLAUDE.md",{"type":55,"tag":118,"props":592,"children":593},{"style":235},[594],{"type":61,"value":595}," AGENTS.md",{"type":55,"tag":118,"props":597,"children":598},{"style":235},[599],{"type":61,"value":600}," .cursorrules",{"type":55,"tag":118,"props":602,"children":603},{"style":235},[604],{"type":61,"value":605}," .windsurfrules",{"type":55,"tag":118,"props":607,"children":608},{"style":235},[609],{"type":61,"value":610}," mem0.md",{"type":55,"tag":118,"props":612,"children":613},{"style":131},[614],{"type":61,"value":615},";",{"type":55,"tag":118,"props":617,"children":618},{"style":572},[619],{"type":61,"value":620}," do\n",{"type":55,"tag":118,"props":622,"children":624},{"class":120,"line":623},2,[625,630,635,639,644,648,652,656,660,664,669,673,678,683,688,693,698,702,706,711,716],{"type":55,"tag":118,"props":626,"children":627},{"style":131},[628],{"type":61,"value":629},"  [",{"type":55,"tag":118,"props":631,"children":632},{"style":131},[633],{"type":61,"value":634}," -f",{"type":55,"tag":118,"props":636,"children":637},{"style":131},[638],{"type":61,"value":232},{"type":55,"tag":118,"props":640,"children":641},{"style":137},[642],{"type":61,"value":643},"$f",{"type":55,"tag":118,"props":645,"children":646},{"style":131},[647],{"type":61,"value":128},{"type":55,"tag":118,"props":649,"children":650},{"style":131},[651],{"type":61,"value":216},{"type":55,"tag":118,"props":653,"children":654},{"style":131},[655],{"type":61,"value":221},{"type":55,"tag":118,"props":657,"children":658},{"style":224},[659],{"type":61,"value":227},{"type":55,"tag":118,"props":661,"children":662},{"style":131},[663],{"type":61,"value":232},{"type":55,"tag":118,"props":665,"children":666},{"style":235},[667],{"type":61,"value":668},"FOUND: ",{"type":55,"tag":118,"props":670,"children":671},{"style":137},[672],{"type":61,"value":643},{"type":55,"tag":118,"props":674,"children":675},{"style":235},[676],{"type":61,"value":677}," (",{"type":55,"tag":118,"props":679,"children":680},{"style":131},[681],{"type":61,"value":682},"$(",{"type":55,"tag":118,"props":684,"children":685},{"style":125},[686],{"type":61,"value":687},"wc",{"type":55,"tag":118,"props":689,"children":690},{"style":235},[691],{"type":61,"value":692}," -c ",{"type":55,"tag":118,"props":694,"children":695},{"style":131},[696],{"type":61,"value":697},"\u003C",{"type":55,"tag":118,"props":699,"children":700},{"style":131},[701],{"type":61,"value":232},{"type":55,"tag":118,"props":703,"children":704},{"style":137},[705],{"type":61,"value":643},{"type":55,"tag":118,"props":707,"children":708},{"style":131},[709],{"type":61,"value":710},"\")",{"type":55,"tag":118,"props":712,"children":713},{"style":235},[714],{"type":61,"value":715}," bytes)",{"type":55,"tag":118,"props":717,"children":718},{"style":131},[719],{"type":61,"value":265},{"type":55,"tag":118,"props":721,"children":723},{"class":120,"line":722},3,[724,729,733],{"type":55,"tag":118,"props":725,"children":726},{"style":572},[727],{"type":61,"value":728},"done",{"type":55,"tag":118,"props":730,"children":731},{"style":131},[732],{"type":61,"value":247},{"type":55,"tag":118,"props":734,"children":735},{"style":224},[736],{"type":61,"value":737}," true\n",{"type":55,"tag":64,"props":739,"children":740},{},[741,743,749],{"type":61,"value":742},"If no files found, print ",{"type":55,"tag":91,"props":744,"children":746},{"className":745},[],[747],{"type":61,"value":748},"- No project files found. Skipping import.",{"type":61,"value":750}," and proceed to Step 5.",{"type":55,"tag":280,"props":752,"children":754},{"id":753},"_4b-check-and-import",[755],{"type":61,"value":756},"4b: Check and import",{"type":55,"tag":64,"props":758,"children":759},{},[760],{"type":61,"value":761},"Run auto_import in foreground to check status and import if needed:",{"type":55,"tag":107,"props":763,"children":765},{"className":109,"code":764,"language":111,"meta":112,"style":112},"MEM0_DEBUG=1 MEM0_CWD=\"$PWD\" python3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_import.py\"\n",[766],{"type":55,"tag":91,"props":767,"children":768},{"__ignoreMap":112},[769],{"type":55,"tag":118,"props":770,"children":771},{"class":120,"line":121},[772,777,782,787,792,796,800,805,809,814,818,822,826,831],{"type":55,"tag":118,"props":773,"children":774},{"style":137},[775],{"type":61,"value":776},"MEM0_DEBUG",{"type":55,"tag":118,"props":778,"children":779},{"style":131},[780],{"type":61,"value":781},"=",{"type":55,"tag":118,"props":783,"children":784},{"style":235},[785],{"type":61,"value":786},"1",{"type":55,"tag":118,"props":788,"children":789},{"style":137},[790],{"type":61,"value":791}," MEM0_CWD",{"type":55,"tag":118,"props":793,"children":794},{"style":131},[795],{"type":61,"value":781},{"type":55,"tag":118,"props":797,"children":798},{"style":131},[799],{"type":61,"value":128},{"type":55,"tag":118,"props":801,"children":802},{"style":137},[803],{"type":61,"value":804},"$PWD",{"type":55,"tag":118,"props":806,"children":807},{"style":131},[808],{"type":61,"value":128},{"type":55,"tag":118,"props":810,"children":811},{"style":125},[812],{"type":61,"value":813}," python3",{"type":55,"tag":118,"props":815,"children":816},{"style":131},[817],{"type":61,"value":191},{"type":55,"tag":118,"props":819,"children":820},{"style":137},[821],{"type":61,"value":140},{"type":55,"tag":118,"props":823,"children":824},{"style":131},[825],{"type":61,"value":145},{"type":55,"tag":118,"props":827,"children":828},{"style":235},[829],{"type":61,"value":830},"\u002Fscripts\u002Fauto_import.py",{"type":55,"tag":118,"props":832,"children":833},{"style":131},[834],{"type":61,"value":265},{"type":55,"tag":280,"props":836,"children":838},{"id":837},"_4c-report-to-user",[839],{"type":61,"value":840},"4c: Report to user",{"type":55,"tag":64,"props":842,"children":843},{},[844],{"type":61,"value":845},"Parse the auto_import output and print a user-friendly summary:",{"type":55,"tag":847,"props":848,"children":849},"ul",{},[850,872,893,914],{"type":55,"tag":403,"props":851,"children":852},{},[853,855,861,863],{"type":61,"value":854},"If output contains ",{"type":55,"tag":91,"props":856,"children":858},{"className":857},[],[859],{"type":61,"value":860},"Imported",{"type":61,"value":862}," lines:\n",{"type":55,"tag":107,"props":864,"children":867},{"className":865,"code":866,"language":61},[313],"- Importing project files into mem0... done.\n  \u003CN> file(s) imported (\u003CM> chunks). These are stored verbatim for future context.\n",[868],{"type":55,"tag":91,"props":869,"children":870},{"__ignoreMap":112},[871],{"type":61,"value":866},{"type":55,"tag":403,"props":873,"children":874},{},[875,877,883,884],{"type":61,"value":876},"If output contains only ",{"type":55,"tag":91,"props":878,"children":880},{"className":879},[],[881],{"type":61,"value":882},"skipping",{"type":61,"value":862},{"type":55,"tag":107,"props":885,"children":888},{"className":886,"code":887,"language":61},[313],"- Project files already in mem0 (imported during session start). Verified server-side.\n",[889],{"type":55,"tag":91,"props":890,"children":891},{"__ignoreMap":112},[892],{"type":61,"value":887},{"type":55,"tag":403,"props":894,"children":895},{},[896,897,903,905],{"type":61,"value":854},{"type":55,"tag":91,"props":898,"children":900},{"className":899},[],[901],{"type":61,"value":902},"re-importing",{"type":61,"value":904},":\n",{"type":55,"tag":107,"props":906,"children":909},{"className":907,"code":908,"language":61},[313],"- Project files were missing from mem0. Re-imported successfully.\n",[910],{"type":55,"tag":91,"props":911,"children":912},{"__ignoreMap":112},[913],{"type":61,"value":908},{"type":55,"tag":403,"props":915,"children":916},{},[917,919],{"type":61,"value":918},"If output contains errors or no files were processed:\n",{"type":55,"tag":107,"props":920,"children":923},{"className":921,"code":922,"language":61},[313],"- Project file import failed. Check API key and retry with: \u002Fmem0:onboard\n",[924],{"type":55,"tag":91,"props":925,"children":926},{"__ignoreMap":112},[927],{"type":61,"value":922},{"type":55,"tag":79,"props":929,"children":931},{"id":930},"step-5-coding-categories-automatic",[932],{"type":61,"value":933},"Step 5: Coding categories (automatic)",{"type":55,"tag":64,"props":935,"children":936},{},[937,939,944],{"type":61,"value":938},"Coding categories optimized for development workflows are installed ",{"type":55,"tag":73,"props":940,"children":941},{},[942],{"type":61,"value":943},"automatically in the background on session start",{"type":61,"value":945}," — the same way project files are imported (Step 4). The user is no longer asked. This step only verifies they are in place and applies them if the background run hasn't finished yet.",{"type":55,"tag":64,"props":947,"children":948},{},[949],{"type":61,"value":950},"The installer is idempotent and self-caching: it compares existing categories against the proposed set, skips the API call when they already match, and skips all network calls entirely once applied for this account (re-applying only if the taxonomy changes). Safe to run anytime.",{"type":55,"tag":64,"props":952,"children":953},{},[954],{"type":61,"value":955},"Run it in the foreground to verify, using the plugin's venv python:",{"type":55,"tag":107,"props":957,"children":959},{"className":109,"code":958,"language":111,"meta":112,"style":112},"VENV_PY=\"${CLAUDE_PLUGIN_DATA}\u002Fvenv\u002Fbin\u002Fpython3\"\nif [ -x \"${VENV_PY}\" ]; then\n  MEM0_DEBUG=1 \"${VENV_PY}\" \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_setup_categories.py\"\nelse\n  MEM0_DEBUG=1 python3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fauto_setup_categories.py\"\nfi\n",[960],{"type":55,"tag":91,"props":961,"children":962},{"__ignoreMap":112},[963,998,1039,1088,1097,1137],{"type":55,"tag":118,"props":964,"children":965},{"class":120,"line":121},[966,971,975,980,985,989,994],{"type":55,"tag":118,"props":967,"children":968},{"style":137},[969],{"type":61,"value":970},"VENV_PY",{"type":55,"tag":118,"props":972,"children":973},{"style":131},[974],{"type":61,"value":781},{"type":55,"tag":118,"props":976,"children":977},{"style":131},[978],{"type":61,"value":979},"\"${",{"type":55,"tag":118,"props":981,"children":982},{"style":137},[983],{"type":61,"value":984},"CLAUDE_PLUGIN_DATA",{"type":55,"tag":118,"props":986,"children":987},{"style":131},[988],{"type":61,"value":145},{"type":55,"tag":118,"props":990,"children":991},{"style":235},[992],{"type":61,"value":993},"\u002Fvenv\u002Fbin\u002Fpython3",{"type":55,"tag":118,"props":995,"children":996},{"style":131},[997],{"type":61,"value":265},{"type":55,"tag":118,"props":999,"children":1000},{"class":120,"line":623},[1001,1006,1011,1016,1020,1024,1029,1034],{"type":55,"tag":118,"props":1002,"children":1003},{"style":572},[1004],{"type":61,"value":1005},"if",{"type":55,"tag":118,"props":1007,"children":1008},{"style":131},[1009],{"type":61,"value":1010}," [",{"type":55,"tag":118,"props":1012,"children":1013},{"style":131},[1014],{"type":61,"value":1015}," -x",{"type":55,"tag":118,"props":1017,"children":1018},{"style":131},[1019],{"type":61,"value":191},{"type":55,"tag":118,"props":1021,"children":1022},{"style":137},[1023],{"type":61,"value":970},{"type":55,"tag":118,"props":1025,"children":1026},{"style":131},[1027],{"type":61,"value":1028},"}\"",{"type":55,"tag":118,"props":1030,"children":1031},{"style":131},[1032],{"type":61,"value":1033}," ];",{"type":55,"tag":118,"props":1035,"children":1036},{"style":572},[1037],{"type":61,"value":1038}," then\n",{"type":55,"tag":118,"props":1040,"children":1041},{"class":120,"line":722},[1042,1047,1051,1055,1059,1063,1067,1071,1075,1079,1084],{"type":55,"tag":118,"props":1043,"children":1044},{"style":137},[1045],{"type":61,"value":1046},"  MEM0_DEBUG",{"type":55,"tag":118,"props":1048,"children":1049},{"style":131},[1050],{"type":61,"value":781},{"type":55,"tag":118,"props":1052,"children":1053},{"style":235},[1054],{"type":61,"value":786},{"type":55,"tag":118,"props":1056,"children":1057},{"style":131},[1058],{"type":61,"value":191},{"type":55,"tag":118,"props":1060,"children":1061},{"style":137},[1062],{"type":61,"value":970},{"type":55,"tag":118,"props":1064,"children":1065},{"style":131},[1066],{"type":61,"value":1028},{"type":55,"tag":118,"props":1068,"children":1069},{"style":131},[1070],{"type":61,"value":191},{"type":55,"tag":118,"props":1072,"children":1073},{"style":137},[1074],{"type":61,"value":140},{"type":55,"tag":118,"props":1076,"children":1077},{"style":131},[1078],{"type":61,"value":145},{"type":55,"tag":118,"props":1080,"children":1081},{"style":235},[1082],{"type":61,"value":1083},"\u002Fscripts\u002Fauto_setup_categories.py",{"type":55,"tag":118,"props":1085,"children":1086},{"style":131},[1087],{"type":61,"value":265},{"type":55,"tag":118,"props":1089,"children":1091},{"class":120,"line":1090},4,[1092],{"type":55,"tag":118,"props":1093,"children":1094},{"style":572},[1095],{"type":61,"value":1096},"else\n",{"type":55,"tag":118,"props":1098,"children":1100},{"class":120,"line":1099},5,[1101,1105,1109,1113,1117,1121,1125,1129,1133],{"type":55,"tag":118,"props":1102,"children":1103},{"style":137},[1104],{"type":61,"value":1046},{"type":55,"tag":118,"props":1106,"children":1107},{"style":131},[1108],{"type":61,"value":781},{"type":55,"tag":118,"props":1110,"children":1111},{"style":235},[1112],{"type":61,"value":786},{"type":55,"tag":118,"props":1114,"children":1115},{"style":125},[1116],{"type":61,"value":813},{"type":55,"tag":118,"props":1118,"children":1119},{"style":131},[1120],{"type":61,"value":191},{"type":55,"tag":118,"props":1122,"children":1123},{"style":137},[1124],{"type":61,"value":140},{"type":55,"tag":118,"props":1126,"children":1127},{"style":131},[1128],{"type":61,"value":145},{"type":55,"tag":118,"props":1130,"children":1131},{"style":235},[1132],{"type":61,"value":1083},{"type":55,"tag":118,"props":1134,"children":1135},{"style":131},[1136],{"type":61,"value":265},{"type":55,"tag":118,"props":1138,"children":1140},{"class":120,"line":1139},6,[1141],{"type":55,"tag":118,"props":1142,"children":1143},{"style":572},[1144],{"type":61,"value":1145},"fi\n",{"type":55,"tag":64,"props":1147,"children":1148},{},[1149],{"type":61,"value":1150},"Parse the output:",{"type":55,"tag":847,"props":1152,"children":1153},{},[1154,1173,1190],{"type":55,"tag":403,"props":1155,"children":1156},{},[1157,1159,1165,1167],{"type":61,"value":1158},"contains ",{"type":55,"tag":91,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":61,"value":1164},"Applied \u003CN> coding categories",{"type":61,"value":1166}," → Print: ",{"type":55,"tag":91,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":61,"value":1172},"- Coding categories installed (\u003CN> categories).",{"type":55,"tag":403,"props":1174,"children":1175},{},[1176,1177,1183,1184],{"type":61,"value":1158},{"type":55,"tag":91,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":61,"value":1182},"already configured",{"type":61,"value":1166},{"type":55,"tag":91,"props":1185,"children":1187},{"className":1186},[],[1188],{"type":61,"value":1189},"- Coding categories already configured.",{"type":55,"tag":403,"props":1191,"children":1192},{},[1193,1195,1201],{"type":61,"value":1194},"error or ",{"type":55,"tag":91,"props":1196,"children":1198},{"className":1197},[],[1199],{"type":61,"value":1200},"SDK not ready",{"type":61,"value":1202}," → run the dependency installer first, then retry:",{"type":55,"tag":107,"props":1204,"children":1205},{"className":109,"code":110,"language":111,"meta":112,"style":112},[1206],{"type":55,"tag":91,"props":1207,"children":1208},{"__ignoreMap":112},[1209],{"type":55,"tag":118,"props":1210,"children":1211},{"class":120,"line":121},[1212,1216,1220,1224,1228],{"type":55,"tag":118,"props":1213,"children":1214},{"style":125},[1215],{"type":61,"value":128},{"type":55,"tag":118,"props":1217,"children":1218},{"style":131},[1219],{"type":61,"value":134},{"type":55,"tag":118,"props":1221,"children":1222},{"style":137},[1223],{"type":61,"value":140},{"type":55,"tag":118,"props":1225,"children":1226},{"style":131},[1227],{"type":61,"value":145},{"type":55,"tag":118,"props":1229,"children":1230},{"style":125},[1231],{"type":61,"value":150},{"type":55,"tag":64,"props":1233,"children":1234},{},[1235],{"type":61,"value":1236},"Then retry the categories script.",{"type":55,"tag":79,"props":1238,"children":1240},{"id":1239},"step-6-summary",[1241],{"type":61,"value":1242},"Step 6: Summary",{"type":55,"tag":64,"props":1244,"children":1245},{},[1246],{"type":61,"value":1247},"Print a summary:",{"type":55,"tag":107,"props":1249,"children":1252},{"className":1250,"code":1251,"language":61},[313],"- Onboarding complete.\n  user_id:    \u003Cuser_id>\n  project_id: \u003Cproject_id> (app_id)\n  files:      \u003CN> found, \u003CM> imported\n  categories: \u003Cinstalled | already configured>\n\nMemory is now active for this project. Start working — mem0 will\nautomatically search relevant context and capture learnings.\n\nRun \u002Fmem0:tour to see what mem0 already knows about this project.\n",[1253],{"type":55,"tag":91,"props":1254,"children":1255},{"__ignoreMap":112},[1256],{"type":61,"value":1251},{"type":55,"tag":1258,"props":1259,"children":1260},"style",{},[1261],{"type":61,"value":1262},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1264,"total":1352},[1265,1277,1289,1303,1317,1331,1343],{"slug":1266,"name":1266,"fn":1267,"description":1268,"org":1269,"tags":1270,"stars":26,"repoUrl":27,"updatedAt":1276},"context-loader","load project context from Mem0","Searches and injects relevant memories into context before starting work on a task. Use when beginning a new task, switching context, or when project history, past decisions, or coding conventions need to be loaded.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1271,1272,1275],{"name":24,"slug":25,"type":16},{"name":1273,"slug":1274,"type":16},"Context","context",{"name":21,"slug":22,"type":16},"2026-07-13T06:13:15.682218",{"slug":1278,"name":1278,"fn":1279,"description":1280,"org":1281,"tags":1282,"stars":26,"repoUrl":27,"updatedAt":1288},"dream","consolidate and prune stored memories","Consolidates stored memories by merging duplicates, resolving contradictions, and pruning stale entries. Use when memory count is high, search results feel noisy or repetitive, or periodic cleanup is needed to maintain memory quality.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1283,1284,1287],{"name":24,"slug":25,"type":16},{"name":1285,"slug":1286,"type":16},"Data Cleaning","data-cleaning",{"name":21,"slug":22,"type":16},"2026-07-13T06:12:54.000421",{"slug":1290,"name":1290,"fn":1291,"description":1292,"org":1293,"tags":1294,"stars":26,"repoUrl":27,"updatedAt":1302},"export","export project memories to Markdown files","Exports all project memories to a portable Markdown file for backup or migration. Use when backing up memories, migrating to another project, sharing memory state with teammates, or archiving before cleanup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1295,1298,1299],{"name":1296,"slug":1297,"type":16},"Backup","backup",{"name":21,"slug":22,"type":16},{"name":1300,"slug":1301,"type":16},"Migration","migration","2026-07-13T06:13:05.091831",{"slug":1304,"name":1304,"fn":1305,"description":1306,"org":1307,"tags":1308,"stars":26,"repoUrl":27,"updatedAt":1316},"forget","delete outdated or incorrect memories","Deletes memories by search query or memory ID with confirmation before removal. Use when removing outdated decisions, incorrect memories, sensitive data, or cleaning up after experiments. Also handles undo of recent additions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1309,1312,1313],{"name":1310,"slug":1311,"type":16},"Maintenance","maintenance",{"name":21,"slug":22,"type":16},{"name":1314,"slug":1315,"type":16},"Privacy","privacy","2026-07-13T06:13:00.862899",{"slug":1318,"name":1318,"fn":1319,"description":1320,"org":1321,"tags":1322,"stars":26,"repoUrl":27,"updatedAt":1330},"health","diagnose Mem0 connectivity and health","Diagnoses mem0 connectivity, API key validity, and memory read\u002Fwrite functionality. Use when memory operations fail, searches return empty, add_memory errors occur, MCP connection drops, or to verify the plugin is working correctly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1323,1326,1327],{"name":1324,"slug":1325,"type":16},"Debugging","debugging",{"name":21,"slug":22,"type":16},{"name":1328,"slug":1329,"type":16},"Monitoring","monitoring","2026-07-13T06:13:06.569475",{"slug":1332,"name":1332,"fn":1333,"description":1334,"org":1335,"tags":1336,"stars":26,"repoUrl":27,"updatedAt":1342},"import","import project memories from Markdown files","Imports memories from an exported Markdown file or MEMORY.md into the current project. Use when migrating from another project, restoring from backup, importing Claude Code native MEMORY.md content, or setting up a new project with existing knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1337,1340,1341],{"name":1338,"slug":1339,"type":16},"Markdown","markdown",{"name":21,"slug":22,"type":16},{"name":1300,"slug":1301,"type":16},"2026-07-13T06:12:59.389494",{"slug":1344,"name":1344,"fn":1345,"description":1346,"org":1347,"tags":1348,"stars":26,"repoUrl":27,"updatedAt":1351},"list-projects","list projects with stored memories","Lists all projects with stored memories for the current user, showing memory counts and last activity dates. Use when checking which projects have memories, comparing memory distribution across repos, or finding a specific project scope.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1349,1350],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},"2026-07-13T06:13:27.80043",23,{"items":1354,"total":1352},[1355,1361,1367,1373,1379,1385,1391,1396,1407,1421,1433,1443],{"slug":1266,"name":1266,"fn":1267,"description":1268,"org":1356,"tags":1357,"stars":26,"repoUrl":27,"updatedAt":1276},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1358,1359,1360],{"name":24,"slug":25,"type":16},{"name":1273,"slug":1274,"type":16},{"name":21,"slug":22,"type":16},{"slug":1278,"name":1278,"fn":1279,"description":1280,"org":1362,"tags":1363,"stars":26,"repoUrl":27,"updatedAt":1288},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1364,1365,1366],{"name":24,"slug":25,"type":16},{"name":1285,"slug":1286,"type":16},{"name":21,"slug":22,"type":16},{"slug":1290,"name":1290,"fn":1291,"description":1292,"org":1368,"tags":1369,"stars":26,"repoUrl":27,"updatedAt":1302},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1370,1371,1372],{"name":1296,"slug":1297,"type":16},{"name":21,"slug":22,"type":16},{"name":1300,"slug":1301,"type":16},{"slug":1304,"name":1304,"fn":1305,"description":1306,"org":1374,"tags":1375,"stars":26,"repoUrl":27,"updatedAt":1316},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1376,1377,1378],{"name":1310,"slug":1311,"type":16},{"name":21,"slug":22,"type":16},{"name":1314,"slug":1315,"type":16},{"slug":1318,"name":1318,"fn":1319,"description":1320,"org":1380,"tags":1381,"stars":26,"repoUrl":27,"updatedAt":1330},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1382,1383,1384],{"name":1324,"slug":1325,"type":16},{"name":21,"slug":22,"type":16},{"name":1328,"slug":1329,"type":16},{"slug":1332,"name":1332,"fn":1333,"description":1334,"org":1386,"tags":1387,"stars":26,"repoUrl":27,"updatedAt":1342},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1388,1389,1390],{"name":1338,"slug":1339,"type":16},{"name":21,"slug":22,"type":16},{"name":1300,"slug":1301,"type":16},{"slug":1344,"name":1344,"fn":1345,"description":1346,"org":1392,"tags":1393,"stars":26,"repoUrl":27,"updatedAt":1351},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1394,1395],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"slug":8,"name":8,"fn":1397,"description":1398,"org":1399,"tags":1400,"stars":26,"repoUrl":27,"updatedAt":1406},"add persistent memory to AI applications","Mem0 Platform SDK for adding persistent memory to AI applications. TRIGGER when: user mentions \"mem0\", \"MemoryClient\", \"memory layer\", \"remember user preferences\", \"persistent context\", \"personalization\", or needs to add long-term memory to chatbots, agents, or AI apps. Covers Python SDK (mem0ai), TypeScript SDK (mem0ai), and framework integrations (LangChain, CrewAI, OpenAI Agents SDK, Pipecat, LlamaIndex, AutoGen, LangGraph). Also covers the open-source self-hosted Memory class. This is the DEFAULT mem0 skill for ambiguous queries. DO NOT TRIGGER when: user asks about CLI commands, terminal usage, or shell scripts (use mem0-cli), or Vercel AI SDK \u002F @mem0\u002Fvercel-ai-provider \u002F createMem0 (use mem0-vercel-ai-sdk).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1401,1402,1405],{"name":24,"slug":25,"type":16},{"name":1403,"slug":1404,"type":16},"AI Infrastructure","ai-infrastructure",{"name":21,"slug":22,"type":16},"2026-07-13T06:12:42.552904",{"slug":1408,"name":1408,"fn":1409,"description":1410,"org":1411,"tags":1412,"stars":26,"repoUrl":27,"updatedAt":1420},"mem0-cli","manage Mem0 memory via command line","Mem0 CLI -- the command-line interface for mem0 memory operations. TRIGGER when: user mentions \"mem0 cli\", \"mem0 command line\", \"@mem0\u002Fcli\", \"mem0-cli\", \"pip install mem0-cli\", \"npm install -g @mem0\u002Fcli\", or is running mem0 commands in a terminal\u002Fshell (mem0 add, mem0 search, mem0 list, mem0 get, mem0 init, mem0 config, mem0 import). Also triggers when query includes CLI flags like --user-id, --output, --json, --agent, or describes bash\u002Fzsh\u002Fterminal\u002Fshell usage. DO NOT TRIGGER when: user asks about programmatic SDK integration in Python\u002FTS code (use mem0 skill), or Vercel AI SDK provider (use mem0-vercel-ai-sdk skill).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1413,1416,1419],{"name":1414,"slug":1415,"type":16},"Automation","automation",{"name":1417,"slug":1418,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"2026-07-13T06:12:48.46494",{"slug":1422,"name":1422,"fn":1423,"description":1424,"org":1425,"tags":1426,"stars":26,"repoUrl":27,"updatedAt":1432},"mem0-integrate","integrate Mem0 into repositories","Integrate Mem0 into an existing repository using a goal-driven, TDD pipeline. Detects the repo's language automatically and asks the user to pick between Mem0 Platform (managed) and Mem0 Open Source (self-hosted). Writes failing tests before any implementation. Produces a local feature branch plus `.mem0-integration\u002F` artifacts consumed by the paired verification skill. TRIGGER when: user says \"integrate mem0\", \"add mem0 to this repo\", \"wire mem0 into \u003Crepo>\", or asks how to add memory to an existing project. DO NOT TRIGGER when: the user wants general SDK usage (use skill:mem0), CLI usage (use skill:mem0-cli), or Vercel AI SDK (use skill:mem0-vercel-ai-sdk). After success, invoke skill:mem0-test-integration to verify in the same workspace (loose coupling).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1427,1428,1431],{"name":24,"slug":25,"type":16},{"name":1429,"slug":1430,"type":16},"API Development","api-development",{"name":21,"slug":22,"type":16},"2026-07-13T06:12:46.60755",{"slug":1434,"name":1434,"fn":1435,"description":1436,"org":1437,"tags":1438,"stars":26,"repoUrl":27,"updatedAt":1442},"mem0-oss-to-platform","migrate Mem0 projects to platform","Plan and then execute a migration of a project from the mem0 open-source \u002F self-hosted SDK (the local `Memory` class) to the mem0 Platform \u002F hosted \u002F managed SDK (the `MemoryClient` class). Use this whenever a developer wants to move, switch, or migrate their mem0 usage off OSS\u002Fself-hosted to the hosted API — e.g. \"migrate my mem0 setup to the platform\", \"switch from self-hosted mem0 to MemoryClient\", \"use my mem0 API key instead of a local Qdrant\", \"move mem0 to the cloud\u002Fhosted\u002Fmanaged service\", or \"replace my local mem0 vector store + embedder config with the platform\". Applies to Python (`from mem0 import Memory` → `from mem0 import MemoryClient`) and TypeScript\u002FJavaScript (`import { Memory } from \"mem0ai\u002Foss\"` → `import MemoryClient from \"mem0ai\"`). Trigger even when the user doesn't say the word \"migrate\" but clearly wants their existing mem0 integration to run against the hosted platform. It first produces a reviewable migration plan, then executes it after the developer approves. Strictly scoped to the mem0 integration — it does not refactor, restructure, or \"improve\" any unrelated code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1439,1440,1441],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":1300,"slug":1301,"type":16},"2026-07-13T06:12:43.848266",{"slug":1444,"name":1444,"fn":1445,"description":1446,"org":1447,"tags":1448,"stars":26,"repoUrl":27,"updatedAt":1457},"mem0-test-integration","verify Mem0 integration tests","Verify a Mem0 integration produced by \u002Fmem0-integrate. Runs in the same workspace on the same branch (loose coupling) — installs dependencies, runs the repo's native test suite, then exercises a real end-to-end smoke flow against the user's API key. Produces a scorecard. TRIGGER when: user has just run \u002Fmem0-integrate and says \"verify\", \"test the integration\", \"run \u002Fmem0-test-integration\", or when a .mem0-integration\u002F directory exists and tests have not been run yet on the current branch. DO NOT TRIGGER when: the user wants to run general project tests (defer to the repo's native test command), or when no prior \u002Fmem0-integrate run exists in the current branch (ask them to run \u002Fmem0-integrate first). This skill ONLY catches compile and runtime bugs by design. Logical integration errors — wrong data stored, wrong time retrieved, wrong user scoping — are on the human reviewer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1449,1450,1451,1454],{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":1452,"slug":1453,"type":16},"QA","qa",{"name":1455,"slug":1456,"type":16},"Testing","testing","2026-07-13T06:12:50.669701"]