Skip to content
Data
Skill

/store

Use when the user explicitly asks Claude to remember one fact, preference, or instruction in Mem9.

From plugin
mem9
1.2k8 skills
Install
$ npx -y skills add mem9-ai/mem9 --skill store --agent claude-code

How 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/store

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when the user explicitly asks Claude to remember one fact, preference, or instruction in Mem9.

SKILL.md

store.SKILL.md
description: Use when the user explicitly asks Claude to remember one fact, preference, or instruction in Mem9.
context: fork
allowed-tools:
  - Bash
  - Read
disable-model-invocation: true

Mem9 Store

Use this skill only when the user explicitly asks Claude to remember or save something to Mem9.

Steps

1. Extract the one fact, preference, or instruction that should be remembered. 2. Use `${CLAUDE_PLUGIN_DATA}/auth.json` only as request credentials. If auth is missing, tell the user to run `/mem9:setup`. Do not print the file contents or the API key. 3. Store the memory with the single-message `content` API. Do not invent tags client-side.

set -euo pipefail

auth_file="${CLAUDE_PLUGIN_DATA}/auth.json"
test -f "$auth_file"
read_api_key_and_base_url="$(node -e 'const fs=require("node:fs"); const data=JSON.parse(fs.readFileSync(process.argv[1],"utf8")); const values=[data.api_key || "", data.base_url || "https://api.mem9.ai"]; process.stdout.write(values.join("\t"));' "$auth_file")"
api_key="${read_api_key_and_base_url%%	*}"
base_url="${read_api_key_and_base_url#*	}"
test -n "$api_key"
test -n "$base_url"
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

curl -sf --max-time 8 \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ${api_key}" \
  -H "X-Mnemo-Agent-Id: claude-code" \
  -H "User-Agent: mem9-plugin/claude-code/${plugin_version}" \
  -d '{"content":"REPLACE_WITH_MEMORY"}' \
  "${base_url%/}/v1alpha2/mem9s/memories"

Confirm back to the user what was saved. Never reveal secret values.

Read more
Ships withmem9

Unlimited memory for OpenClaw

Get the whole plugin
Stats
1,177
Stars
120
Forks
Active
Maintenance
TypeScript
Language
Apache-2.0
License
3d ago
Last commit
5mo ago
Created

Repo: mem9-ai/mem9