Skip to main content

Persistent memory for Claude Code — checkpoint-based replanning across sessions

Project description

context-bridge

CI Python 3.11+ License: MIT Last commit API key optional

Persistent memory and replanning for Claude Code.

[context-bridge] Session context restored:
  Summary:  JWT auth ~60% done. /register works. /login is the blocker.
  Next:     Implement /login: verify bcrypt hash, sign HS256 token with
            SECRET_KEY from env, return {access_token, token_type: "bearer"}.
  Priority: SECRET_KEY must come from env — it was hardcoded in auth.py:34
  Hotspots: auth.py (5x), main.py (3x)

That block appears before Claude reads your first message. No re-explaining, no re-orientation.

The problem

Claude Code starts every session blind. It forgets what was in progress, what blocked the work, and which decisions were already made — so you re-explain it, every time. context-bridge checkpoints every task automatically and restores the right context at the start of the next session.

Install

Python 3.11+ required.

curl -fsSL https://raw.githubusercontent.com/pushkalkumar/context-bridge/main/install.sh | bash

Or manually:

pip install claude-context-bridge   # or: pip install "git+https://github.com/pushkalkumar/context-bridge.git@v0.4.0"
context-bridge install              # wires SessionStart + PostToolUse + Stop hooks
context-bridge                      # start the backend (separate terminal)

The PyPI package is claude-context-bridge; the command it installs is context-bridge. (pip install context-bridge is an unrelated package — don't use it.)

How it works

Claude Code task completes
        |
        v
PostToolUse hook
  capture git diff + task summary
  POST /sync ──> local backend (port 7723)
                   stagnation check
                   planner: next_instruction + priority_focus
        |
        v
Session ends ──> Stop hook ──> end-of-session snapshot
        |
Next session starts
        |
        v
SessionStart hook
  known project: restore summary, next step, constraint, hotspots
  new project:   inject cross-project developer profile
        |
        v
Claude receives context before your first message

Everything is local: a SQLite database in ~/.context-bridge/ and a FastAPI server on 127.0.0.1. The planner picks the best available tier:

Tier Requirement What it does
Anthropic ANTHROPIC_API_KEY Full context-aware replanning
Ollama Ollama running locally Same, free, local inference
Rule-based Nothing Deterministic stagnation + blocker heuristics — offline, zero latency

Features

Feature How it works
Session continuity Auto-checkpoint after every task and at session end; context injected on the next start
Stagnation detection Same task 3x in a row → root-cause report (stuck since, dominant blocker) and forced decomposition
Velocity tracking Records task duration per checkpoint; alerts in next_instruction when the current task is 2× slower than your baseline
Checkpoint types task (permanent), scratch (auto-purged after 24 h), session (end-of-session) — scratch edits are excluded from stagnation and velocity
Structured planner output Confidence score, alternative approaches, blocker class, and decomposition flag on every /sync response
Semantic search POST /search finds related past work via embedding KNN; top matches injected at session start (requires [semantic] extra)
Structured memory adr and failure events record decisions and abandoned approaches alongside the timeline
Developer profile New projects get your cross-project profile: preferred stack, velocity average, recurring blocker classes
Offline operation The rule-based tier needs no API key — checkpoints, stagnation, and blockers all work air-gapped

Commands

context-bridge             # start the backend server
context-bridge install     # (re)install hooks and skill
context-bridge uninstall   # remove hooks and skill (keeps the database)
context-bridge list        # all projects with checkpoint counts and type breakdown
context-bridge status      # backend health, planner tier, velocity and embedding status
context-bridge diff [pid]  # before/after of the last two task checkpoints
context-bridge export      # write a CLAUDE.md-compatible Markdown snapshot

context-bridge list:

  my-api/main              12 checkpoints   2h ago
  my-api/feature-auth       4 checkpoints  14h ago   ⚠ stagnant (3x)
  data-pipeline/main        8 checkpoints   3d ago

Configuration

All variables can go in ~/.context-bridge/.env.

Variable Default Description
ANTHROPIC_API_KEY Enables the Anthropic planner and embedding fallback
VOYAGE_API_KEY Preferred key for semantic embeddings (Voyage AI)
OLLAMA_HOST auto-detected Set if Ollama isn't at localhost:11434
OLLAMA_MODEL qwen2.5-coder:7b Model for the Ollama tier
DB_PATH ~/.context-bridge/checkpoints.db SQLite database path
SERVER_PORT 7723 Backend port

To enable semantic search, install the extra and set either key:

pip install "claude-context-bridge[semantic]"
export VOYAGE_API_KEY=...   # or ANTHROPIC_API_KEY

Why not just use CLAUDE.md?

  • CLAUDE.md is static — context-bridge updates after every task.
  • CLAUDE.md is manual — context-bridge is automatic; you never write the summary yourself.
  • CLAUDE.md can't detect stagnation, surface recurring blockers, or learn across projects.

They compose: CLAUDE.md holds your conventions, context-bridge holds your state.

Manual usage

The hooks are optional. The API works with plain HTTP — see docs/manual-sync.md for project ID derivation, manual checkpointing, and structured event examples.

Contributing

git clone https://github.com/pushkalkumar/context-bridge
cd context-bridge
pip install -e ".[dev]"
pytest

97 tests cover every endpoint and feature. The active package is server/ (hooks in server/hook.py, planner tiers in server/planner.py). Issues and PRs welcome: open issues.

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_context_bridge-0.5.0.tar.gz (47.2 kB view details)

Uploaded Source

Built Distribution

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

claude_context_bridge-0.5.0-py3-none-any.whl (37.7 kB view details)

Uploaded Python 3

File details

Details for the file claude_context_bridge-0.5.0.tar.gz.

File metadata

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

File hashes

Hashes for claude_context_bridge-0.5.0.tar.gz
Algorithm Hash digest
SHA256 a92433c9b37bc9369e879774be36fc9b13ac4f799b01ed19de5c9e7a4b74a244
MD5 0b1dde2cfbb631c7107bf729b5e790b8
BLAKE2b-256 ab7988f05c93c0437e5e9f42fc314c05cbd2948f8331a8bb33406e6760bf5fc9

See more details on using hashes here.

File details

Details for the file claude_context_bridge-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_context_bridge-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97307f2333122637ff434460d1ebce4a48e9b555c8367daa9e7c3d1feac70083
MD5 906a950f45136d0484168f311441b48e
BLAKE2b-256 aca732f8e43eca20e23b7f63da3432d1e94fa35605829e1dbed2de074b3637eb

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