自用小工具。 在当今Vibe Coding成为主流的时代下, 对于自己和AI之间的对话内容的记录,是有需求的。 希望关了窗口之后,自己和AI的开发的对话内容,能够保存下来。 如果你也有这个需求,这个小工具可以帮到你。
该小工具可以把各类AI(目前支持claude和codex)窗口中和用户对话的信息,收录保存。 统一保存在项目的record中(会自动创建) 里面的md文件,就是对话的记录文件。
功能详细:
把 Claude Code 和 Codex 的 CLI 对话记录,自动转换为人类可读的 Markdown 文件。
把四个文件的文件夹cli-tools,clone到本地的任何一个地方之后,执行install一次就可以。 以后如果有变更文件夹名或者移动文件夹的话,需要再次install以便能够找到。
只需执行一次,即可把 hooks 注册到 Claude Code 和 Codex 中:
python3 ~/.cli-tools/install.py安装后无需任何手动操作。每次对话结束或新会话开始时,hooks 会自动触发转换。
运行时读取
~/.claude/projects/和~/.codex/sessions/下的 JSONL 文件,写入当前项目目录的records/子目录。代码中无任何网络调用。
读取 Claude Code 在 ~/.claude/projects/ 下生成的 JSONL 对话文件,解析其中的 user / assistant 消息(以及工具调用内容),增量追加到 Markdown 文件。
自动触发(已通过 install.py 配置):
Stophook:每次对话结束时,转换当前对话SessionStarthook:每次新会话开始时,补录所有未处理的对话
手动用法:
# 转换最近一次对话(在项目目录下执行,records/ 会生成在当前目录)
python3 ~/.cli-tools/claude2md.py
# 补录所有未处理的对话
python3 ~/.cli-tools/claude2md.py --catchup
# 指定 JSONL 文件 (sample
python3 ~/.cli-tools/claude2md.py ~/.claude/projects/-Users-wesley-code-moomoo/0c9e6faa-1fb5-43f9-aa0b-ee233697b285.jsonl读取 Codex 在 ~/.codex/sessions/ 下生成的 JSONL 对话文件,解析 user / assistant 文字消息,增量追加到 Markdown 文件。
注意:Codex 的 JSONL 不包含工具调用详情,只记录文字消息。
自动触发(已通过 install.py 配置):
Stophook:每次对话结束时,转换当前对话SessionStarthook:每次新会话开始时,补录所有未处理的对话
手动用法:
# 转换最近一次 Codex 对话
python3 ~/.cli-tools/codex2md.py
# 补录所有未处理的对话
python3 ~/.cli-tools/codex2md.py --catchup
# 指定 JSONL 文件 (sample
python3 ~/.cli-tools/codex2md.py ~/.codex/sessions/2026/06/18/rollout-2026-06-18T23-22-45-019edb1c-e72e-7621-9003-fd9ff18d8cc1.jsonl幂等安装脚本,可以重复执行。完成以下三件事:
- 在
~/.zshrc中添加claude2md/codex2mdshell 别名 - 在
~/.claude/settings.json中注册 Claude Code 全局 hooks - 在
~/.codex/hooks.json和~/.codex/config.toml中注册 Codex 全局 hooks
records 文件生成在执行时的当前目录下的 records/ 子目录:
- Claude 记录 (sample):
records/2026-06-21-<uid>.md - Codex 记录 (sample):
records/codex-2026-06-21-<uid>.md
因此建议在项目目录下使用 Claude Code 或 Codex,records 就会自动归到该项目下。