Memory Store Plugin for Claude Code
November 21, 2025 Β· View on GitHub
Give Claude persistent memory. Stop re-explaining your codebase every session. Claude remembers corrections, patterns, and decisionsβlearning from mistakes instead of repeating them.
A comprehensive Claude Code plugin that automatically tracks your development flow, captures session context, analyzes git commits, and maintains team knowledge across projects.
Quick Start (60 Seconds)
Three Simple Steps:
# 1. Add marketplace
claude plugin marketplace add julep-ai/memory-store-plugin
# 2. Install plugin
claude plugin install memory-store
# 3. Add Memory Store MCP server
claude mcp add memory-store -t http https://beta.memory.store/mcp
That's it! OAuth authentication will open in your browser. Authenticate once and you're done.
Start Using:
cd your-project
claude
Memory tracking works automatically!
Check your session:
cat .claude-session
# Shows: Session ID, start time, files tracked, commits tracked
Note: Memory Store retrieval requires OAuth 2.1 authentication. See Authentication Setup below.
What Gets Tracked Automatically
Once installed, the plugin automatically tracks (no manual commands needed):
π Every Session
- β Session start: Project state, git branch, file count
- β Session end: Duration, files changed, commits made, quality score
- β Context loading: Previous session learnings loaded automatically
π Every File Change
- β Write/Edit operations: File path, language, patterns detected (API, UI, Service, etc.)
- β Change count: Tracked per session
- β Automatic checkpoints: Every 10 file changes
π Every Git Commit
- β Commit analysis: Message, files changed, patterns
- β Ownership tracking: Who commits where
- β Pre-commit validation: Security checks, secret detection
π― Every Error/Correction
- β Error detection: Automatic capture when you say "wrong", "error", "failed"
- β
High-priority learning: Stored as corrections with
is_resolution: true - β Session quality tracking: Reduces quality score for feedback
π Context Compaction
- β Before compression: Saves important context automatically
- β Preserves decisions: Key reasoning and patterns retained
Zero Configuration - Just Ask Questions!
The plugin automatically:
- β Tracks your work in the background
- β Searches memory when you ask questions
- β Loads context at session start
- β Preserves debugging state
Just use Claude Code normally:
You: "Add authentication to the API"
Claude: [Creates auth.ts]
Behind the scenes:
- β Hook fires (PreToolUse on Write)
- β track-changes.sh extracts file info
- β
Item written to
.memory-queue.jsonl - β memory-queue-processor skill reads queue
- β
Claude calls
mcp__memory-store__record - β Data stored: "Created src/api/auth.ts - API authentication pattern"
- β User sees: "πΎ Saved to Memory Store: File created..."
You see: Normal Claude Code workflow + brief confirmation Plugin does: All tracking automatically via queue!
Features
π― Automatic Session Tracking
- Session-level context: Every development session is tracked with complete context
- File change monitoring: Real-time tracking of Write/Edit operations
- Background processing: Hooks run asynchronously without interrupting workflow
- Smart storage: Only relevant context is captured and stored
π Git Intelligence
- Commit analysis: Automatic analysis of commit patterns, types, and impact
- Branching strategy: Tracks and documents team branching workflows
- Historical context: Preserves the "why" behind code changes
- Breaking change detection: Automatically flags significant changes
π CLAUDE.md Synchronization
- Anchor comment tracking: Monitors and syncs anchor comments across files
- Cross-team consistency: Ensures all team members have latest documentation
- Pattern documentation: Captures and shares coding patterns
- Convention enforcement: Helps maintain consistent standards
π€ Intelligent Context Retrieval
- Manual context queries: Use
/memory-contextto retrieve relevant past work - Pattern awareness: Query established patterns with
/memory-overview - Decision history: Access reasoning behind past technical choices
- Team knowledge: Shared context available across team members
π§ Custom Slash Commands
/memory-status- View current tracking status and statistics/memory-overview- Generate comprehensive project overview/memory-recall [query]- Retrieve relevant context (usually automatic)
Note: You rarely need /memory-recall - Claude automatically searches memory when you ask questions!
Installation
Quick Install via Marketplace (Recommended)
Step 1: Install Plugin
claude plugin marketplace add julep-ai/memory-store-plugin
claude plugin install memory-store@claude-plugin
Step 2: Configure MCP Server
claude mcp add memory-store https://beta.memory.store/mcp
OAuth will open in your browser. Authenticate once and it works everywhere!
Alternative Installation Methods
From Local Repository
# Clone and install plugin
git clone https://github.com/julep-ai/memory-store-plugin.git
claude plugin marketplace add ./memory-store-plugin
claude plugin install memory-store@claude-plugin
# Configure MCP server (required!)
claude mcp add memory-store https://beta.memory.store/mcp
From Git URL
# Install plugin from Git
claude plugin marketplace add https://github.com/julep-ai/memory-store-plugin.git
claude plugin install memory-store@claude-plugin
# Configure MCP server (required!)
claude mcp add memory-store https://beta.memory.store/mcp
Team Installation
For team-wide deployment, add to your project's .claude/settings.json:
{
"extraKnownMarketplaces": {
"julep-plugins": {
"source": {
"source": "github",
"repo": "julep-ai/memory-store-plugin"
}
}
},
"enabledPlugins": [
"memory-store"
]
}
When team members trust the repository, the plugin is automatically installed!
Verify Installation
# Start Claude Code
cd your-project
claude
# You should see at session start:
# β
Memory Store MCP: Connected
# OR
# β οΈ Memory Store MCP: Not configured
# π To enable memory storage, run:
# claude mcp add memory-store -t http https://beta.memory.store/mcp
# Check plugin loaded
/plugin
# Should show: β memory-store Β· Installed
# Check MCP connected (manual verification)
/mcp
# Should show: β memory-store - Connected
# Check tracking active
/memory-store:memory-status
# Should show: Session tracking information
β If all checks pass and session start shows "β Memory Store MCP: Connected", automatic tracking is working!
Usage
Automatic Tracking
The plugin works automatically in the background:
- Session Start: Captures project state when you start Claude Code
- File Changes: Tracks every file you create or modify
- Git Commits: Analyzes commits you make during the session
- Session End: Summarizes and stores session learnings
You don't need to do anything - it just works!
Essential Commands
| Command | What It Does |
|---|---|
/memory-status | Show tracking status |
/memory-overview | Generate project overview |
/memory-recall [query] | Get relevant context (usually automatic) |
Example Workflow
Morning - Start Work
cd your-project
claude
Plugin initializes and loads yesterday's context
During Development
Add authentication to the API
Plugin tracks all your changes automatically
Making Commits
git commit -m "feat: add OAuth2 authentication"
Plugin analyzes and stores commit context
End Session
<Ctrl+D to exit>
Plugin summarizes and stores session learnings
Next Day
When you or a teammate starts Claude Code, all that context is available!
Intelligent Context Retrieval
Claude automatically uses stored context:
Example 1: Following Patterns
You: "I need to add a new API endpoint"
Claude: "I'll help you create that endpoint. Based on our established
patterns (see src/api/auth.ts:45), I'll follow the same authentication
and error handling conventions..."
Example 2: Decision History
You: "Should we use MongoDB or PostgreSQL?"
Claude: "Looking at our memory store, the team decided to use PostgreSQL
3 months ago for ACID compliance and complex relationships. Unless this
feature has different requirements, I'd recommend staying consistent..."
Working with CLAUDE.md Files
The plugin automatically syncs your CLAUDE.md files and anchor comments:
<!-- AUTH-FLOW -->
## Authentication Flow
Our authentication uses OAuth2 with JWT tokens...
When you reference anchor comments in code or documentation, the plugin maintains these relationships in memory.
How It Works
Architecture (v1.2.3+: Queue-Based)
Claude Code Session
β
Plugin Hooks (SessionStart, PreToolUse, SessionEnd, etc.)
β
ββββββββββββββββββββββββββββββββββββββββ
β Hook Scripts write to: β
β .memory-queue.jsonl β
β (Producer Pattern) β
ββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββ
β memory-queue-processor Skill β
β (Consumer Pattern - Automatic) β
β β’ Reads queue every message β
β β’ Processes all items β
β β’ Invokes MCP tools β
β β’ Reports to user β
β β’ Clears queue β
ββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββ
β Memory MCP Server β
β (mcp__memory-store__record) β
ββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββ
β Memory Store (Cloud/Local) β
β (beta.memory.store) β
ββββββββββββββββββββββββββββββββββββββββ
Why Queue-Based?
- Hook
additionalContextis not visible to Claude in conversation - File-based communication bypasses this limitation
- Reliable, testable, works on all platforms (macOS, Linux)
- Producer-consumer pattern is proven distributed systems architecture
Hook Execution Flow
-
SessionStart Hook (scripts/session-start.sh)
- Initializes session tracking
- Writes session start to
.memory-queue.jsonl - Generates session ID and metadata
- Captures project snapshot
-
PreToolUse Hooks (scripts/track-changes.sh)
- Fires before Write/Edit operations
- Writes file changes to
.memory-queue.jsonl - Detects patterns (API, Service, UI, etc.)
- Smart filtering (skips node_modules, build/, etc.)
-
SessionEnd Hook (scripts/session-end.sh)
- Writes session summary to
.memory-queue.jsonl - Calculates duration, quality metrics
- Cleans up temporary tracking files
- Writes session summary to
-
memory-queue-processor Skill (Automatic)
- Activates on every user message
- Reads
.memory-queue.jsonl - Invokes
mcp__memory-store__recordfor each item - Reports to user: "πΎ Saved to Memory Store: ..."
- Clears processed items from queue
Memory Storage
The plugin stores:
- Development patterns: How features are implemented
- Team conventions: Coding standards and practices
- Decision history: Why certain approaches were chosen
- Business logic: Core workflows and rules
- Git context: Commit patterns and branching strategies
- Documentation: CLAUDE.md files and anchor comments
Team Collaboration
Local Development
Each developer runs the plugin locally:
- Personal context is captured
- Stored to shared memory store
- Available to all team members
Knowledge Sharing
The plugin enables powerful knowledge sharing:
- New developers can query past decisions
- Code reviews reference established patterns
- Architecture discussions are preserved
- Business logic is documented automatically
Cross-Project Context
If your team works on multiple related projects:
- Install the plugin in each project
- Authenticate once with the same memory store account
- All projects share the same memory context automatically
Best Practices
β Do This
- Use conventional commit messages:
feat:,fix:,docs:, etc. - Keep CLAUDE.md files updated: Document patterns as you establish them
- Trust the automatic tracking: The plugin captures everything in the background
- Use
/memory-overviewperiodically: Get a comprehensive project snapshot
β Avoid This
- Don't disable the hooks - they provide automatic tracking
- Don't skip commit messages - they're analyzed for patterns
- Don't ignore pattern suggestions - they represent team knowledge
Configuration
Extending with Additional MCP Servers
You can add support for Linear, Jam.dev, or other MCP servers:
- Copy
.mcp-extensions.json.exampleto.mcp-extensions.json - Add your API keys
- Restart Claude Code
Example with Linear integration:
{
"mcpServers": {
"memory": { ... },
"linear": {
"command": "npx",
"args": ["@linear/mcp-server"],
"env": {
"LINEAR_API_KEY": "your-key-here"
}
}
}
}
The plugin will automatically integrate Linear issues into memory context!
Customizing Hooks
Edit hooks/hooks.json to customize when hooks fire:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/track-changes.sh"
}
]
}
]
}
}
Troubleshooting
Plugin Not Loading
Common Issue: Duplicate Hooks Reference
If the plugin fails to initialize, check for duplicate hooks loading:
# This should return NOTHING:
grep '"hooks"' .claude-plugin/plugin.json
grep '"hooks"' .claude-plugin/plugin.json.local
If you see "hooks": "./hooks/hooks.json", remove that line. Claude Code automatically discovers hooks/hooks.json by convention - explicit references cause hooks to load twice and break initialization.
Other checks:
# 1. Check plugin structure
ls -la .claude-plugin/
# 2. Verify plugin.json is valid
cat .claude-plugin/plugin.json | jq .
# 3. Check Claude Code debug output
claude --debug
Hooks Not Firing
# 1. Ensure scripts are executable
chmod +x scripts/*.sh
# 2. Check hook configuration
cat hooks/hooks.json | jq .
# 3. Test scripts manually
bash scripts/session-start.sh
Authentication Setup
β οΈ Memory Store retrieval requires OAuth 2.1 authentication
If you get this error:
Error: "No valid session ID provided" (HTTP 400)
What works without auth:
- β
Local session tracking (
.claude-sessionfile) - β File change tracking (automatic)
- β Commit tracking (manual via skill)
What requires auth:
- β Memory retrieval (
mcp__memory-store__recall) - β
/memory-recallcommand - β Automatic context retrieval in responses
To set up authentication:
- Visit https://beta.memory.store
- Sign in with GitHub/Google
- Follow OAuth setup instructions
- Restart Claude Code
Check connection after auth:
# Verify MCP server
claude mcp list
# Should show: β memory-store - Connected
# Test recall (requires auth)
claude mcp call memory-store overview --mode basic
# Should return overview, not auth error
Memory Store Connection Issues
Quick Check: Every session start shows MCP status:
- β "Memory Store MCP: Connected" = Working!
- β οΈ "Memory Store MCP: Not configured" = Follow the command shown
- βΉοΈ "Memory Store MCP: Status unknown" = Claude CLI issue
If you see "Not configured":
# Run the command shown in session start message:
claude mcp add memory-store -t http https://beta.memory.store/mcp
# OAuth will open in browser - authenticate once
If you see "Connected" but storage not working:
# 1. Check MCP server status
claude mcp list
# 2. Re-authenticate if needed
claude mcp remove memory-store
claude mcp add memory-store -t http https://beta.memory.store/mcp
# 3. Restart Claude Code session
# 4. Verify OAuth authentication completed in browser
Plugin Not Found
# 1. Verify marketplace is added
/plugin marketplace list
# 2. Refresh marketplace
/plugin marketplace update claude-plugin
# 3. Try reinstalling
/plugin uninstall memory-store
/plugin install memory-store@claude-plugin
Common Use Cases
New Feature Development
/memory-context authentication patterns
β Check existing patterns
Implement OAuth2 following established patterns
β Build with consistency
git commit -m "feat: add OAuth2 support"
β Pattern stored for team
Onboarding New Developer
/memory-overview
β Generate comprehensive project overview with architecture, patterns, and decisions
Code Review
/memory-context why did we choose PostgreSQL
β Get historical decision context
Bug Investigation
/memory-context error handling in API layer
β See how errors are handled elsewhere
Development
Local Testing
- Make changes to plugin files
- Restart Claude Code
- Test with
/memory-status
Adding New Hooks
- Create script in
scripts/ - Make it executable:
chmod +x scripts/your-script.sh - Add to
hooks/hooks.json - Test the hook
Adding New Commands
- Create markdown file in
commands/ - Add frontmatter with description
- Document usage and examples
- Restart Claude Code
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: developers@autotelic.inc
Changelog
See CHANGELOG.md for version history.
License
MIT License - see LICENSE file for details.
Credits
Built by the Autotelic team with β€οΈ for the Claude Code community.
Special thanks to:
- The Claude Code team at Anthropic
- The memory.store team
- All contributors and users