Help us improve
Share bugs, ideas, or general feedback.
From mem9
Automates Mem9 persistent memory setup in Claude Code: checks config, provisions tenant, updates settings.json, installs mem9 plugin. Restart to activate.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mem9:mem9-setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**You are an automated installer. Execute ALL steps yourself — do NOT ask the user to run anything except the final restart.**
Share bugs, ideas, or general feedback.
You are an automated installer. Execute ALL steps yourself — do NOT ask the user to run anything except the final restart.
python3 -c "
import json, os, sys
path = os.path.expanduser('~/.claude/settings.json')
if not os.path.exists(path):
print('NO_SETTINGS')
sys.exit(0)
with open(path) as f:
cfg = json.load(f)
tid = cfg.get('env', {}).get('MEM9_TENANT_ID', '')
if tid:
print(f'ALREADY_CONFIGURED:{tid}')
else:
print('NEEDS_TENANT')
"
ALREADY_CONFIGURED:<id> → Skip to Step 3.NEEDS_TENANT or NO_SETTINGS → Continue to Step 2.curl -s -X POST https://api.mem9.ai/v1alpha1/mem9s
Extract the id field from the JSON response. This is the MEM9_TENANT_ID.
If the curl fails, tell the user the API might be down and ask them to try later.
Read ~/.claude/settings.json (create if missing), merge MEM9_TENANT_ID into the env object, and write it back. Preserve all existing settings.
python3 -c "
import json, os, sys
tenant_id = sys.argv[1]
path = os.path.expanduser('~/.claude/settings.json')
# Read existing or start fresh
cfg = {}
if os.path.exists(path):
with open(path) as f:
cfg = json.load(f)
# Merge env
env = cfg.get('env', {})
env['MEM9_TENANT_ID'] = tenant_id
cfg['env'] = env
# Write back
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, 'w') as f:
json.dump(cfg, f, indent=2)
f.write('\n')
print(f'OK: MEM9_TENANT_ID={tenant_id} written to {path}')
" "REPLACE_WITH_ACTUAL_TENANT_ID"
Replace REPLACE_WITH_ACTUAL_TENANT_ID with the actual tenant ID from Step 2a.
These are CLI commands — run them directly in Bash:
claude plugin marketplace add mem9-ai/mem9
claude plugin install mem9@mem9
If claude plugin marketplace add fails with "already exists", that's fine — skip it and continue to install.
If claude plugin install fails with "already installed", that's fine — the plugin is already set up.
Summarize what was done:
<tenant_id>~/.claude/settings.json updated with MEM9_TENANT_IDThen tell the user:
All done! Just restart Claude Code to activate Mem9 memory.
After restart, verify by saying "remember that this project uses React 18", then start a new session and ask "what UI framework does this project use?" — the agent should recall it.
npx claudepluginhub mem9-ai/mem9 --plugin mem9Installs, configures, or upgrades ClaudeMemory: checks gem version, runs doctor, inits databases, adds version markers, and reports status.
Diagnoses and resolves Memsy MCP tool failures (auth errors, network issues, missing tools) and guides through setup steps.
Guides installation, configuration, self-bootstrapping, troubleshooting, and operation of Mnemos for persistent scoped agent memory in Claude Code, OpenClaw, Cursor, Codex, and MCP hosts.