关于 claude-session-manager
claude-session-manager 面向需要整理 Claude Code 会话记录的用户,可列出候选会话或将 JSONL 导出为按项目组织的 Markdown,并将工具详情单独链接。
主要功能
- 01将会话导出为 Markdown
- 02列出并选择候选会话
- 03按项目、会话、日期或数量筛选
- 04将工具详情分离为链接文件
- 05生成索引并按项目整理
适用场景
- 01归档或搜索所有 Claude Code 会话
- 02选择并导出单个会话
- 03查看工具活动而不载入完整内容
- 04限定项目或日期范围导出
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sugarforever/ 01coder-agent-skills --skill claude-session-manager安装后在 Claude Code 中输入/claude-session-manager确认已加载。
附带文件agents/openai.yamlscripts/manage_claude_sessions.py
详细介绍
Claude 会话管理器
概述
Claude Code 会将会话记录以 JSONL 文件的形式存储在 ~/.claude/projects/<project-key>/<session-id>.jsonl 下。使用随附的管理器列出候选会话,或将会话导出为按项目整理的 Markdown 记录,其中包含摘要、清晰的用户/Claude 对话,以及带链接的工具调用详情。
默认输出文件夹:~/.claude/session-markdown。导出到此处前,请告知用户,并说明他们要求的任何自定义输出文件夹。
快速开始
如果用户的措辞能明确表明模式,就按其意图选择模式;否则,请在导出前让他们选择:
- 完整模式:导出所有匹配的会话。适用于归档、备份、广泛搜索或“转换所有会话”之类的请求。
- 指定模式:先列出候选会话,让用户选择一个,然后仅导出该会话。
可在任意目录中运行:
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py
等效的显式形式:
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
--source ~/.claude/projects \
--output ~/.claude/session-markdown
常用选项:
--mode full:导出所有匹配的会话。这是默认模式。--mode specific --list-candidates:打印带编号的候选会话表,不执行导出。--mode specific --pick N:从同一筛选后的候选列表中导出第 N 个候选会话。--project <text>:仅导出键中包含此文本的项目文件夹。--session <text>:仅导出 ID 或文件名中包含此文本的会话。--since YYYY-MM-DD:仅导出在此日期或之后修改的会话。--limit N:导出最近修改的 N 个匹配会话。--include-tool-details-inline:在会话主 Markdown 中嵌入完整的工具输入/结果。默认情况下,主记录会保留精简的可折叠工具摘要,并通过 sidecar 文件链接到完整负载。
指定模式候选会话流程
当用户想要一个会话、不确定需要哪个会话,或要求在转换前查看最近的会话时,使用此流程。
- 运行候选列表命令。除非用户要求其他数量,否则默认使用
--limit 20。
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
--mode specific \
--list-candidates \
--limit 20
- 如果用户提供了项目提示、日期或会话 ID 片段,请将其作为相同筛选条件传入:
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
--mode specific \
--list-candidates \
--project my-repo \
--since 2026-06-01 \
--limit 20
- 向用户展示带编号的候选行。候选会话表包含修改时间、项目键、简短会话 ID、cwd 和首条用户提示摘录。这些信息可用于选择;不要让用户检查原始 JSONL 路径。
- 用户选定编号后,使用完全相同的筛选条件和
--pick N重新运行:
python3 /path/to/claude-session-manager/scripts/manage_claude_sessions.py \
--mode specific \
--pick 3 \
--limit 20
如果用户已经提供了确切的会话 ID 或唯一片段,只要存在任何歧义,就先使用 --mode specific --session <id-or-fragment> --list-candidates。仅当候选列表中恰好有一个匹配项时,才使用 --pick 1 导出。
输出布局
导出器会写入:
~/.claude/session-markdown/
├── index.md
└── <project-key>/
├── index.md
├── <session-id>.md
└── tool-details/
└── <session-id>.tools.md
保留原始 Claude 项目键作为文件夹名称。它稳定可靠,也无需猜测路径解码方式。
每个会话 Markdown 文件都包含:
- 摘要:源路径、项目键、会话 ID、cwd、时间戳、事件/消息/工具计数,以及首条用户提示摘录。
- 如果存在工具调用或结果,则包含带链接的工具详情文件。
- 时间线:所有事件都显示在
## Timeline部分下,采用带编号的三级标题和 ISO-8601 格式:用户轮次使用### N. user - <ISO>,助手轮次使用### N. assistant - <ISO>。 - 主对话中的消息内容也应避免使用 Markdown 标题语法;将标题转换为代码围栏之外的粗体行,以免常规 Markdown 阅读器在对话内容中渲染过大的标题。
- 在相关助手轮次中显示精简的工具引用,例如
<tool_call_000001> Bash - command: npm test - result;默认情况下,sidecar 详情文件中会包含对应的章节。 - 元数据和附件事件(
### N. attachment - <ISO>、### N. permission-mode、### N. file-history-snapshot、### N. last-prompt等)以及助手轮次中的[thinking]内容块,会作为独立的带编号事件显示在时间线中。阅读时可忽略这些噪声内容;它们不包含对话内容。
阅读导出的会话
- 先阅读主会话 Markdown。对话和精简的工具引用应足以帮助理解流程。
- 将每个
<tool_call_000001>引用视为指向tool-details/<session-id>.tools.md的指针。 - 只有在需要查看确切的命令输入、文件内容、搜索结果或完整工具输出时,才打开工具详情文件。
- 对于较大的会话,默认不要加载整个辅助文件;请搜索特定的工具引用。
工作流
- 确认源文件夹。默认为
~/.claude/projects。 - 如果用户尚未选择,请让用户选择完整模式或指定模式。
- 确认或告知输出文件夹。默认为
~/.claude/session-markdown。 - 对于完整模式,使用所需的筛选条件运行导出脚本。
- 对于指定模式,列出候选项,获取用户选择的编号,然后使用
--pick导出。 - 报告导出的会话数量、输出索引路径以及任何解析警告。
- 如果用户希望了解某个特定会话,先阅读生成的 Markdown;只有在需要查看确切的工具输入/结果时,才加载辅助文件中的工具详情。
备注
- 将转录数据视为私密内容。它可能包含提示词、文件内容、命令输出、意外粘贴到聊天中的密钥以及工具结果。
- 不要删除或修改原始
.jsonl文件。 - 对于较大的会话,优先使用辅助文件中的工具详情。内嵌工具负载可能导致 Markdown 难以搜索和加载。