setup

setup is a skill for Claude Code from mem9-ai/mem9. It costs 19 tokens per session (635 once invoked), scanned A, original, Apache-2.0.

A setup and repair procedure for Mem9 memory in a Claude Code environment.

In plain words
What is it for?
Use it to initialize Mem9, check whether it is already configured, or retry setup when memory is not working.
Why use it?
It checks the required Node.js version, storage location, and authentication file so Mem9 can be initialized or diagnosed without exposing its API key.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions .claude-plugin; mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the mem9 plugin — 3 skills, 5 hooks shipped together

Good fit Use it to initialize Mem9, check whether it is already configured, or retry setup when memory is not working.

Compare 6 skills from other repositories ↓
View source ↗ mem9-ai/mem9
About the project

mem9 is a persistent memory service for AI agents that preserves information across sessions and machines and can share it among multiple agents. It is used with OpenClaw, coding agents, workflow platforms, and custom clients that need shared storage and recall. The catalogue add-ons connect agents and workflows to mem9 memory.

mem9-ai/mem9 · 1,225 stars · on GitHub

Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add mem9-ai/mem9
Claude Code
/plugin install mem9

Made for: Claude Code.

Or install mem9, the plugin that ships this one along with the rest of its 3 skills, 5 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for setup

README.md
[![agentmods](https://agentmods.dev/badge/skills/mem9-ai/mem9/setup/github.svg)](https://agentmods.dev/skills/mem9-ai/mem9/setup)
Your own site
<a href="https://agentmods.dev/skills/mem9-ai/mem9/setup"><img src="https://agentmods.dev/badge/skills/mem9-ai/mem9/setup/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for setup

Your own site · 80×15
<a href="https://agentmods.dev/skills/mem9-ai/mem9/setup"><img src="https://agentmods.dev/badge/skills/mem9-ai/mem9/setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 19 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 635 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00019 $0.00635
Opus 5.5 $0.00008 $0.00254
Sonnet 5.5 $0.00004 $0.00127
Haiku 4.5 $0.00002 $0.00064

Measured 1mo ago against content hash f11f0881736d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

setup scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

response="$(curl -sf --max-time 8 -X POST \
claude-plugin/skills/setup/SKILL.md · 59 lines

How it starts

The opening of the file, as written. The whole thing — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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 the full file on GitHub · 59 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 59 lines · 19 tokens per session scan A f11f0881736d

Subscribe to this mod's changes

setup is a skill published in the GitHub repository mem9-ai/mem9 (1,225 stars, last pushed 9d ago), licensed Apache-2.0. It adds 19 tokens to every session and 635 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

install-openviking-memory

Install and configure the OpenViking long-term memory plugin for OpenClaw via natural conversation. Once installed, the plugin automatically captures facts from chats and recalls relevant context before each reply (auto-capture + auto-recall, cross-session). Covers prerequisites, install through OpenClaw's plugin…

volcengine/OpenViking · 191 tokens

openviking-context-database

Use OpenViking from OpenClaw through @openviking/openclaw-plugin: long-term memory, session archives, resource and Agent Skill import, semantic recall, recall trace debugging, and externalized tool-result recovery. Prefer this skill when the user wants to use, query, debug, or operate OpenViking context from an…

volcengine/OpenViking · 95 tokens

j-space

Use this skill to establish and operate the model's inner workspace — the J-space — for any task that needs more than fluent output: multi-step or chained reasoning, planning, long-horizon and agentic work, competition-level problems, complex debugging, keeping many parts of a deliverable globally consistent, holding…

Tiger3807861189/J-Space-Cognition-Suite-V3.7 · 144 tokens

ov-experience-memory

Retrieve and apply OpenViking Experience memories through the Agent runtime's generic OpenViking search and read tools. Use before or during executable, multi-step, or tool-based work such as coding, file or data changes, configuration, deployment, workflow execution, and failure recovery when prior operational…

volcengine/OpenViking · 78 tokens

openviking-memory

Recall and persist long-term memory through the OpenViking MCP tools. Use at the start of any substantive task (coding, configuration, debugging, multi-step or tool-based work) to retrieve relevant prior knowledge with find/search/read, and during or after work to persist durable facts, preferences, decisions, and…

volcengine/OpenViking · 86 tokens

experience_loader

Load relevant OpenViking experience memories via case-linked experience candidates before solving a task.

volcengine/OpenViking · 20 tokens