garde-manger

Status
Robustness: Stable — used daily
Works with: Any agent, standalone CLI
Install: uv tool install .
Requires: Python 3.11+
Persistent, searchable memory across Claude sessions. The cold station of the kitchen brigade — preservation, storage, retrieval.
The Problem
You've had hundreds of conversations with Claude. Solved problems, made decisions, learned things together. But each new session starts blank — Claude remembers nothing.
"Didn't we figure out the auth pattern last month?" Gone.
"What was that workaround for the API rate limit?" Lost.
This tool gives Claude (and you) access to that history.
The Kitchen
Garde-manger is part of Batterie de Savoir — a suite of tools for AI-assisted knowledge work, each named for a station in a professional kitchen brigade. Together they address the session-to-session continuity problem from different angles: bon tracks what needs doing, handoffs pass context between sessions, and garde-manger provides searchable ancestral memory. See the full brigade and design principles for how the tools fit together.
What It Does
- Search across past conversations — Find that discussion about authentication patterns
- Consistent terminology — Your glossary maps aliases to canonical terms
- Token efficiency — Search summaries first, drill into full content only when needed
- Cross-platform — Works with Claude Code, Claude.ai, handoffs, bon, cloud sessions, and local markdown
Quick Start
Requires uv (fast Python package manager). If you don't have it: curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and install
git clone https://github.com/spm1001/garde-manger.git
cd garde-manger
uv sync
# Scan for sources and index them
uv run garde scan
# Search your memory
uv run garde search "authentication"
# Drill into a specific result
uv run garde drill claude_code:abc123
API Key (for extraction)
LLM extraction enriches sources with summaries, builds, and learnings. It requires an Anthropic API key:
# Create the config directory
mkdir -p ~/.claude/memory
# Add your API key
echo 'export ANTHROPIC_API_KEY=sk-ant-...' > ~/.claude/memory/env
How It Works

Key insight: Text search over summaries + human-in-the-loop entity resolution outperforms vector embeddings for this use case.
CLI Commands
# Discovery and indexing
garde scan # Discover sources and add metadata to index
garde process # Run LLM extraction on pending sources (costs API calls)
garde status # Show index statistics
# Search
garde search "query" # FTS5 search over summaries
garde search "query" -s claude_code # Filter by source type
garde drill <source_id> # Load full source content
garde drill <source_id> --outline # Show conversation structure
# Maintenance
garde resolve # Interactive entity resolution
garde rebuild # Rebuild FTS5 index
scan vs process: garde scan discovers sources and indexes metadata (free, fast). garde process runs LLM extraction to enrich with summaries and learnings (costs API calls, slower).
Example Output
$ uv run garde status
Memory dir: /Users/you/.claude/memory
Glossary: 85 entities
Database:
Sources: 6247
claude_ai: 102
claude_code: 2000
handoff: 213
local_md: 2368
Summaries indexed: 6237
$ uv run garde search "OAuth"
3 results:
1. [claude_code] Implementing OAuth flow for Google APIs
Added OAuth 2.0 authentication with refresh token handling. Debugging
redirect URI mismatch errors.
[2 builds, 3 learnings]
3 days ago · ID: claude_code:a1b2c3d4
2. [handoff] Auth refactoring session
Moved from API keys to OAuth. Key decision: use PKCE flow for CLI apps.
[1 build, 2 learnings]
2 weeks ago · ID: handoff:e5f6g7h8
3. [local_md] OAuth security notes
Notes on token storage best practices and refresh strategies.
Jan 2026 · ID: local_md:notes/oauth.md
CLI vs Skill
- CLI (
uv run garde) — Run from terminal, works anywhere
- Skill (
/garde) — Invoked within Claude Code sessions, provides in-context search
Use the CLI for maintenance (scan, status, rebuild). The skill is for in-session retrieval when you're working with Claude.
See the skills/memory/ directory for the Claude Code skill.
Configuration
Config lives at ~/.claude/memory/config.yaml. Created with defaults on first run.