同时开好几个 Claude Code 会话,手一抖把提示词敲进了错的那个——这个场景大概每个并行跑 agent 的人都遇到过。首尔的 ML 工程师 Soohwan 为此写了一个 macOS 终端 lmux,它最常用的功能就是把发错的提示词收回来。
lmux 的布局借自 cmux:侧边栏放工作区,每个面板里能分屏、开标签页。Reddit 上有人说它是"又一个 cmux 克隆",作者自己也承认乍看之下确实像,但它不是 fork,也没有一行 cmux 的代码。
收回提示词是怎么做的
在 lmux 里,把鼠标悬停在已经发出的提示词上,点一下 ×。Claude Code 会回退到这条提示词之前的状态,会话继续跑,不用重启。已经改过的文件保持改动后的样子,所以得自己看一眼 diff。
如果点的是 ✎,回退方式一样,但提示词会被放回输入框,改完可以重新发送。目前这个功能只支持 Claude Code。
轻量是它存在的理由
作者做 lmux 的初衷很直接:cmux 对他来说功能太多了。lmux 是基于 libghostty 的原生 Swift/AppKit 应用,体积 25 MB。开 20 个工作区时,在他的 M4 Pro 上空闲 CPU 接近 0%;同样的配置下 cmux 0.65.2 大约在 8%。测试方法写在 scripts/BENCH.md 里,可以自己在本机复现。
它不发起任何网络请求。
其余几项设计:
- 每个工作区有状态环和徽章,显示 agent 是在运行、在等你、已完成还是失败。状态来自 Claude Code 的 hooks 和 Codex。按 ⇧⌘J 直接跳到正在等待的那个。
- 其他程序也能上报状态,方式是打印 OSC 7501 转义序列。
- 退出、更新或重启之后,会话会恢复。
- 读取你的 Ghostty 配置。
- 它从不包装 claude 或 codex。为了拿状态,只往 settings.json 里加几个 hook,写入前会把 diff 给你看。
- 从 cmux 迁移过来有一键导入。
- 韩语输入在组词时正常,也修了一些中文和日文输入法的问题。
故意没做的部分
没有内置浏览器,也没有 SSH 工作区。作者说这两样都有用,但正是这类东西让 cmux 在他手里显得重。他更愿意让 lmux 保持一个终端的本分。
限制也很明确:只支持 Apple 芯片上的 macOS 14 及以上;收回提示词目前只对 Claude Code 有效。
lmux 免费,MIT 许可。dmg 可以从 GitHub Releases 下载,或者用 brew install --cask sooftware/tap/lmux 安装。代码在 github.com/sooftware/lmux,站点是 lmux.dev。
作者在文末的请求很实在:如果你也同时跑一堆 agent 会话,他想知道哪里会崩、缺什么,以及回退提示词对你是不是像对他一样有用。
热门跟贴