session-recap

io.github.BruceXcludingPublished by GitHub account BruceXcludingv0.6.1Updated Nov 6, 2026

Recap AI coding sessions (Claude Code, Codex, dsh, OpenCode): intent, decisions, open threads.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Recaps local AI coding sessions (Claude Code, Codex, dsh, OpenCode) into intent, decisions, changes, open threads and where to resume.

What you can do
  • List saved sessions of Claude Code, Codex, dsh and OpenCode on the machine, newest first, filtered by title words, project folder or agent
  • Recap a session: intent, key decisions, what changed, open threads and where to resume, defaulting to the newest session of the calling agent in the current folder
  • Reuse a stored recap when the session has not changed, or return a condensed transcript plus instructions for the assistant to write the recap itself
  • Save the recap the assistant wrote so later recaps reuse and update it
  • Request alternative formats such as standup, handoff or PR notes
When to use it
Useful when someone asks what an earlier coding session was about, where they left off, or wants a summary or handoff note across long sessions and several agents. Best for developers who accumulate large transcripts they no longer remember.
Requirements
Runs locally over stdio via npx or a global npm install; needs Node.js 20+ and python3, plus the zstd command or Python 3.14+ for dsh sessions. No API key is required through MCP because the calling assistant writes the recap; a model is optional for the CLI and viewer.
Before you install
It reads local session transcripts from agent storage folders and sends a condensed transcript (prompts, final replies, commits, PRs, edited files) to a model. Secrets are redacted by pattern matching before sending, which cannot catch every format. Recaps are written to a local cache, and the optional CLI/viewer model needs provider credentials such as SESSION_RECAP_API_KEY.

Installation

In SourceWeft

  1. Open session-recap in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

session-recap

English | 中文

[session-recap icon]

Remember what every AI coding session was for.

intent · key decisions · what changed · open threads · where to resume, for sessions of any length, from any agent, through MCP, a local viewer or a plugin

[tests] [release] [npm] [license]

[Claude Code]  [Codex]  [dsh]  [OpenCode]


Projects grow, and so does the number of sessions in each one, often across several agents. After a few weeks a session is a 100 MB transcript you no longer remember: why you started it, what you decided, what was left half done.

session-recap reads a session's whole transcript and writes a short, structured recap. Use it from any MCP client (Codex, Cursor, Zed, Cline, Gemini CLI, OpenCode, Claude Code…), in a local viewer for every agent's sessions, from the command line, or through native plugins for Claude Code, dsh and Codex.

[A recap: an Intent card, a Where to resume card, and tabs for decisions, changes and open threads]

SectionWhat it answers
IntentWhat was I ultimately trying to achieve?
Key ideas and decisionsWhat did we choose, and why? Which alternatives were rejected?
What changedFiles, features, documents, commits, PRs
Open threadsWhat is unfinished, unverified or still a question
Where to resumeThe most sensible next step today

Every recap also has a Map: the phases the work went through (pivots marked) down to "you are here", the key decisions with what was turned down, and lists of what shipped, what is open and what was dropped. Recaps are written in the language you mostly write in.

Quick start

bash
npm install -g session-recapsession-recap mcp-config            # prints the MCP entry for your clientsession-recap serve                 # opens the local viewer

Then, in your agent: "Recap this session", "What was my last session in this project about?", "总结一下这个会话".

No API key needed. Through MCP, the agent you are talking to writes the recap with its own model; session-recap only reads and condenses the transcript. A model of session-recap's own is optional (for the CLI and the viewer's Write recap button).

Or run it without installing: npx session-recap …. session-recap has no dependencies and runs no install scripts. The development version: npm install -g github:BruceXcluding/session-recap --allow-git=all (npm 12 blocks installs from GitHub without the flag).

Requirements: Node.js 20+, python3 (macOS ships one), and for dsh sessions the zstd command or Python 3.14+.

Ways to use it

Best forHow
MCP serverany MCP clientsession-recap mcp-config <client>, see below
Local viewerbrowsing every agent's sessions, Recap and Mapsession-recap serve
Claude Code plugina Recap / Map pane beside the chat/plugin install session-recap --marketplace BruceXcluding/session-recap
dsh plugin/recap and the session_recap tool in dshpackages/dsh
Codex pluginthe MCP server, packaged for Codexplugins/codex
Command linescripts, quick looks, other formatssession-recap, session-recap list

MCP server

session-recap mcp-config <client> prints the entry for claude, codex, cursor, gemini (and Qwen Code), opencode, zed, vscode or cline, with absolute paths so an IDE started from the dock finds it. For example:

bash
session-recap mcp-config codex >> ~/.codex/config.tomlclaude mcp add --scope user session-recap -- session-recap mcp

Tools:

