Rekindle

io.github.Skitchy由 GitHub 帳號 Skitchy 發布v0.5.0更新於 Oct 30, 2026

MCP session continuity engine: boot reports, PreCompact capture, session-start delivery, SQLite.

已驗證STDIO僅桌面效率與工作流知識與記憶

概覽

AI 產生的概覽

本機 MCP 連續性引擎:以 SQLite 儲存記憶,並在每次工作階段開始時透過啟動報告、檢查點與壓縮前擷取協助助理重新掌握脈絡。

可以做什麼
  • 在本機 SQLite 資料庫中儲存、搜尋、列出、更新與刪除記憶,支援全文檢索並依重要性加權排序
  • 產生工作階段定位報告,涵蓋身分文件、記憶統計、最新檢查點、未完成事項與缺口
  • 以結構化記錄結束工作階段,包括檢查點、決策、未完成事項、限制條件與下次重點
  • 列出並讀取壓縮前擷取(摘要、結構化或原始模式),也可依需求手動擷取目前脈絡
適用情境
適合助理在每次工作階段都反覆遺失專案脈絡、希望自動重新定位,並長期保留偏好與經驗、在對話中途壓縮後仍能恢復的情況。主要面向 Claude Code 等 stdio MCP 用戶端,於單一機器上使用。
執行需求
需要 Node.js 22 或更新版本,以 npx 啟動的本機 stdio 程序執行。初始化會在專案中建立 .rekindle 目錄,內含 SQLite 資料庫、身分範本與原則檔。壓縮前擷取與工作階段開始投遞兩個掛鉤僅在明確要求時安裝。不需 API 金鑰,也不會連網。
安裝前請注意
逐字稿擷取會保存對話文字,若工作階段含機密或憑證請勿啟用。SQLite 資料庫未加密,啟動報告會讀取本機檔案且未做沙箱限制,請只在信任的用戶端與提示下使用。刪除記憶無法復原。掛鉤會寫入用戶端設定檔,使用全域選項時會套用到本機所有專案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Rekindle,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Rekindle

[npm] [CI] [license] [Glama score]

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 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.5.0: a user card, one Markdown file about you that any agent can read, so a new agent starts out knowing how you work. Plus fixes for transcript discovery, capture tagging and identity scoring. Release notes

Quick Start

Requires Node.js 22 or newer.

bash
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:

Claude Code

One command registers the server:

bash
claude mcp add rekindle -- npx -y rekindle

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

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

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.

Without --global, both commands write the project-local .claude/settings.local.json, so the hooks run only for sessions started in that directory. With --global, they write the user-scope ~/.claude/settings.json, which Claude Code applies in every project on the machine; register the server at the same scope so it is present wherever the hooks fire: claude mcp add --scope user rekindle -- npx -y rekindle (plain claude mcp add is local to the current project).

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.

Claude Desktop

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

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

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

