Skip to content
Data
Skill

/recall

Use when the current request needs relevant memories from Mem9.

From plugin
mem9
1.2k8 skills
Install
$ npx -y skills add mem9-ai/mem9 --skill recall --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/recall

Context preview

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

Use when the current request needs relevant memories from Mem9.

SKILL.md

recall.SKILL.md
description: Use when the current request needs relevant memories from Mem9.
context: fork
allowed-tools:
  - Bash
  - Read
disable-model-invocation: true

Mem9 Recall

Use this skill when the current request could benefit from historical context stored in Mem9.

Steps

1. Check `${CLAUDE_PLUGIN_DATA}/auth.json`. If it is missing, tell the user to run `/mem9:setup` first. 2. Use `${CLAUDE_PLUGIN_DATA}/auth.json` only as request credentials. Do not print the file contents or the API key. 3. Search Mem9 with the current question across all agents in the account (no `agent_id` filter).

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

query='REPLACE_WITH_SEARCH_QUERY'
encoded_query="$(printf '%s' "$query" | node -e 'const fs=require("node:fs"); const raw=fs.readFileSync(0,"utf8").trim(); process.stdout.write(encodeURIComponent(raw));')"

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}" \
  "${base_url%/}/v1alpha2/mem9s/memories?q=${encoded_query}&limit=10"

Return only the memories that help with the current question. 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