Skip to main content

Cross-session memory system for Claude Code — never lose context between sessions

Project description

Claude Memory Manager

Cross-session memory for Claude Code — never lose context between sessions.

Claude Memory Manager automatically captures architectural decisions, code changes, bug fixes, and configuration choices from your Claude Code sessions, then intelligently retrieves relevant context when you start new sessions.

What It Does

Every time you use Claude Code, valuable context is created and lost when the session ends:

  • Which libraries you chose and why
  • Bug fixes and their root causes
  • Configuration decisions
  • File structure and naming conventions
  • Error resolutions

Claude Memory Manager solves this by:

  1. Parsing your Claude Code session logs (JSONL files)
  2. Extracting meaningful memories with importance scoring
  3. Embedding memories for semantic search
  4. Storing everything in a local SQLite database with FTS5
  5. Retrieving relevant context via hybrid semantic + keyword search
  6. Serving context to Claude Desktop via MCP protocol

Installation

pip install claude-memory-manager

For local embeddings (no API key needed):

pip install claude-memory-manager[local]

For development:

pip install claude-memory-manager[dev]

Quick Start

1. Initialize the Database

claude-memory init

This creates the SQLite database at ~/.claude-memory/memory.db and saves a config file.

2. Ingest Session Logs

# Ingest all sessions from the default path (~/.claude/projects/)
claude-memory ingest

# Ingest from a specific path
claude-memory ingest /path/to/sessions

# Watch for new sessions and auto-ingest
claude-memory ingest --watch

3. Search Memories

# Search across all memories
claude-memory search "authentication setup"

# Filter by project
claude-memory search "database schema" --project /path/to/project

# Filter by category
claude-memory search "cors" --category config

4. Generate Context Summary

# List all indexed projects
claude-memory context

# Generate summary for a specific project
claude-memory context /path/to/project

# With custom token limit
claude-memory context /path/to/project --max-tokens 3000

5. Connect to Claude Desktop (MCP)

Add to your Claude Desktop config (see MCP Setup):

{
  "mcpServers": {
    "claude-memory": {
      "command": "claude-memory-mcp",
      "args": []
    }
  }
}

CLI Reference

Command Description
claude-memory init Initialize the SQLite database
claude-memory ingest [PATH] Ingest session logs from path
claude-memory ingest --watch Watch and auto-ingest new sessions
claude-memory search "query" Hybrid semantic + keyword search
claude-memory context [PROJECT] Generate context summary
claude-memory list List all indexed sessions
claude-memory stats Database statistics
claude-memory prune --older-than 90d Remove old memories
claude-memory export Export memories as JSON
claude-memory serve Start MCP server mode

Global Options

Option Description
--config PATH Custom config file path
--verbose / -v Enable debug logging
--version Show version

Search Options

Option Description
--project / -p Filter by project path
--category / -c Filter by category
--limit / -n Max results (default: 5)

Categories

Memories are classified into these categories:

  • decision — Architectural and design decisions
  • code_change — Significant code modifications
  • bug_fix — Bug identification and resolution
  • config — Configuration and environment changes
  • error_resolution — Errors encountered and solved
  • preference — User preferences and conventions
  • discussion — General discussion summaries

MCP Setup

Claude Desktop

  1. Find your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the memory server:

{
  "mcpServers": {
    "claude-memory": {
      "command": "claude-memory-mcp",
      "args": []
    }
  }
}
  1. Restart Claude Desktop.

See examples/claude-desktop-config.json for a complete example.

MCP Tools

Once connected, Claude Desktop can use these tools:

Tool Description
memory_search Search memories by query with optional filters
memory_recall Get a formatted context summary for a project
memory_save Save a new memory directly
memory_stats Get database statistics

Architecture

