Releasing Handoff — giving AI sessions a memory
We released Handoff, an MCP server and VSCode extension that gives AI coding agents memory that carries across sessions.
Starting from scratch every time
Working with an AI coding agent is not really a matter of having "no memory." The agent's own memory and your project config files can hold some context already. The trouble starts after that.
One problem is that this memory stays inside a single developer's environment. What you were doing, what you decided, what is still left — sharing that context as-is with a teammate on a different setup is far from simple.
The other is the cost of the handoff itself. You can gather context into a handoff document, or compact (compress) the conversation, but the work of doing so burns a meaningful chunk of tokens every time. For a quick task it hardly matters, but across a few days of development this "spend just to hand off" starts to add up.
Handoff keeps that context as structured files, easing both the sharing problem and the wasted tokens of handing off.
Two pieces
Handoff is made of two parts.
- handoff-mcp — an MCP server that gives an AI agent persistent memory. It is written in Rust and published to npm as
handoff-mcp-server. It saves the state of a session into a.handoff/directory at the project root — as tasks, decisions, blockers, and pointers to the files that matter. The next session reads all of that back automatically when it starts. - handoff-vscode — an extension that makes that state visible inside VSCode. It is published on the VSCode Marketplace.
You don't need to memorize any special commands. When you finish for the day, just tell the agent to "close the session," and it writes out what got done and what to do next. The following day, in a fresh session, you only have to say "I want to continue where I left off" — the agent reads the remaining tasks and the context it needs on its own, and picks up right there. No more tedious re-explaining or rewriting long prompts.
Because the memory lives as plain files, you can read it yourself, and it goes into Git just like anything else. That makes it shareable across a team, and by loading only the parts that matter, it keeps the tokens spent on handoff down too.
If you don't need a GUI to manage it, handoff-mcp on its own works perfectly well. The VSCode extension is an extra option for visualizing that state at a glance.

What the extension does
Even though .handoff/ stays as text, the bigger picture gets harder to see as it grows. The extension fills that in and shows the state at a glance.
- Task Explorer — tasks in a tree view, with status icons and priorities you can read at a glance
- Dashboard — task counts by status, completion rate, an effort-budget burndown, a kanban, and a timeline, all in one place
- Gantt Chart — drag to reschedule directly
- Kanban — drag and drop a card, and it is written back to
.handoff/automatically - Metrics — estimate vs. actual, velocity, and session-time analysis
- Time Tracker — a timer tied to the active task, with idle detection
- Session Browser — walk back through past sessions


In a real workflow
Since the remaining context is shared as files, someone else can take over the work too. Even on a different setup, a teammate who loads the same .handoff/ can start from the previous person's decisions and open tasks. Whether it is one person's multi-day effort or a handoff between teammates, no one has to re-explain things just to pass the baton.
It is not a flashy feature. But the friction we most want to shave off in day-to-day work tends to live in quiet places like this. We built what we needed in our own work, and we will keep refining it as we go.

