ccundo 是一款专为 Claude Code 设计的增强型插件,提供无需调用 token 的本地撤销与重做功能。它通过直接解析和跟踪 Claude Code 的会话文件,实现对代码修改操作的精准记录,并支持选择性回滚、完整预览、跨文件级联回退等高级功能。
对于开发者而言,这是一个在本地环境中安全、高效地管理 AI 编码行为的强大工具。
🔥 核心特性
| 功能 | 描述 |
|---|---|
| ✅ 无需 Token 的撤销机制 | 所有操作均基于本地逻辑处理,不消耗 Claude API 的昂贵 token |
| 🔄 智能撤销与重做 | 支持撤销已应用的修改,甚至可以“撤销撤销”,即重做(Redo) |
| 📁 级联操作追踪与撤销 | 自动识别并撤销多个相关文件的更改,确保项目一致性 |
| 👁️ 详细变更预览 | 在执行撤销/重做前,可查看具体将要恢复的内容 |
| 🛠️ 多类型操作跟踪 | 跟踪文件编辑、创建、删除、重命名以及 Bash 命令 |
| 💾 安全备份机制 | 在每次修改前自动创建备份,防止数据丢失 |
| 🌍 多语言支持 | 支持英文与日文界面,未来计划加入更多语言 |
| 🚀 零配置开箱即用 | 无缝集成于 Claude Code 工作流,无需额外设置即可使用 |
使用场景
你是否遇到过以下情况?
“我让 Claude Code 修改了一段代码,但改完之后发现效果不如预期,已经应用了修改,现在想撤回来怎么办?”
传统方式下,你只能手动查找改动点进行还原,费时又容易出错。而 ccundo 可以:
- 精准识别由 Claude Code 引发的所有变更;
- 提供可视化的差异预览;
- 一键撤销整个操作及其引发的级联修改;
- 如果后悔撤销,还能一键“重做”撤销动作。
技术原理简述
ccundo 的核心机制是:
- 监听与解析会话文件
- 实时读取 Claude Code 的本地会话文件;
- 解析其中的文件操作指令(如写入、删除、移动等);
- 构建变更历史图谱
- 记录每个操作的时间戳、涉及的文件路径及变更内容;
- 构建操作之间的依赖关系图,支持跨文件、跨目录的级联撤销;
- 可视化预览与执行撤销
- 在执行撤销前展示完整的 diff 预览;
- 支持逐个操作撤销,或一次性回退到某个时间点;
- 撤销后仍可重做(Redo),形成完整的 undo/redo 栈;
- 安全机制保障
- 每次修改前自动创建备份快照;
- 撤销过程不会破坏当前工作状态;
- 支持撤销失败时的回滚保护;
🧩 功能详解
📂 自动检测 & 解析会话文件
- 直接读取
.claude或claude_session.json文件; - 支持多种会话格式与版本;
- 自动识别操作类型(编辑、创建、删除、重命名、终端命令等);
👁️🗨️ 详细变更预览
- 在撤销或重做前显示完整的文本差异;
- 使用颜色标记添加、删除、修改部分;
- 支持分文件查看每一步的具体变化;
⚙️ 级联撤销 / 重做系统
- 自动识别依赖操作(例如一个修改触发多个文件更新);
- 撤销主操作时,同步回滚所有关联变更;
- 支持完全级联式的 Undo/Redo 操作栈;
💾 安全备份机制
- 每次执行变更前生成原始文件副本;
- 备份存储在
.ccundo_backup目录中; - 支持手动恢复任意备份版本;
🌐 多语言支持
- 当前支持中文、英文与日文;
- 用户界面根据系统语言自动切换;
- 社区可提交翻译 PR 扩展支持语言;
✅ 优势总结
| 优势 | 描述 |
|---|---|
| 🚫 不依赖 Token | 全部操作在本地完成,不调用任何 API |
| 🔁 双向操作支持 | 支持 Undo 和 Redo,形成完整操作栈 |
| 📎 精细粒度控制 | 可按操作单位选择性回滚 |
| 🧹 清理无痕 | 撤销后保留原工程结构完整性 |
| 🛡️ 安全第一 | 所有变更前创建备份,防误删防崩溃 |
| 🧩 无缝集成 | 与 Claude Code 工作流完美兼容,无需额外配置 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...















