mcpField
C
codex-session-manager

codex-session-manager

github.com/sugarforeverAgent 工作流139193 次安装1 周前更新
代码仓库

关于 codex-session-manager

codex-session-manager 面向需要整理 Codex 会话记录的用户,可列出候选会话或将 JSONL 导出为 Markdown,并将完整工具内容放在链接文件中。

主要功能

  1. 01将会话导出为 Markdown
  2. 02列出并选择候选会话
  3. 03纳入已归档会话
  4. 04按项目、会话、日期或数量筛选
  5. 05将完整工具内容分离为链接文件

适用场景

  1. 01归档或搜索 Codex 会话
  2. 02选择并导出单个会话
  3. 03在导出中包含已归档记录
  4. 04查看工具活动而不载入完整内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sugarforever/01coder-agent-skills --skill codex-session-manager

安装后在 Claude Code 中输入/codex-session-manager确认已加载。

附带文件agents/openai.yamlscripts/manage_codex_sessions.py

详细介绍

Codex Session Manager

概述

Codex 会将会话记录以 JSONL 文件形式存储在 ~/.codex/sessions/YYYY/MM/DD/*.jsonl 下。归档会话也可能位于 ~/.codex/archived_sessions/*.jsonl 下。使用附带的管理器列出候选会话,或将会话导出为 Markdown 记录,其中包含摘要、时间线、消息文本以及带链接的工具调用详情。

默认输出文件夹:~/.codex/session-markdown。导出到此处之前,请告知用户,并说明他们要求的任何自定义输出文件夹。

快速开始

如果用户的表述明确,就据此选择模式;否则,请在导出前让用户选择:

  • 完整模式:导出所有匹配的会话。适用于归档、备份、广泛搜索或“转换所有会话”之类的请求。
  • 指定模式:先列出候选会话,让用户选择一个,然后仅导出该会话。

可从任意目录运行:

python3 /path/to/codex-session-manager/scripts/manage_codex_sessions.py

实用选项:

  • --mode full:导出所有匹配的会话。这是默认模式。
  • --mode specific --list-candidates:输出带编号的候选表格,不执行导出。
  • --mode specific --pick N:从同一筛选后的候选列表中导出第 N 个候选会话。
  • --include-archived:同时扫描 ~/.codex/archived_sessions。
  • --project <text>:仅导出日期/项目键中包含此文本的会话。
  • --session <text>:仅导出 ID 或文件名中包含此文本的会话。
  • --since YYYY-MM-DD:仅导出在此日期或之后修改的会话。
  • --limit N:导出匹配会话中最近修改的 N 个。
  • --include-tool-details-inline:将完整工具载荷嵌入会话 Markdown 正文,而不是写入附属文件。

指定模式候选流程

当用户想要某个 Codex 会话、不确定需要哪个会话,或要求在转换前检查最近的会话时,请使用此流程。

  1. 运行候选列表命令。除非用户要求其他数量,否则默认使用 --limit 20。
python3 /path/to/codex-session-manager/scripts/manage_codex_sessions.py \
  --mode specific \
  --list-candidates \
  --limit 20
  1. 如果用户提供了日期、会话 ID 片段或归档提示,请使用相同的筛选条件传入:
python3 /path/to/codex-session-manager/scripts/manage_codex_sessions.py \
  --mode specific \
  --list-candidates \
  --since 2026-06-01 \
  --include-archived \
  --limit 20
  1. 向用户展示带编号的候选行。候选表格包含修改时间、日期/项目键、简短会话 ID、cwd,以及首条用户提示词摘录。
  2. 用户选定编号后,使用完全相同的筛选条件重新运行,并加上 --pick N。

如果用户已提供确切的会话 ID 或唯一片段,只要存在任何歧义,就先使用 --mode specific --session <id-or-fragment> --list-candidates。仅当候选列表中恰好有一个匹配项时,才使用 --pick 1 导出。

输出布局

导出器会写入:

~/.codex/session-markdown/
├── index.md
└── <date-or-archive-key>/
    ├── index.md
    ├── <session-id>.md
    └── tool-details/
        └── <session-id>.tools.md

每份会话 Markdown 包含:

  • 摘要:源路径、键、会话 ID、cwd、时间戳、事件/消息/工具计数,以及首条用户提示词摘录。
  • 如果存在工具调用或结果,则包含带链接的工具详情文件。
  • 时间线:会话元数据、用户/助手/开发者消息、推理摘要、工具调用和工具输出。
  • 正文中附带简短的工具摘要;默认将完整 JSON 载荷放在附属文件中。

工作流

  1. 确认源文件夹。默认为 ~/.codex/sessions;用户询问归档会话时,添加 --include-archived。
  2. 如果用户尚未选择模式,请让其选择完整模式或指定模式。
  3. 确认或告知输出文件夹。默认为 ~/.codex/session-markdown。
  4. 对于完整模式,运行管理器脚本,并应用所需的筛选条件。
  5. 对于指定模式,列出候选会话,获取用户选定的编号,然后使用 --pick 导出。
  6. 报告导出的会话数量、输出索引路径以及任何解析警告。

注意事项

  • 将记录数据视为私密信息。其中可能包含提示词、文件内容、命令输出、意外粘贴到聊天中的机密信息以及工具结果。
  • 不要删除或修改原始 .jsonl 文件。
  • 对于较大的会话,优先使用附属工具详情文件。内嵌工具载荷可能会让 Markdown 难以搜索和加载。

评论

支持 Markdown