json
{  "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

Carry you between agents: the user card (v0.5)

identity.md tells the agent who it is. The user card tells any agent who you are: how to talk to you, your boundaries, your projects, what to avoid. It's one plain Markdown file that you own and edit; agents suggest changes, you decide.

Start one from the template:

bash
npx rekindle card template ~/user-card.md     # never overwrites an existing file

Or draft one from what your agent already knows, review it, and save what you accept as your card:

bash
mkdir -p ~/card-draftnpx rekindle card compile --out ~/card-draft  # writes card-draft.md and card-worksheet.mdcp ~/card-draft/card-draft.md ~/user-card.md  # after you've reviewed and edited the draft

Then point this store at it:

bash
npx rekindle card path ~/user-card.md

card path only records where the card is. An agent receives the card through Rekindle's orientation output: the SessionStart delivery hook (npx rekindle setup-delivery) in Claude Code, the Cursor adapter, or a boot_report call from any other MCP client.

  • Opt-in. If no card is configured, the card feature adds nothing: no card section and no user_card receipt field.
  • Whole or nothing. With the default policy, the card is the first optional section after the required ones. If it doesn't fit the startup budget it's left out, never cut off partway.
  • Diagnostics stay out of the packet. What happened to the card (included, dropped, missing, unreadable, empty) is recorded in the receipt's user_card field, which holds only the source and status, never the card text or path.
  • compile drafts, you decide. It selects records whose type is preference or constraint, or whose category is preference (project-less by default, plus any projects you name, each project line dated), your identity file's "What I Know About My Person" section, and any reviewed files you pass with --from, which it copies verbatim. It reads at most 2,000 records, newest first. It never writes over your card. Its detection of conflicts, secrets and stale entries is incomplete, so the draft is a candidate list for you to review, not a cleaned card. Details.
  • One card, many agents. Point every store you use at the same file. Agents that can't read your machine (cloud agents) need their own copy; see docs/user-card.md.
  • Trust limit. Any agent with ordinary file access can edit the card file. Rekindle doesn't prevent that; keep the card somewhere you review.

REKINDLE_USER_CARD overrides the configured path; a blank value counts as unset.


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

  • User card (#32): one Markdown file about the user that any agent can read. rekindle card template, card path, card compile, and init --card. Opt-in: if no card is configured, the card feature adds no packet section and no receipt field (the other changes below still apply). See above
  • Transcript discovery stays in the current workspace (#29): automatic discovery could return another project's transcript. It now matches Claude Code's folder naming and only accepts a transcript that records this workspace as its working directory
  • capture_now keeps a transcript with its own session (#28): with only transcript_path, the session id comes from the file name and discovery is skipped; with only session_id, a discovered transcript is used only if it belongs to that session; with both, both are used as given. A blank value counts as omitted, and a resulting id that is empty or hidden is refused
  • Captures are tagged with the resolved project (#30): captures use the same project resolution as session start. Behavior change: a capture made where no project resolves is now untagged (project: null, with a warning) instead of being labelled with the folder name
  • An unfilled identity template no longer scores (#31): the shipped template earns no identity points and shows an identity_unfilled warning; the text is still delivered. Behavior change: the score line now reads "Identity document filled in", and fresh installs score 20 points lower until identity.md is filled in

v0.4.1

  • --global hooks fire everywhere — setup-hooks --global, setup-delivery --global and init --global --with-* now write ~/.claude/settings.json (user scope) instead of ~/.claude/settings.local.json, which Claude Code reads only for sessions started in the home directory (#25). Project-local setup is unchanged. Each command prints the file it wrote
  • Unresolved-workspace warning names the fix — when the session-start packet cannot map the workspace to a project it now says that no checkpoint was loaded and points at the two remedies: add the workspace to the registry it read (.rekindle/projects.json for a project store, ~/.rekindle/projects.json for a --global store), or set REKINDLE_PROJECT. The warning does not expose the absolute registry path
  • Init output matches this README — init leads with claude mcp add rekindle -- npx -y rekindle (claude mcp add --scope user ... under --global, so the server is registered wherever the global hooks fire), lists both opt-in hooks (with --global when used), and prints ~/.rekindle/... paths under --global

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; hooks go to ~/.claude/settings.json
npx rekindle init --with-hooksInit + configure PreCompact capture hook
npx rekindle init --with-deliveryInit + configure SessionStart delivery hook
npx rekindle init --card <file>Init + load <file> as the user card at session start
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 rekindle card template <file>Write a starter user card (never overwrites)
npx rekindle card path <file>Load <file> as the user card at session start (--clear to stop; no argument shows the current one)
npx rekindle card compile --out <dir>Draft a user card from what the store knows, plus a review worksheet (--include-project <name>, --from <file.md>)
npx rekindleStart MCP server (used by Claude Code)

Install from Source

bash
git clone https://github.com/Skitchy/rekindle.gitcd rekindlenpm installnpm run buildnode dist/init/cli.js init
PreCompact Hook Configuration

The setup-hooks command writes this to .claude/settings.local.json (or ~/.claude/settings.json with --global):

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.

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 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)

bash
npx rekindle setup-delivery

writes this to .claude/settings.local.json (or ~/.claude/settings.json with --global):

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:

json
{  "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.

Architecture
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

bash
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), the user card (path resolution, whole-or-nothing delivery, compile safeguards), 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

來源:README.md,提交 f27587c

工具

10

store_memory

Store a new memory in the local SQLite database. Creates a persistent row with an auto-generated UUID, timestamp, and the provided content. Use for preferences, lessons learned, project context, relationship notes, or general information worth remembering across sessions. Memories persist across sessions and are surfaced by boot_report, search_memory, and list_memories. Returns the generated ID on success. Does not deduplicate — calling twice with the same content creates two separate memories.

輸入參數content必填projectcategoryimportanceprovenance

search_memory

Search stored memories using SQLite full-text search (FTS5). Returns results ranked by relevance with higher-importance memories boosted. Each search increments the retrieval_count on matched memories, tracking which memories are accessed most. Use at session start to load relevant context, or mid-session to recall specific information. Returns an array of matching memories with id, content, category, importance, project, created_at, and retrieval_count. Returns an empty array if no matches are found.

輸入參數limitquery必填projectcategory

list_memories

List stored memories from the local SQLite database, ordered newest first. Unlike search_memory, this does not require a query — it returns all memories matching the optional filters. Read-only; does not modify any data. Use to browse what has been stored, audit memory contents, or check memory counts per category or project. Returns an array of memories with id, content, category, importance, project, and created_at.

輸入參數limitprojectcategory

delete_memory

Permanently delete a single memory from the local SQLite database by its ID. This action is irreversible — the row and its full-text search index entry are removed immediately. Use when a memory is outdated, incorrect, or no longer relevant. Returns {success: true} if the memory was found and deleted, or {success: false, message: 'Memory not found'} if the ID does not exist. Does not affect other memories or session records.

輸入參數id必填provenance

update_memory

Update an existing memory in the local SQLite database. Modifies only the fields you provide — omitted fields are left unchanged. The updated_at timestamp is set automatically. If content is changed, the full-text search index is rebuilt for this memory. Returns the full updated memory object on success, or {success: false, message: 'Memory not found'} if the ID does not exist. Use to correct inaccurate memories, adjust importance, or reclassify a memory's category without deleting and re-creating it.

輸入參數id必填contentcategoryimportanceprovenance

boot_report

Generate a session orientation report. Read-only — does not modify any stored data. Reads the identity document from disk, scans the memory database for statistics and the latest checkpoint, finds the most recent transcript file, detects structural gaps (missing identity, stale memories, no checkpoint, etc.), and calculates a 0-100 orientation score across 6 criteria. Also surfaces open loops from prior sessions and any PreCompact captures that preserve context from compacted sessions. Workflow: call boot_report first thing every session, before any substantive work. Orientation scores are structural checks, not guarantees that every relevant context item was loaded.

輸入參數projectidentity_path必填transcript_dir必填

end_session

Capture a structured session handoff. Writes multiple records to the local SQLite database: one checkpoint (required), plus optional decisions, open loops, preferences, constraints, warnings, relational delta, and next session focus. Each record is stored with a typed 'type' column (not content prefixes) and linked to a session record via session_id. Also creates a session row in the sessions table with a summary, orientation score, and gap count. The checkpoint is retrievable by boot_report on the next session start. All records are searchable via search_memory and list_memories. Workflow: call end_session at the end of every substantive session so the next session can pick up the thread.

輸入參數projectwarningsdecisionscheckpoint必填open_loopsprovenancesession_idconstraintspreferencestranscript_pathrelational_deltanext_session_focus

list_captures

List PreCompact captures for the current or recent sessions. PreCompact captures preserve context that would otherwise be lost during mid-session compaction. Workflow: if boot_report lists PreCompact captures, call list_captures then read_capture to recover pre-compaction context before relying on the checkpoint. Before calling end_session, check for unreviewed captures.

輸入參數session_id

read_capture

Read a PreCompact capture by ID. Use this to recover context that was lost during mid-session compaction. Three modes control token cost: 'summary' (one paragraph, cheap), 'structured' (decisions/loops/warnings, moderate), 'raw' (full transcript excerpt, expensive — only when summary or structured is insufficient). Workflow: read recovered captures before relying on the latest checkpoint; start with the lightest mode that answers your question.

輸入參數id必填mode

capture_now

Manually capture current session context to .rekindle/captures/. Use this when you want to preserve the current conversation state — before a complex operation, when context feels at risk, or when the user requests it. Produces the same artifact as the automatic PreCompact hook but triggered on demand. session_id and transcript_path are optional — if omitted, the most recent transcript is discovered automatically.

輸入參數reasonsession_idtranscript_path

版本歷史

4
  1. v0.5.0最新Oct 29, 2026
  2. v0.4.1Oct 25, 2026
  3. v0.4.0Oct 20, 2026
  4. v0.2.1Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分