Skip to main content

Semantic checkpointing for Claude Code

Project description

Sage

Memory for Claude Code. Research → checkpoint → compaction → auto-restore.

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│  Research   │───▶│ Checkpoint  │───▶│  Compaction │
│  with Claude│    │  (auto)     │    │  happens    │
└─────────────┘    └─────────────┘    └──────┬──────┘
                                             │
┌─────────────┐    ┌─────────────┐           │
│  Continue   │◀───│ Auto-inject │◀──────────┘
│  seamlessly │    │  context    │
└─────────────┘    └─────────────┘

v4.0 — Invisible Context Hydration: System folders, failure memory, MCP resources, knowledge linking.

Quick Start

Option A: Claude Code Plugin (Recommended)

# 1. Add the marketplace (one-time)
/plugin marketplace add b17z/sage

# 2. Install the plugin
/plugin install sage@sage

Or run /plugin and use the interactive UI to browse and install.

Option B: Manual Install

# 1. Install
pip install claude-sage[mcp]

# 2. Setup (adds MCP server + installs methodology skills)
sage mcp install
sage skills install

# 3. Use Claude - Sage handles the rest
claude

That's it. Claude now has memory across sessions.

How It Works

The problem: You're 2 hours into research. Context fills up, auto-compacts, nuanced findings gone. Tomorrow you start from scratch.

The solution: Sage checkpoints at meaningful moments—not when tokens run out, but when something worth remembering happens:

Trigger Example
Synthesis "Therefore, the answer is..."
Branch point "We could either X or Y..."
Constraint "This won't work because..."
Topic shift Conversation changes direction
Manual You say "checkpoint this"

Each checkpoint captures your thesis, confidence, open questions, sources, and tensions (where experts disagree).

What Gets Saved

# Where do stablecoins win vs traditional rails?

## Thesis (75% confidence)
Integrate, don't replace. Stablecoins win middle-mile,
not POS checkout.

## Open Questions
- Timeline for Stripe's full stack?

## Tensions
- sheel_mohnot vs sam_broner: merchant profitability — unresolved

Checkpoints are Markdown files (Obsidian-compatible) in ~/.sage/checkpoints/ or .sage/checkpoints/ (project-local).

The Three Layers

┌────────────────────────────────────────────────┐
│  Skills (methodology)                          │
│  sage-memory, sage-research, sage-session      │
│  Load on-demand when context matches           │
├────────────────────────────────────────────────┤
│  MCP Server (tools + resources)                │
│  sage_save_checkpoint, sage_recall_knowledge   │
│  @sage://system/objective.md (v4.0)            │
├────────────────────────────────────────────────┤
│  Storage                                       │
│  ~/.sage/checkpoints/, ~/.sage/knowledge/      │
│  .sage/system/, .sage/failures/ (v4.0)         │
└────────────────────────────────────────────────┘
  • Skills teach Claude when and how to checkpoint
  • MCP gives Claude the tools to save/load, resources for direct access
  • Storage persists everything as readable Markdown

CLI Basics

sage checkpoint list          # See your checkpoints
sage checkpoint show <id>     # View one
sage knowledge list           # See stored knowledge
sage knowledge match "query"  # Test what would recall
sage skills list              # Check installed skills
sage watcher start            # Auto-detect compaction

# Configuration
sage config list              # View current settings
sage config set checkpoint_max_age_days 30  # Customize storage
sage config set failure_memory_enabled true # Enable failure memory (v4.0)

Visual Interface

sage ui              # Local web UI at localhost:5555
sage ui --api-only   # REST API for custom frontends

Or use any of these:

  • Obsidian — Open ~/.sage/ as vault (it's just Markdown)
  • Custom — Build on the REST API

See docs/ui.md for details.

Learn More

Known Issues

Plugin MCP Tool Naming

When installed as a Claude Code plugin, MCP tools follow the format mcp__plugin_<plugin>_<server>__<tool>. Since both the plugin and MCP server are named "sage", tools appear as mcp__plugin_sage_sage__save_checkpoint rather than the expected mcp__plugin_sage__save_checkpoint.

This is documented Claude Code behavior — the official MCP integration docs show the same pattern with asana_asana as an example. No official plugins currently use MCP servers, so there's no precedent for cleaner naming.

Workaround: The plugin works correctly despite the redundant naming. If this bothers you, install via pip instead (pip install claude-sage[mcp]).

Requirements

Development

pip install -e ".[dev,mcp]"
pytest tests/ -v  # 1624 tests

Acknowledgments

Output formatting inspired by TOON — a token-efficient notation format for LLMs by @mixeden.

License

MIT

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_sage-4.2.3.tar.gz (350.8 kB view details)

Uploaded Source

Built Distribution

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

claude_sage-4.2.3-py3-none-any.whl (405.6 kB view details)

Uploaded Python 3

File details

Details for the file claude_sage-4.2.3.tar.gz.

File metadata

  • Download URL: claude_sage-4.2.3.tar.gz
  • Upload date:
  • Size: 350.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for claude_sage-4.2.3.tar.gz
Algorithm Hash digest
SHA256 bbaba47697d949a56785b6ad54db238aecdcb2081e699f55e5b8d4f2acaec8fa
MD5 ad3ad29effa701d20cf28559929b4d30
BLAKE2b-256 211ecc2a363701ba8f8e84f40d45a2e184c32fa354ec1eac95aa9dfe3b50ce3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_sage-4.2.3.tar.gz:

Publisher: publish.yml on b17z/sage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file claude_sage-4.2.3-py3-none-any.whl.

File metadata

  • Download URL: claude_sage-4.2.3-py3-none-any.whl
  • Upload date:
  • Size: 405.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for claude_sage-4.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c15f5292a6beaaa22cab74992fefa6ce3c1ed795c3a33d834126ad971dac4a9b
MD5 e82175cf812f8173b9cef62fe5eda203
BLAKE2b-256 fb75d080b8d8edcf0fbe4fc2970aa62622202f5ecf3aacc2af542ccf65f89975

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_sage-4.2.3-py3-none-any.whl:

Publisher: publish.yml on b17z/sage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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