What if your AI didn't have to start over every morning?
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 a

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.
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.
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.
# 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 Enter fullscreen mode Exit fullscreen mode 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.
I'd rather you hear the limits from me than find them the hard way.
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