Rekindle is an MCP session continuity engine. It provides boot reports, orientation scoring, and end-session capture, using SQLite. It is described as addressing the need to maintain project context across sessions, particularly for Claude Code users.
๐ ๏ธ Key Features
Boot reports
Orientation scoring
End-session capture
SQLite-based storage
๐ Use Cases
Preserving AI project context between sessions
Reducing repeated re-explaining of project context in Claude Code
โก Developer Benefits
Setup via npx rekindle init
Maintains continuity data across MCP sessions (SQLite)
โ ๏ธ Limitations
The provided description and readme excerpt do not specify supported tools, APIs, or configuration options beyond initialization
For Claude Code users who lose time re-explaining project context every session.
bash
npx rekindle init
Your AI forgets everything between sessions. Rekindle fixes that.
Rekindle is an MCP continuity engine that solves session orientation, not just storage. Orient at session start, capture at session end, survive mid-session compaction. All local, all SQLite, zero API keys.
v0.3.3 โ version-consistent MCP metadata and package documentation, on top of v0.3.2's one-command session-start delivery installer. Release notes
Quick Start
Requires Node.js 20 or newer.
bash
npx rekindle init
This creates .rekindle/ in your project with a SQLite database, identity template, captures directory, and transcript directory. Then add the MCP server config for your client:
Enable PreCompact protection (captures context before mid-session compaction):
bash
npx rekindle setup-hooks
Enable session-start orientation delivery โ the budgeted orientation packet arrives automatically at startup, resume, /clear, and /compact, so the model re-orients at every context boundary without being asked:
bash
npx rekindle setup-delivery
Both hooks are opt-in; plain init never installs either. npx rekindle init --with-hooks --with-delivery does everything in one line.
Claude Desktop
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
Over 43 sessions, we measured what an AI assistant failed to load at session start:
Metric
Value
Sessions analyzed
43
Clean boots (all context loaded)
33%
High-signal failures (5+ gaps)
26%
Total retrieval failures
173
Existing memory tools (Mem0, Letta, Zep) optimize for retrieval accuracy: can the AI find what it stored? That's necessary but not sufficient. None of them address whether the AI loaded the right context for this session, or whether it can detect what it missed.
Rekindle solves session orientation: loading identity, recent context, memory health, and missing-context warnings before the assistant starts work.
boot_report runs an orientation pipeline before any work begins:
code
boot_report
+-- Read identity document (who am I working with?)
+-- Scan memory stats (what do I know?)
+-- Find latest checkpoint (where did we leave off?)
+-- Read last transcript (what actually happened?)
+-- Surface open loops (what needs follow-up?)
+-- Surface PreCompact captures (what survived compaction?)
+-- Detect gaps (what am I missing?)
+-- Calculate orientation score (how oriented am I?)
--> "Carrying forward: [context loaded, gaps identified, score: 80/100]"
Survive the Long Middle: PreCompact capture (v0.3)
Mid-session compaction destroys reasoning chains, failed approaches, relational texture, and tone. The PreCompact hook fires automatically before compaction and saves what would otherwise be lost:
code
PreCompact hook fires
+-- Parse JSONL transcript (last N messages)
+-- Write raw Markdown capture (.rekindle/captures/)
+-- Write structured JSON snapshot (decisions, open loops, files)
+-- Update manifest for cheap listing
--> boot_report surfaces captures on next session start
--> end_session warns if captures exist but weren't reviewed
Three read modes control token cost:
summary โ one paragraph, cheap
structured โ decisions/loops/warnings, moderate
raw โ full transcript excerpt, expensive (only when needed)
Capture: close the loop at session end
end_session stores structured continuity records โ not just a summary:
Field
What it captures
checkpoint
Where we left off (required)
decisions
What was decided and why
open_loops
Unresolved tasks or questions
constraints
Boundaries that must not be violated
relational_delta
What changed in the working relationship
next_session_focus
Where to resume next session
preferences
New user preferences learned
warnings
Things next session should watch for
All records stored with type, source, and session_id metadata. Next boot_report loads the checkpoint automatically.
Between sessions: search and manage
Tool
Description
store_memory
Store with content, category, importance (1-10), and project scope
search_memory
Full-text search with BM25 ranking, boosted by importance
list_memories
Browse memories, newest first. Filter by category or project
delete_memory
Delete by ID
update_memory
Update content, category, or importance
list_captures
List PreCompact captures (optionally filter by session)
read_capture
Read a capture in summary, structured, or raw mode
capture_now
Manually capture current session context on demand
A static file is passive. Your AI reads it, but it can't search it, rank it, track what's been retrieved, or tell you what's missing. Rekindle adds:
Search โ full-text with importance-weighted ranking
Structure โ category and project scoping across memories
Orientation โ proactive context loading at boot, not just on-demand retrieval
Gap detection โ flags missing identity, empty categories, stale data
Scoring โ transparent checklist so you know how oriented the AI is
Session capture โ structured close with checkpoints, decisions, and open loops
Compaction survival โ PreCompact captures preserve what summaries flatten
Release Highlights
v0.3.3
Version-consistent protocol metadata โ the MCP initialize response derives its version from the shipped package metadata, preventing release-version drift
Package-page accuracy โ the README shipped to npm identifies the current release before the tag and package are created
148 automated tests, plus a packed-artifact check that compares MCP metadata to the installed package version
Session-start delivery โ rekindle session-start emits a budgeted orientation packet via the SessionStart hook at startup, resume, /clear, and /compact
Budgeted packets, truthful receipts โ packets cap at 8,000 valid UTF-8 bytes with an in-packet truncation marker; receipts attest emission only and never claim model visibility
Desktop-safe storage โ storage root never derives from the spawn point (Claude Desktop spawns MCP servers at /); explicit resolution order, fail-loud
Dual-channel guidance โ workflow guidance rides both tool descriptions and MCP instructions, drift structurally impossible
Cursor adapter โ session-start --client cursor with whitelist stdin parsing; email and workspace paths never reach receipts
Measured, not assumed โ every claim above is backed by a published measurement (evidence, spike results)
v0.3.0 โ "Survive the Long Middle" added the PreCompact capture system, open loops, and review tracking โ v0.3.0 release notes
The hook receives session context on stdin (session_id, transcript_path, cwd, hook_event_name) and writes captures to .rekindle/captures/.
Variable
Default
Description
REKINDLE_PRECOMPACT_MAX_MESSAGES
80
Max messages to capture
REKINDLE_PRECOMPACT_MAX_CHARS
120000
Max characters to capture
REKINDLE_BASE_DIR
Resolved (see below)
Base directory for .rekindle/
Storage root resolution. All Rekindle entry points (server, PreCompact hook) resolve the directory holding .rekindle/ through one rule, in order:
REKINDLE_BASE_DIR, if set โ explicit always wins
Derived from REKINDLE_DB_PATH, when it points at a canonical <base>/.rekindle/db/ layout
An existing .rekindle/ in the current working directory (never when cwd is the filesystem root)
An existing .rekindle/ in your home directory
Otherwise: your home directory โ never the spawn point
Rules 3 and 5 exist because some hosts (e.g. Claude Desktop) spawn MCP servers at cwd=/; a spawn point is not a storage location. If storage cannot be created, the server exits with a message naming the fix instead of a stack trace.
Privacy and Security
All data is local. Nothing is sent to external servers.
No network calls. The MCP server communicates via stdio. No HTTP, no telemetry, no analytics.
Transcripts contain conversation text. Do not enable transcript capture if your sessions contain secrets or credentials.
Hook installation is opt-in. Both the capture hook (setup-hooks) and the delivery hook (setup-delivery) must be requested explicitly, by command or by flag. Plain init never installs either.
SQLite database is a regular file. Not encrypted. Use OS-level disk encryption if needed.
.rekindle/ is gitignored. The init command handles this automatically.
boot_report reads local files. Paths are not sandboxed. Only use with MCP clients and prompts you trust.
Compatibility
"Full delivery" means the orientation packet arrives automatically at session boundaries and the model demonstrably sees it โ measured with canary probes at both the receipt layer and the model layer, not assumed. Details and evidence: compatibility spike results.
Client surface
MCP tools
Session-start delivery
Claude Code terminal (macOS)
Tested
Full delivery, measured (startup, resume, /clear, /compact)
The packet is capped at 8,000 valid UTF-8 bytes โ measured: when hook output exceeds the host's limit, the model sees only the leading portion, with no error surfaced. If sections are dropped to fit the budget, an in-packet marker says so, and the receipt in .rekindle/receipts/session-start.jsonl records exactly what was emitted without ever claiming the model saw it.
Cursor: session-start orientation (opt-in)
Cursor's hook system can deliver the budgeted orientation packet at session
start, measured working in the v0.3.1 compatibility spike. Setup is manual
and opt-in โ Rekindle never installs hooks without being asked. Add to
.cursor/hooks.json in your project:
Privacy: Cursor's hook payload includes your account email and workspace
paths. The adapter treats that payload as personal by default: it extracts
only the session ID and workspace root (used in-process for storage
resolution), and neither the raw payload, the email, nor any path is ever
written to receipts or any other artifact. Background agents are bypassed by
default (truthfully receipted); opt in with REKINDLE_ORIENT_BACKGROUND_AGENTS=1.