Rekindle 如何讓 AI 助手不必每天從頭開始?
What if your AI didn't have to start over every morning?
Skitch 介紹開源 MCP 伺服器及 CLI Rekindle,利用本機 SQLite 儲存工作階段交接,並在下一次工作階段提供啟動狀態報告。作者在六週內逾 43 次個人工作階段中記錄 173 次遺漏,只有 33% 的工作階段未出現遺漏;他註明這是單人觀察,並非基準測試。
If you worked beside someone every day, and every morning they walked in with no memory of yesterday, how long would it take before you stopped treating them like a partner and started treating them like a tool?
That's the relationship most of us have with our AI assistants right now. We spend an afternoon with Claude working through a tricky refactor. We agree on an approach, rule out two dead ends, and learn that one config file must never be touched. Then the session ends. The next morning we open a new one, and it's a stranger again. Friendly, capable, and completely blank.
So we start the day by re-explaining. Where we left off. What we decided. What we already tried. It's a small tax, but we pay it every single session, and it adds up.
Why this matters more than it looks
Think about a night-shift nurse handing off to the day shift. Nobody expects the day nurse to remember the night. What they get is a good handoff: what happened, what's still open, what to watch out for. The handoff is what lets care continue even though the people change.
Our AI sessions have no handoff. Each one starts cold.
I wanted to know how bad that really was, so I measured it. Over 43 of my own sessions across six weeks this spring, I logged every time the assistant needed something it should have known but didn't. That could be a lookup after it had "oriented," a "we already tried that" from me, or the assistant admitting it was missing something. Only 33% of sessions started clean. 26% had five or more misses. That's 173 misses in all.
To be fair about it, this is one person's setup, and it was already a fairly mature memory system. It's n=1, not a benchmark. The full write-up is in the repo if you want to poke at it. But it matched what I felt every day: the assistant could find things when asked, yet it often didn't know what it was missing.
That's the distinction Rekindle is built around. Storing memories is one problem. Showing up oriented is a different one.
What Rekindle does
Rekindle is a small open-source MCP server and CLI. It runs entirely on your machine, on a local SQLite file. It has no API keys and no network calls. It works in three moments.
At the end of a session, the assistant calls end_session and writes a structured handoff. The fields are a checkpoint (required), decisions, open loops, constraints, warnings, preferences, what changed in the working relationship, and where to pick up next. It's more than a summary. It's a note to the next shift.
At the start of the next session, the boot_report tool builds an orientation report. It reads your identity notes and the last checkpoint, lists open loops, flags gaps (missing identity, empty categories, stale data), and gives a simple 0–100 score so you can see at a glance how oriented the assistant is. In Claude Code, an opt-in SessionStart hook can also deliver a budgeted orientation packet automatically at startup, resume, /clear and /compact, so the model doesn't have to be asked.
In the long middle, an opt-in PreCompact hook saves a copy of recent conversation before Claude Code compacts the context. You can read it back later as a summary, a structured view, or the raw transcript excerpt.
Between those moments there are plain memory tools too: store_memory, search_memory (full-text, BM25-ranked and weighted by importance), list_memories, update_memory and delete_memory, plus list_captures, read_capture and capture_now for the compaction captures. That's 10 tools in all.
Quick start
You need Node.js 22 or newer.
# in your project
npx rekindle init
# register the server with Claude Code
claude mcp add rekindle -- npx -y rekindle
# optional: save context before compaction
npx rekindle setup-hooks
# optional: deliver the orientation packet at every session start
npx rekindle setup-delivery
init creates a local .rekindle/ folder (database and an identity template) and keeps it out of git. Neither hook is installed unless you ask for it. Then fill in .rekindle/identity.md and paste the boot instructions that init prints into your CLAUDE.md.
If you want one memory across every project, npx rekindle init --global sets things up in your home directory, and the hooks then go in your user-level Claude Code settings. Pair it with claude mcp add --scope user rekindle -- npx -y rekindle. Cursor and Claude Desktop work too, with the usual mcpServers JSON entry. The README has the snippets.
What it doesn't do (yet)
I'd rather you hear the limits from me than find them the hard way.
-
The automatic packet is lean. The SessionStart hook delivers your identity notes and the last checkpoint. Open loops and recent captures show up when the assistant calls
boot_report, not in the automatic packet. Some handoff fields, like next focus, constraints and warnings, are stored but only come back if someone searches for them. Closing that gap is my top priority. - The score is a checklist, not a judgment. It checks that things exist. It doesn't check that they're fresh or true. A months-old checkpoint scores the same as last night's.
- Compaction captures are mostly the raw tail. The "structured" view is a placeholder until it's reviewed, so the value today is the saved transcript itself.
- No semantic search. It's keyword search with good ranking. Embeddings are on the roadmap.
-
It's not a vault. The SQLite file isn't encrypted, and
boot_reportreads local paths you give it. Use disk encryption if that matters to you, and only connect clients you trust. Don't enable transcript capture in sessions that handle secrets. - Coverage varies by client. Session-start delivery is measured on Claude Code (macOS, Windows), Claude Desktop's Code surface, and Cursor via hooks. On Linux the hook path is the same, but I haven't finished measuring delivery there yet. Claude Desktop's chat surface has no hooks, so it's tools only.
- It's young. v0.4.1 has 568 tests running in CI on Node 22, 24 and 26. It's still one maintainer's project.
Why I keep building it
Here's where I've landed. A tool you have to re-introduce yourself to every day stays a tool. A partner remembers what you were doing together, what you promised each other, and what not to break. Continuity is the line between the two.
Rekindle won't make an AI remember the way we do. What it can do is make sure each new session starts with an honest handoff, and with a clear list of what it doesn't know. That's a small step, but I think it's the right first one toward giving people the gift of an AI partnership instead of just a tool.
If you try it, I'd love to hear two things: what a good handoff should contain, and whether the score helps you or just adds noise.
Repo: https://github.com/Skitchy/rekindle (MIT) · npm: rekindle
— Skitch
來源:DEV Community · dev.to