From shared-memory
Guide for storing enriched memories that capture decisions, preferences, and context. Use when making significant decisions or learning user preferences.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shared-memory:managing-memoryThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**IMPORTANT**: Before using memory tools, ensure the MCP server is built and configured:
IMPORTANT: Before using memory tools, ensure the MCP server is built and configured:
# Check if built
ls ~/.claude/plugins/cache/brain-jar/shared-memory/*/dist/index.js 2>/dev/null || echo "NOT_BUILT"
If NOT_BUILT, run the setup:
node ~/.claude/plugins/cache/brain-jar/shared-memory/*/run.js &
sleep 15
Then check for Mem0 config:
cat ~/.config/brain-jar/config.json 2>/dev/null || echo "NOT_CONFIGURED"
If NOT_CONFIGURED, ask user for their Mem0 API key (get one at https://app.mem0.ai), then create config:
mkdir -p ~/.config/brain-jar
cat > ~/.config/brain-jar/config.json << 'EOF'
{
"mem0_api_key": "USER_API_KEY_HERE",
"default_scope": "global",
"auto_summarize": true
}
EOF
Note: Local storage works without Mem0 config - cloud sync is optional.
After setup, user must restart Claude Code for MCP to register.
Store memories when you observe:
Bad (too dry):
User chose Neon for database.
Good (captures context and sentiment):
User chose Neon over Supabase for Postgres hosting - appreciated the more generous
free tier limits. Showed strong preference for managed solutions: "I'm not running
my own infra" - values simplicity and time savings over control.
Include:
global - Personal preferences, general learnings, cross-project patternsproject:<name> - Specific to current project (detect from working directory)Use global for preferences that apply everywhere. Use project: for architectural
decisions, tech choices, and patterns specific to one codebase.
Before:
Use natural recall language:
When searching or listing memories that could return many results (10+), dispatch a Haiku subagent to process and summarize:
When to use subagent:
How to dispatch:
Use Task tool:
subagent_type: "general-purpose"model: "haiku"prompt: "Search user memories and provide a summary.TASK: [what user is looking for]
STEPS:
OUTPUT: Concise summary, not raw memory dumps."
Tell the user: The subagent's summary. Don't dump all raw memories into context.
When to use direct tools:
Example flow:
User: What do I usually prefer for state management?
You: Let me search your memories for state management preferences...
[Dispatch Haiku subagent]
Subagent returns:
"Found 7 memories about state management. Key patterns:
- Strong preference for Zustand over Redux (called Redux 'too much boilerplate')
- Uses React Query for server state ('keeps server/client state separate')
- Avoids global state when possible - prefers component-level state
Notable quote: 'I want the simplest thing that works'"
You: Based on your past preferences, you tend to favor Zustand for client state
and React Query for server state. You've mentioned wanting "the simplest thing
that works" - should I keep that philosophy for this feature?
preference - Likes/dislikesdecision - Specific choices madearchitecture - System design patternspersonality - Working style, communication preferencesproject - Project-specific contextsession-summary - End-of-session consolidationprofile-context - Background context for profile preferencesprofile-learning - Observations that inform the user profileFor structured user profile management (name, role, tech preferences, working style),
use the learning-about-you skill instead of storing as freeform memories.
Use memories for:
Use profile for:
The profile is queryable and shared across all brain-jar plugins. Memories provide the context and "why" behind profile entries.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub designnotdrum/perplexity-search-plugin --plugin shared-memory