Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/δΈ­ζ–‡
Sign inSign up
Home/Servers/Rekindle

Rekindle

I
by io.github.Skitchy

MCP session continuity engine. Boot reports, orientation scoring, and end-session capture. SQLite.

Power your agent

Add this server

The publisher's own command. Not a PlugMCP endpoint.

Local command
npx -y [email protected]
Provider
Claude Code
claude mcp add io.github.skitchy-rekindle -- npx -y [email protected]

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "io.github.skitchy-rekindle": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • FirecrawlπŸ”₯ Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

Questions

How do I install Rekindle?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Rekindle need an API key?
No required environment variable is listed on this record.
What transport does Rekindle use?
Rekindle runs locally over stdio.
When was Rekindle last checked?
Last checked 2026-10-16. MCP session continuity engine. Boot reports, orientation scoring, and end-session capture. SQLite.

MCP session continuity engine. Boot reports, orientation scoring, and end-session capture. SQLite.

Rekindle

For Claude Code users who lose time re-explaining project context every session.

npx rekindle init

Your AI forgets everything between sessions. Rekindle fixes that.


Rekindle init demo

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.4.0 β€” policy-aware, project-safe session start on Node.js 22 or newer, in a much smaller npm package. Release notes

Quick Start

Requires Node.js 22 or newer.

npx rekindle init

This creates .rekindle/ in your project with a SQLite database, identity template, continuity policy, project registry, captures directory, and transcript directory. Then add the MCP server config for your client:

One command registers the server:

claude mcp add rekindle -- npx -y rekindle

Or add it to ~/.claude.json by hand:

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

Enable PreCompact protection (captures context before mid-session compaction):

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:

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.

Session-start delivery resolves the hook's real working directory through .rekindle/projects.json. Exact roots match by default; nested directories inherit only when an entry sets "include_descendants": true. An unmapped or ambiguous workspace is reported as UNKNOWN PROJECT and never receives a checkpoint or context record from another project. REKINDLE_PROJECT remains an explicit override, and receipts record which resolution rule won.

.rekindle/policy.json controls transcript handling, the startup byte budget, and mandatory versus optional packet sections. Mandatory sections are atomic: if they do not fit, Rekindle emits a bounded failure manifest instead of a partial anchor. Optional sections are omitted whole and recorded in the receipt. Set "transcript_mode": "excluded" to prevent SessionStart from reading transcript files or paths and to mark transcript coverage N/A in the orientation score. Set "background_writes_allowed": false to make the automatic PreCompact hook exit without creating a capture; manual capture remains a separate, explicit action.

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "rekindle": {
      "command": "npx",
      "args": ["-y", "rekindle"]
    }
  }
}

Then fill in .rekindle/identity.md and paste the boot instructions into your project's CLAUDE.md.

Session 1 stores. Session 2 remembers. Session 10 anticipates.


The Problem (43 Sessions of Data)

Over 43 sessions, we measured what an AI assistant failed to load at session start:

MetricValue
Sessions analyzed43
Clean boots (all context loaded)33%
High-signal failures (5+ gaps)26%
Total retrieval failures173

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.

See docs/gap-analysis.md for the full research dataset.


What It Does

Boot: orient at session start

boot_report runs an orientation pipeline before any work begins:

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:

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:

FieldWhat it captures
checkpointWhere we left off (required)
decisionsWhat was decided and why
open_loopsUnresolved tasks or questions
constraintsBoundaries that must not be violated
relational_deltaWhat changed in the working relationship
next_session_focusWhere to resume next session
preferencesNew user preferences learned
warningsThings 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

ToolDescription
store_memoryStore with content, category, importance (1-10), and project scope
search_memoryFull-text search with BM25 ranking, boosted by importance
list_memoriesBrowse memories, newest first. Filter by category or project
delete_memoryDelete by ID
update_memoryUpdate content, category, or importance
list_capturesList PreCompact captures (optionally filter by session)
read_captureRead a capture in summary, structured, or raw mode
capture_nowManually capture current session context on demand

Categories: preference lesson context relationship general


Why not just CLAUDE.md?

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.4.0

  • Node.js 22 or newer required β€” Node 20 reached end of life in April 2026 and is no longer supported; CI runs on Node 22, 24 and 26
  • Policy-aware session start β€” .rekindle/policy.json controls transcript handling (transcript_mode: captured, tail-read-only, or excluded), the startup byte budget, mandatory versus optional packet sections, and whether background hooks may write (background_writes_allowed)
  • Project-safe delivery β€” .rekindle/projects.json maps workspaces to projects; an unmapped or ambiguous workspace is reported as UNKNOWN PROJECT and never receives another project's checkpoint; REKINDLE_PROJECT is an explicit override
  • Transcript filename withheld in tail mode β€” in tail-read-only mode the packet shows the transcript tail but not the file's name
  • Atomic session writes β€” a session row and its audit row commit together or not at all
  • Clean production audit β€” npm audit --omit=dev found zero vulnerabilities (production dependencies)
  • Smaller package β€” the npm tarball drops from about 1.9 MB to about 110 KB; evidence and design documents stay on GitHub

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
  • Expanded automated tests, plus a packed-artifact check that compares MCP metadata to the installed package version

v0.3.2

  • One-command delivery install β€” npx rekindle setup-delivery (or init --with-delivery) configures the SessionStart hook opt-in: idempotent, preserves other tools' hooks, refuses corrupted settings files
  • 147 automated tests

v0.3.1 β€” "Five Measured Gates"

  • 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


CLI Commands

