Wink Pings

coding agent 说做完了,我想看它到底怎么做的

一个本地只读面板,把 Claude Code、Codex、OpenCode 的技能运行过程摊开:问过什么、你批过什么、最后改了什么。开源,无遥测,跑在 127.0.0.1。

让写代码的 agent 跑一个 skill,最难受的时刻往往在结束后:它说做完了,你只看到最后一段回复。中间问过什么、你批准了哪版计划、在权限弹窗里拒了什么、最后改了哪些文件,全散在长会话里。想复盘一次失败运行,要靠翻日志和记忆。

skill-trace 是个本地只读面板,专门补这段空白。它读取 Claude Code、Codex、OpenCode 已经写在磁盘上的会话日志和技能目录,把一次 skill 运行拆成可回放的记录。不需要往 agent 里装东西,也不改 agent 的设置和上下文。它不提升生成质量,解决的是事后解释。

这里的 skill 可以理解成 agent 加载的一段可复用工作流或指令包,通常是一个带 SKILL.md 的文件夹。一次 run 从 agent 加载 skill 或你输入 /skill-name 开始,到下一个 skill 或无关请求结束。中途回答它的问题、短回复 yes 或 2、运行中追加消息,都会留在同一次运行里。

skill-trace 演示:打开一次运行,回放时间线,选择要跟踪的技能

一次运行被拆成三段:你要求了什么,它怎么走的,最后交付了什么。工具调用会折叠成分组,展开能看到每一步的完整输入输出。播放按钮可以按步骤回放。

回放一次运行:请求、步骤和决策侧栏

真正影响结果的是人介入的时刻,面板把它们单独拎出来:Claude 问过的问题和选项、你选了什么或自己填了什么;你批准或打回的计划和反馈;权限弹窗里拒绝的动作;运行中追加的消息、回答和打断。

运行中的人为介入:追加消息、拒绝回滚、带选项的问题

最终回复和它写出的文件改动差异

时间线视图把每一步放在时间轴上,按工具类型上色,连等你回复的时间也算进去。悬停看步骤,点击查详情。

时间线瀑布图和步骤检查器

技能视图会列出本机、项目、插件和内置 skill,带运行次数、平均耗时和 14 天趋势。点开能读渲染后的 SKILL.md、浏览文件、看运行历史。总览页汇总当前在跑什么、skill 一般在什么时候跑、哪些用得最多。

skill-trace 总览:运行次数、当前运行、运行时段和常用技能

技能卡片:运行次数、平均耗时和 14 天趋势

顶部可以切换 Claude Code、Codex、OpenCode,每个 skill 和 run 都带来源标签。设置页能改检测错的目录,也能只跟踪你关心的 skill。页面会实时更新,正在跑的 skill 会出现在总览里,停下来等回复的会标成 Waiting for you。

设置页:按工具检测目录,并选择要跟踪的技能

隐私边界比较清楚:服务只监听 127.0.0.1,不发网络请求,不收集遥测,字体也打包在本地。它只写自己的配置文件 ~/.config/skill-trace/config.json。页面能显示完整请求和工具输出,里面可能带密钥,端口别公开。

安装要求 Node.js 20.19 或更新版本。

git clone https://github.com/Gamehu/skill-trace.git
cd skill-trace
npm install
npm run build
npm start

然后打开 http://localhost:4317。去 Claude Code 里用一个 skill,运行会实时出现。还没有运行记录,可以先跑 npm run build && npm run demo 看生成数据,里面有一个会话保持实时更新。

几点限制写在明面上:Codex 的运行从记录的 SKILL.md 读取推断,技能如果没有留下可观察的文件读取,可能漏掉;OpenCode 用 opencode.db 里的 skill 工具记录,Node 20 下还需要系统里有 sqlite3 命令。

评论区里已经有人提了两个很实际的需求:加一个过滤,专门看你按下停止之后还有没有改动,确认打断有没有生效;把被打回的计划和最终 diff 并排放,用来解释那些看起来莫名其妙的 agent PR。第二个需求很能说明问题,很多运行结果怪,原因藏在中间:某个计划被拒、某个权限被挡、某次追问被忽略。

项目是 MIT 开源,仓库在 GitHub:https://github.com/Gamehu/skill-trace

发布时间: 2026-10-30 08:26