本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 各位佬好,链接先行: github.com GitHub - lintsinghua/oops: Ctrl+Z for Agent: precise undo & redo in one step.... Ctrl+Z for Agent: precise undo & redo in one step. Works inside Claude Code, Codex, Gemini CLI and Cursor CLI. 写在前面 关于是怎么被agent坑到的 上周收尾项目堆了二十来个一次性脚本,就让 Codex把 scripts 目录收拾一下,package.json 里用不上的脚本也删掉 一轮下来动了30个文件吧应该,scripts清到剩了1个、package.json也改了、src里几个文件的 import也排了序 问题在于这些文件一个都没提交过啊 感觉不太对啊 我下意识去找撤销,但对话一多,具体的某轮的撤销就会覆盖掉找不着 于是开始传统艺能: git checkout .?连我自己上午没提交的改动一起冲掉了 让 Agent 自己改回去?它不知道改前是什么样的,只是写脚本批量做了但是没有读,越改越乱 一个个文件手动比对,啊 去翻issue,发现不是只有我 去翻了下Codex的issue列表,第一条相关的是这个: Codex #9203 :「Please make “/undo” back」 ——2026-01-14 开的, 482 个赞、93 条评论,至今仍是 open 。原帖作者写得很直白 底下的评论基本是同款。Codex 原本是有 /undo 的 ,4月被移除了( PR #19481 “Remove ghost snapshots”)。官方给的理由是使用量低,而且原实现给很多用户(包括没用这个功能的人)带来了严重问题;如果要回归,得重新设计 同类的/rewind需求( #11626 )也有 228 个赞 然后我又去看了 Claude Code 那边,这个场景的话我在 CC 上也遇到过: 三家现状: 于是有了 oops oops —— Agent 的 Ctrl+Z:一键精准撤销/重做。 思路简单直接在文件系统这层看。通过各家Agent的hook来,每一轮开始前和结束后各拍一次增量快照,两者的差就是这一轮的全部改动——不管它是用内置Edit工具、sed、Python heredoc,还是 rm -rf干的,也不管这些文件有没有进git 那个30个文件现在可以这样: $ oops undo ✓ Undid turn #42 · codex · "clean up the build scripts" restored 28 files scripts/ (26), src/ (2) removed 1 file scripts/build.mjs reverted 1 file package.json Changed your mind? oops redo src/里我自己上午改的那两个文件,都可以不动 演示 1. 不用切窗口,在对话里直接打 /oops 在 Claude Code 的对话框里敲 /oops ,这一轮的改动就全撤回了;想反悔就敲 /oops redo 。 在本地执行,不发给模型,不消耗 token(你也可以直接发给agent让它用oops撤销或者重做)。Claude Code 会把这段回复显示成 hook 拦截(“operation blocked by hook”)——以 ✓ oops 开头的那一行才是结果,不是报错 目前支持 Claude Code、Codex、Gemini CLI、Cursor CLI 四家。别的工具(opencode、自研 harness)的话暂时用 oops run -- <你的命令> 包一层,效果其实一样 2. 完整时间线,撤销和重做可以来回切 终端里直接敲 oops ,会打开时间线:每一轮是谁做的、什么时候、提示词是什么、改了几个文件、加了多少行减了多少行,都是有的 选中哪一轮,回车撤销, R 重做, d 看 diff, r 直接回到这一轮之前, / 过滤。 按回车之前看预览 ——这一轮要还原哪些文件、要删掉哪个新增文件 3. 最在意的一点,不误伤自己的改动 Agent 改完之后,如果你又手动改过同一个文件,oops 认得出来这是你改的,撤销时 原样保留 ,并且明确告诉你保留了哪个、为什么 最后提一点是 项目是Go语言写的,性能还不错,然后运行是静默的不会常驻内存 更多功能不赘述了,大家可以去看README吧~ 写在最后 项目很热乎嗯,肯定有粗糙的地方 欢迎佬友们试用、提issue、拍砖、PR,多 多 1 个帖子 - 1 位参与者 阅读完整话题


  • 情报分类:硬件与数码
  • 分类依据:内容涉及硬件、数码产品或通信卡
  • 信息来源:服务器 / LINUX DO - 最新话题
  • 发布时间:2026/10/14 19:11:46