session-recap

io.github.BruceXcluding由 GitHub 账号 BruceXcluding 发布v0.6.1更新于 Nov 6, 2026

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

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

把本机的 AI 编程会话(Claude Code、Codex、dsh、OpenCode)整理成意图、决策、改动、未完成事项和续接点的摘要。

可以做什么
  • 列出本机 Claude Code、Codex、dsh 和 OpenCode 的已保存会话,按最新排序,可按标题词、项目文件夹或代理筛选
  • 生成会话摘要:意图、关键决策、改动内容、未完成事项和续接点,未指定时默认取当前目录下调用方代理的最新会话
  • 会话未变化时复用已存摘要,否则返回精简后的记录和指示,由助手自己撰写摘要
  • 保存助手写好的摘要,供下次复用并基于新增内容更新
  • 可要求 standup、handoff、PR 等替代格式
适用场景
适合在用户询问某个或早前会话讲的是什么、上次做到哪里,或需要摘要与交接说明时使用。对积累了大量长记录、跨多个代理工作的开发者尤其有用。
运行要求
以 stdio 本地运行,可通过 npx 或全局 npm 安装;需要 Node.js 20+ 和 python3,读取 dsh 会话还需 zstd 命令或 Python 3.14+。通过 MCP 使用时无需 API 密钥,由调用的助手自行撰写摘要;CLI 和查看器的模型为可选项。
安装前请注意
它会读取各代理存储目录中的本地会话记录,并把精简后的记录(提示词、每轮最终回复、提交、PR、编辑过的文件)发送给模型。密钥在发送前按模式匹配替换,但无法覆盖所有格式。摘要会写入本地缓存;可选的 CLI/查看器模型需要 SESSION_RECAP_API_KEY 等服务商凭据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 session-recap,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 0fd412d

工具

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.

输入参数cwdagentlimitquery

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.

输入参数cwdmodeagentformatrefreshsession

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.

输入参数id必填agent必填prompts必填markdown必填

版本历史

2
  1. v0.6.1最新Nov 6, 2026
  2. v0.6.0Nov 5, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分