CommandDescription
npx rekindle initSet up .rekindle/ in current directory
npx rekindle init --globalSet up in home directory
npx rekindle init --with-hooksInit + configure PreCompact capture hook
npx rekindle init --with-deliveryInit + configure SessionStart delivery hook
npx rekindle setup-hooksConfigure PreCompact capture hook (standalone)
npx rekindle setup-deliveryConfigure SessionStart delivery hook (standalone)
npx rekindle session-startEmit budgeted orientation packet (SessionStart hook)
npx rekindle session-start --client cursorSame, in Cursor's hook response shape
npx rekindle precompact-captureCapture context before compaction (hook)
npx rekindle capture-nowManually capture current session context
npx rekindleStart MCP server (used by Claude Code)

Install from Source

git clone https://github.com/Skitchy/rekindle.git
cd rekindle
npm install
npm run build
node dist/init/cli.js init

The setup-hooks command writes this to .claude/settings.local.json:

{
  "hooks": {
    "PreCompact": [
      {
        "matcher": "auto",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      },
      {
        "matcher": "manual",
        "hooks": [
          {
            "type": "command",
            "command": "npx rekindle precompact-capture",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

The hook receives session context on stdin (session_id, transcript_path, cwd, hook_event_name) and writes captures to .rekindle/captures/.

VariableDefaultDescription
REKINDLE_PRECOMPACT_MAX_MESSAGES80Max messages to capture
REKINDLE_PRECOMPACT_MAX_CHARS120000Max characters to capture
REKINDLE_BASE_DIRResolved (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:

  1. REKINDLE_BASE_DIR, if set β€” explicit always wins
  2. Derived from REKINDLE_DB_PATH, when it points at a canonical <base>/.rekindle/db/ layout
  3. An existing .rekindle/ in the current working directory (never when cwd is the filesystem root)
  4. An existing .rekindle/ in your home directory
  5. 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.

  • 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 surfaceMCP toolsSession-start delivery
Claude Code terminal (macOS)TestedFull delivery, measured (startup, resume, /clear, /compact)
Claude Code terminal (Windows)TestedFull delivery, measured
Claude Code terminal (Linux/WSL2)TestedHook channel identical; delivery measurement pending
Claude Desktop, Code surfaceTestedFull delivery, measured (/clear re-delivers via new-session startup)
Claude Desktop, chat surfaceTestedTool-mode only: hooks unsupported by the client; guidance reachable via the model's tool-search
CursorTestedVia .cursor/hooks.json, measured (see below)
Any MCP stdio clientCompatibleDepends on the client's hook support

Claude Code: session-start orientation (opt-in)

npx rekindle setup-delivery

writes this to .claude/settings.local.json:

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume|clear|compact",
        "hooks": [
          { "type": "command", "command": "npx rekindle session-start", "timeout": 60 }
        ]
      }
    ]
  }
}

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:

{
  "version": 1,
  "hooks": {
    "sessionStart": [ { "command": "rekindle session-start --client cursor" } ]
  }
}

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.

rekindle/
  src/
    index.ts          MCP server entry point
    server.ts         Server setup, tool registration (10 tools)
    storage/
      sqlite.ts       SQLite + FTS5, schema migration, sessions
    orientation/
      types.ts        OrientationResult, Gap, ScoreItem
      GapDetector.ts  Structural gap detection (8 codes)
      Scorer.ts       Orientation scoring (6 criteria, 100pts)
      OrientationService.ts   Orchestrator
      OrientationRenderer.ts  Markdown + JSON output
    captures/
      types.ts        CaptureEntry, StructuredSnapshot, HookInput
      CaptureManager.ts   Parse, capture, list, read, review tracking
      discover-transcript.ts  Auto-discover session transcripts
      precompact-capture.ts   CLI hook entry point
      capture-now.ts          Manual capture CLI
    tools/
      boot-report.ts  Orientation + open loops + capture awareness
      end-session.ts  Structured session close + capture warning
      list-captures.ts  List PreCompact captures
      read-capture.ts   Read captures in 3 modes
      capture-now.ts    Model-triggered manual capture
      store.ts search.ts list.ts delete.ts update.ts
    delivery/
      budget.ts       UTF-8 packet construction and atomic mandatory sections
      receipts.ts     Emission receipts (never claim model visibility)
      session-start.ts SessionStart hook adapter
      cursor.ts       Cursor hook adapter (privacy-whitelisted stdin)
      guidance.ts     Canonical workflow guidance, both channels
    init/
      cli.ts scaffold.ts setup-hooks.ts setup-delivery.ts templates/

Storage: SQLite + FTS5 via better-sqlite3. BM25 ranking boosted by importance. Typed records with type, source, session_id.

Transport: stdio (standard MCP). Works with Claude Code out of the box.

Tests

npm test

The suite runs in CI on Node 22, 24 and 26 and covers: storage CRUD + FTS5 ranking, orientation domain (gap detection, policy-aware scoring, project resolution, service, rendering), capture manager (parsing, limits, review tracking, formatting), delivery (atomic packet budget, receipts, guidance channels, Cursor privacy sentinels), hook setup for both hooks (schema, idempotency, corruption refusal), and MCP integration (all 10 tools plus package-derived server metadata).

Roadmap

Next: "It thinks in networks" β€” Spreading activation, semantic search via embeddings, gap analysis tooling, eval harness.

License

MIT

How do I install Rekindle?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Rekindle need an API key?
No required environment variable is listed on this record.
What transport does Rekindle use?
Rekindle runs locally over stdio.
When was Rekindle last checked?
Last checked 2026-10-16. MCP session continuity engine. Boot reports, orientation scoring, and end-session capture. SQLite.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Pricing
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • MCP Apps
  • Tools
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • Club
  • Work with us
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA