/setup
Use when Mem9 needs to be initialized, repaired, or checked in this Claude Code environment.
$ npx -y skills add mem9-ai/mem9 --skill setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/setup
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when Mem9 needs to be initialized, repaired, or checked in this Claude Code environment.
SKILL.md
setup.SKILL.mddescription: Use when Mem9 needs to be initialized, repaired, or checked in this Claude Code environment.
context: fork
allowed-tools:
- Bash
- Read
- Edit
disable-model-invocation: true
Mem9 Setup
Use this skill when the user asks to set up Mem9, diagnose why memory is not working, or manually retry initialization.
What to check
1. Verify `node` is installed and version `>= 18`. 2. Verify `${CLAUDE_PLUGIN_DATA}` is available. 3. Check `${CLAUDE_PLUGIN_DATA}/auth.json`.
If auth already exists
- Tell the user Mem9 is already initialized.
- Show the auth file path.
- Do not print the file contents or the API key.
If auth is missing
Provision an API key and write `${CLAUDE_PLUGIN_DATA}/auth.json`:
set -euo pipefail
plugin_data_dir="${CLAUDE_PLUGIN_DATA}"
test -n "$plugin_data_dir"
node -e 'process.exit(Number(process.versions.node.split(".")[0]) >= 18 ? 0 : 1)'
plugin_version="unknown"
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -f "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json" ]; then
plugin_version="$(node -e 'const fs=require("node:fs"); const data=JSON.parse(fs.readFileSync(process.argv[1],"utf8")); process.stdout.write(data.version || "unknown");' "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json")"
fi
response="$(curl -sf --max-time 8 -X POST \
-H "User-Agent: mem9-plugin/claude-code/${plugin_version}" \
https://api.mem9.ai/v1alpha1/mem9s)"
api_key="$(printf '%s' "$response" | node -e 'const fs=require("node:fs"); const data=JSON.parse(fs.readFileSync(0,"utf8")); process.stdout.write(data.id || "");')"
test -n "$api_key"
auth_file="${plugin_data_dir}/auth.json"
mkdir -p "$(dirname "$auth_file")"
node -e 'const fs=require("node:fs"); const authPath=process.argv[1]; const apiKey=process.argv[2]; const payload={base_url:"https://api.mem9.ai",api_key:apiKey,created_at:new Date().toISOString(),source:"manual_setup_skill"}; fs.writeFileSync(authPath, JSON.stringify(payload, null, 2) + "\n");' "$auth_file" "$api_key"If setup cannot complete
- If Node is missing, tell the user to install `Node.js 18+`.
- If `${CLAUDE_PLUGIN_DATA}` is missing, tell the user this skill must run from the Mem9 Claude plugin environment.
- If provisioning fails, tell the user Mem9 server could not be reached.
- Never print or quote the API key in the reply.
Read more
description: Use when Mem9 needs to be initialized, repaired, or checked in this Claude Code environment. context: fork allowed-tools: - Bash - Read - Edit disable-model-invocation: true
Mem9 Setup
Use this skill when the user asks to set up Mem9, diagnose why memory is not working, or manually retry initialization.
What to check
1. Verify `node` is installed and version `>= 18`. 2. Verify `${CLAUDE_PLUGIN_DATA}` is available. 3. Check `${CLAUDE_PLUGIN_DATA}/auth.json`.
If auth already exists
- Tell the user Mem9 is already initialized.
- Show the auth file path.
- Do not print the file contents or the API key.
If auth is missing
Provision an API key and write `${CLAUDE_PLUGIN_DATA}/auth.json`:
set -euo pipefail
plugin_data_dir="${CLAUDE_PLUGIN_DATA}"
test -n "$plugin_data_dir"
node -e 'process.exit(Number(process.versions.node.split(".")[0]) >= 18 ? 0 : 1)'
plugin_version="unknown"
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -f "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json" ]; then
plugin_version="$(node -e 'const fs=require("node:fs"); const data=JSON.parse(fs.readFileSync(process.argv[1],"utf8")); process.stdout.write(data.version || "unknown");' "${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json")"
fi
response="$(curl -sf --max-time 8 -X POST \
-H "User-Agent: mem9-plugin/claude-code/${plugin_version}" \
https://api.mem9.ai/v1alpha1/mem9s)"
api_key="$(printf '%s' "$response" | node -e 'const fs=require("node:fs"); const data=JSON.parse(fs.readFileSync(0,"utf8")); process.stdout.write(data.id || "");')"
test -n "$api_key"
auth_file="${plugin_data_dir}/auth.json"
mkdir -p "$(dirname "$auth_file")"
node -e 'const fs=require("node:fs"); const authPath=process.argv[1]; const apiKey=process.argv[2]; const payload={base_url:"https://api.mem9.ai",api_key:apiKey,created_at:new Date().toISOString(),source:"manual_setup_skill"}; fs.writeFileSync(authPath, JSON.stringify(payload, null, 2) + "\n");' "$auth_file" "$api_key"If setup cannot complete
- If Node is missing, tell the user to install `Node.js 18+`.
- If `${CLAUDE_PLUGIN_DATA}` is missing, tell the user this skill must run from the Mem9 Claude plugin environment.
- If provisioning fails, tell the user Mem9 server could not be reached.
- Never print or quote the API key in the reply.
Repo: mem9-ai/mem9
Other skills on mem9.
- /recall
Use when the current request needs relevant memories from Mem9.
Open skill - /store
Use when the user explicitly asks Claude to remember one fact, preference, or instruction in Mem9.
Open skill - /cleanup
Remove mem9-managed Codex files before reinstalling, resetting, or uninstalling mem9.
Open skill - /recall
Recall mem9 memories when the user explicitly asks for stored context.
Open skill - /store
Store one user-approved fact, preference, or instruction in mem9.
Open skill - /mnemos-setup
Setup mnemos persistent memory with mnemo-server. Triggers: "set up mnemos", "install mnemo plugin", "configure memory plugin", "configure openclaw memory", "configure opencode memory", "configure claude code memory".
Open skill

