构建 CLI 工具以浏览 AI 编码助手日志(Claude Code 与 Codex CLI)

发布: (2025年12月19日 GMT+8 07:58)
4 min read
原文: Dev.to

Source: Dev.to

问题

如果你在使用 Claude Code 或 OpenAI Codex CLI 这类 AI 编码助手,可能会遇到以下情形:

  • “Claude 上周给的那个解决方案是什么?”
  • “我当时用了哪个提示词效果这么好?”

这两个工具都会把对话日志保存在本地,但要找过去的会话非常痛苦:

# Claude Code 日志
~/.claude/projects//*.jsonl

# Codex CLI 日志  
~/.codex/sessions/YYYY/MM/DD/*.jsonl

手动在这些嵌套目录中导航?不想这么做。

解决方案

我编写了两个简单的 shell 脚本,使用 fzf 实现交互式日志浏览:

每个脚本都是单文件(约 200 行),只需要 fzfjq,开箱即用。

功能

两款工具共享相同的命令结构:

命令描述
(无参数)交互模式 – 使用 fzf 浏览
list显示所有项目/月份
latest查看最近一次会话
tail实时监控进行中的会话
status检查 CLI 是否在运行

快速演示

交互模式

$ claude-logs
# → 用 fzf 选择项目
# → 用 fzf 选择会话
# → 查看格式化后的对话

实时监控

$ claude-logs tail
# → 实时观看活动会话(Ctrl+C 退出)

状态检查

$ claude-logs status
Claude Code 正在运行 (PID: 12345)

最近的会话:
  2025-12-18 15:30 - my-project
  2025-12-18 14:00 - another-project

输出格式

原始的 JSONL 日志会被转换为可读的对话形式:

━━━━━━━━━━ USER ━━━━━━━━━━
Fix the bug in this function

━━━━━━━━━━ CLAUDE ━━━━━━━━━━
I found the issue. The problem is...

🔧 [Tool: Edit file]

对于 Codex CLI,还会显示项目路径和 Git 分支信息:

=== rollout-xxx.jsonl ===
Project: /Users/me/my-project | Branch: main

安装

前置条件

brew install fzf jq

安装 claude-logs

git clone https://github.com/wondercoms/claude-logs.git
chmod +x claude-logs/claude-logs
cp claude-logs/claude-logs ~/.local/bin/

安装 codex-logs

git clone https://github.com/wondercoms/codex-logs.git
chmod +x codex-logs/codex-logs
cp codex-logs/codex-logs ~/.local/bin/

注意: 确保 ~/.local/bin 已加入你的 PATH

工作原理

这两个工具的思路很直接:

  1. 扫描 日志目录结构。
  2. 解析 JSONL 文件(使用 jq)以提取消息。
  3. 展示 选项(使用 fzf,并带预览)。
  4. 格式化 输出(使用 ANSI 颜色)。

fzf 的预览功能是关键——在打开之前就能看到对话片段:

fzf --preview 'head -20 {} | jq -r "..."'

使用场景

  1. 查找过去的解决方案 – 找到之前是如何解决类似问题的。
  2. 复用有效的提示词 – 发现表现好的提示词并加以改进。
  3. 每日回顾 – 回顾今天在 AI 辅助下完成了哪些工作。
  4. 调试 – 当 AI CLI 行为异常时检查日志。

当前局限

  • 仅支持 macOS(使用 stat -f 获取时间戳)。
  • 若要支持 Linux,需要改为 stat --format ——欢迎提交 PR!

链接

结语

如果你是 Claude Code 或 Codex CLI 的重度用户,试试这些工具吧。它们轻量、依赖少,能够解决真实的使用烦恼。

发现 bug?想要 Linux 支持?欢迎提交 Issue 和 PR!

Back to Blog

相关文章

阅读更多 »

记录我的学习之旅第34天

我今天做了什么 - 构建了一个 CLI note‑taking 应用。功能 基本功能包括:- 创建笔记 - 潜在扩展:timestamp、searching 等。

第30天 记录我的学习之旅

封面图片:Day 30 Of Documenting My Learning Journey https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%...

Skills 正式加入 Codex

Agent Skills 让您能够通过任务特定的功能扩展 Codex。一个 skill 包含指令、资源和可选脚本,使 Codex 能够执行特定的…

Rust 的电影感 ANSI 横幅

tui-banner:瞬间将你的 Rust CLI 变成电影级杰作!Banner 预览 https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%...