claude-memory-manager/
  src/claude_memory/
    cli.py              # Click CLI commands
    mcp_server.py       # MCP stdio server
    config.py           # Configuration management
    core/
      extractor.py      # Memory extraction from conversations
      embedder.py       # Embedding generation + caching
      indexer.py         # Pipeline: parse -> extract -> embed -> store
      retriever.py      # Hybrid semantic + keyword search
      summarizer.py     # Context summary generation
    parsers/
      jsonl_parser.py   # Claude Code session log parser
      diff_parser.py    # Unified diff parser
    storage/
      database.py       # SQLite + FTS5 operations
      models.py         # Pydantic data models
      migrations.py     # Schema versioning
    integrations/
      anthropic_embeddings.py  # Voyage AI API
      local_embeddings.py      # sentence-transformers
    utils/
      formatting.py     # CLI output formatting
      license.py        # License validation

Data Flow

Session Logs (.jsonl)
        |
  [JSONL Parser] -----> ParsedSession
        |
  [Extractor] --------> Memory objects (categorized, scored)
        |
  [Embedder] ----------> Embeddings (bytes for SQLite BLOB)
        |
  [Indexer] -----------> SQLite DB (with FTS5 index)
        |
  [Retriever] ---------> Search results (hybrid ranked)
        |
  [Summarizer] --------> Context summary (markdown)

Configuration

Configuration is loaded from (in priority order):

  1. Environment variables
  2. Config file (~/.claude-memory/config.json)
  3. Defaults

Environment Variables

Variable Description Default
CLAUDE_SESSIONS_PATH Path to session logs ~/.claude/projects
CLAUDE_MEMORY_DB_PATH Database file path ~/.claude-memory/memory.db
CLAUDE_MEMORY_EMBEDDING_PROVIDER anthropic, voyage, or local local
ANTHROPIC_API_KEY Anthropic API key
VOYAGE_API_KEY Voyage AI API key
CLAUDE_MEMORY_MAX_TOKENS Max tokens for context 2000
CLAUDE_MEMORY_LOG_LEVEL Log level INFO

Embedding Providers

Provider Dimension Requires
voyage 1024 VOYAGE_API_KEY
anthropic 1024 ANTHROPIC_API_KEY
local 384 pip install claude-memory-manager[local]

If no provider is available, a stub provider is used (keyword search still works, but semantic search is disabled).

FAQ

Where are my memories stored? In a SQLite database at ~/.claude-memory/memory.db. All data stays local.

Does this send my code to any API? Only if you configure the Voyage or Anthropic embedding provider. In that case, only memory text content (not full session logs) is sent to generate embeddings. Use local for fully offline operation.

How does deduplication work? Each memory's content is hashed (SHA-256). If a memory with the same hash already exists, it is skipped during ingestion.

How does hybrid search work? Results from cosine-similarity vector search (70% weight) are combined with SQLite FTS5 keyword search results (30% weight). Memories appearing in both get combined scores.

Can I export my memories? Yes: claude-memory export > memories.json or claude-memory export -o file.json.

How do I prune old memories? claude-memory prune --older-than 90d removes memories older than 90 days. Supports d (days), w (weeks), m (months), y (years).

Development

# Clone and install in development mode
git clone https://github.com/nyxtools/claude-memory-manager.git
cd claude-memory-manager
pip install -e ".[dev]"

# Run tests
pytest

# Type check
mypy src/

# Lint
ruff check src/ tests/

License

MIT License. Copyright (c) 2026 NyxTools · LEW Enterprises LLC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_memory_manager-0.1.1.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_memory_manager-0.1.1-py3-none-any.whl (50.9 kB view details)

Uploaded Python 3

File details

Details for the file claude_memory_manager-0.1.1.tar.gz.

File metadata

  • Download URL: claude_memory_manager-0.1.1.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for claude_memory_manager-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ee1830bf53be03d1b5a0745acc55d8bdfde80e9966ba31895b136db08375f5d7
MD5 20a7d06fd7b4298ad84a75607930c51d
BLAKE2b-256 5152c40be007b7f25cceceae3ed932d9818424a403b92b7cd6ba6e38cf702567

See more details on using hashes here.

File details

Details for the file claude_memory_manager-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_memory_manager-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6706a07a56e051b0c4c13d3baf17ae988ae0515eb9603305ddf0cd458ef7ce95
MD5 8486170ecdcad68223ab06998114b08a
BLAKE2b-256 50d3c7836d010fc90fcd75a4c8635b52d50e6027329e7f0d761f33dbf58ca4ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page