Claude Code 崩了?让 csift 帮你从日志里捞回一切
Claude Code 崩了?让 csift 帮你从日志里捞回一切
用 Claude Code 干过这些事的,举手:
- 开了一堆 session,某个 session 删了你文件然后跟你说”抱歉我帮你恢复了”——结果恢复出来是残的
- compaction 之后图片全丢了,agent 坚称”你从来没发过”
- 项目根目录多了个
jazzy-twilight-sparkle.md,不记得是哪个 session 写的 - 机器重启了,三个 session 全变”resume”列表里的无名氏
这些场景,Claude Code 自己的日志(.jsonl)里全都有记录。但你没法直接读——那是给机器看的高密度 JSON,不是给人看的。
csift 就是来解决这个的。
它是什么
csift(读作 “see-sift”)是一个 Rust 写的命令行工具,专门从 Claude Code 的 .jsonl 会话日志里挖东西。MIT 协议,零依赖,单二进制,跑完即走。
核心能力就一个:正则搜索 + 结构化输出。一行命令,跨所有 record 类型(prompt、tool call、file edit、subagent 消息、粘贴图片……)搜,然后给你干净的摘要式结果。
能干什么
几个真实场景:
搜”上周哪个 session 讨论过 rate limiting”
csift search "rate limit" @1a2b3c4d -t agent --since 1d
返回:这个 session 的第 42 轮消息里,agent 说”加了滑动窗口限速器,429 路径返回 Retry-After,代码在 gateway/src/rate_limit.rs:88″。完整上下文,不需要开 GUI,不需要加载向量库。
从报废 session 里捞回被删的文件
agent 误删了你的代码然后开始”从记忆里重建”?csift 能把 session 里所有 file edit 操作按时间线重建出来,帮你找到”删了什么 + 当时写了什么”。
匹配 plan 文件和对应 session
Claude Code 里的 plan 文件名字是随机生成的(jazzy-twilight-sparkle.md),跟 session 名字对不上。csift 能查”这个 plan 文件是在哪个 session 的 EnterPlanMode 里创建的”,把散落的东西关联回来。
恢复 compaction 丢掉的图片
compaction 会把图片转成文本片段丢失,但原始图片 base64 其实还在 jsonl 里。csift 能把它们捞回来。
为什么是 Rust
作者在 README 里解释过:Claude Code 的 session 日志可能非常大(数千轮对话、很多图片),grep 在大文件上会卡。Rust 的 SIMD 向量化搜索 + 流式处理,让 csift 在这类文件上比纯文本工具快几个量级。
而且是真正的零依赖:不需要 Python、不需要数据库、不需要跑服务。装完就能用。
怎么安装
cargo install csift
或者直接下预编译的二进制。
装完之后,在你的 Claude Code 项目里直接跑:
csift search "关键词" --since 7d
搞定。
谁适合用
如果你:
- 长期用 Claude Code 做复杂项目
- 经常需要回溯”上一轮这个改动是谁建议的”
- 遇到 session 崩溃需要复盘现场
- 想审计 agent 行为但不想自己写 JSON 解析器
csift 值得一试。
GitHub:https://github.com/wdhwg001/csift
评论区
登录后可评论。