ToolWhat it does
list_sessionsSessions of every agent, filtered by title words, project folder or agent
recap_sessionThe recap of the current session (or one named): a stored one if the session has not changed; else written by session-recap's model if one is configured; else the condensed, secret-free transcript and instructions for the calling agent to write it
save_recapStores the recap the agent wrote, so it is reused, and updated from the new part next time

recap_session also takes format: standup, handoff or pr instead of the recap.

Local viewer

session-recap serve opens http://127.0.0.1:4711 with every agent's sessions by project folder, grouped by time, filtered by agent; each session's Recap and Map; and, with a model configured, Write recap and Update recap. It reads the recaps written by the Claude Code plugin, the CLI and MCP clients alike. It answers only on loopback, to the browser tab it opened.

Claude Code plugin

/session-recap recaps the session you are in; /session-recap browse lists projects and sessions; /session-recap <name> opens a project or a session by name. The pane shows Recap and Map, uses the session's own model (or one picked under Model), and shows your Claude Code sessions first, with All agents one tap away.

Command line

CommandWhat it does
session-recap [words]Recaps the session whose title holds the words; with none, the newest one in this folder
session-recap list [words]Lists sessions (the calling agent's; --all for every agent)
session-recap --format standupA standup note instead (handoff, pr)
session-recap --dry-runShows the size that would be sent, and how many secrets were removed, without calling a model
session-recap modelsLists your provider's models
session-recap config set model <id>Saves settings (partModel, api, baseUrl; the key with config set apiKey - from stdin)

The CLI's own model: SESSION_RECAP_API (anthropic or openai), SESSION_RECAP_BASE_URL, SESSION_RECAP_API_KEY, SESSION_RECAP_MODEL, or ANTHROPIC_*, DEEPSEEK_API_KEY, OPENAI_API_KEY.

Supported agents

AgentSessions read from
Claude Code~/.claude/projects/
Codex~/.codex/sessions/, archived_sessions/ (review threads left out)
dsh (deepseek-harness)~/.dsh/sessions/ (zstd; subagent sessions left out)
OpenCode~/.local/share/opencode/opencode.db

Want another? Adding an agent is one reader and one test, or ask for it.

Privacy

  • Local. Sessions are read on your machine. Text leaves it only in the model call a recap needs: your agent's (MCP, plugins) or the one you configured (CLI, viewer). No telemetry.
  • Secrets removed first. Keys, tokens, private keys, credentials in URLs and PASSWORD=…-style assignments are replaced with [REDACTED:<kind>] before any text reaches a model. --dry-run shows how many. It is pattern matching, so it cannot know every format: see SECURITY.md.
  • What is sent is a condensed transcript: your prompts, each turn's final reply, commits and PRs, the files edited. Tool output and intermediate replies are left out.

Token use

Listing never calls a model. On a real 179 MB Claude Code session (220 prompts), a first recap sends about 195k characters (~96k tokens); when the session continues, an update reads only the new prompts. Long sessions are condensed in parts of ≤75k characters, each part's notes cached, and a cheaper model can condense the parts (partModel).

How it works

saved sessions (Claude Code · Codex · dsh · OpenCode)        │hooks/digest.py      one reader per agent → turns (prompt, actions, final reply, edits) → secrets removed        │core/recap.mjs       parts → notes (parallel, cached) → one call writes the recap and its map, or updates it        │MCP server · viewer · CLI · Claude Code pane · dsh tool and /recap      (one cache: ~/.cache/session-recap)

Output is versioned: see docs/data-format.md and schema/recap-v1.schema.json to build your own viewer or exporter.

Contributing

Agents, recap formats, translations and viewers are all welcome. Start with CONTRIBUTING.md; adding an agent and adding a format (one entry in core/formats.mjs) are the easiest first contributions.

License

MIT

Source: README.md at commit 0fd412d

Tools

3

list_sessions

List AI coding sessions

Lists saved sessions of Claude Code, Codex, dsh and OpenCode on this machine, newest first: agent, id, title, project folder, last activity. Filter by words in the title, by project folder, or by agent.

Parameterscwdagentlimitquery

recap_session

Recap a session

Recaps a coding session: intent, key decisions, what changed, open threads, where to resume. With no session given, the newest session of the calling agent in `cwd`. Returns a stored recap when the session has not changed since. Otherwise, if session-recap has a model configured it writes the recap; if not, it returns the condensed transcript and instructions, and you write the recap yourself and store it with save_recap.

Parameterscwdmodeagentformatrefreshsession

save_recap

Store a recap you wrote

Stores the recap you wrote for a session after recap_session returned its transcript, so the next recap of that session is reused or updated from it. Pass the agent, id and prompts recap_session gave you.

Parametersidrequiredagentrequiredpromptsrequiredmarkdownrequired

Version history

2
  1. v0.6.1LatestNov 6, 2026
  2. v0.6.0Nov 5, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts