最近使用 Claude Code、Codex 这类终端 Agent 越来越多,尤其是在同时开发多个项目的时候,经常需要同时跑几个 Agent。
一个终端跑 Claude Code,一个终端跑 Codex,再开几个窗口跑其他任务。
用久了以后就会发现一个比较现实的问题:
终端窗口太多了。
哪个 Agent 正在运行、哪个已经完成、哪个在等待授权,有时候需要不停地 Alt + Tab 去确认。
所以我就做了一个小工具:Agent TUI Manager。

一开始真的只是想做个"一键审批"
最开始做这个项目的时候,其实没有想做这么多功能。
当时的想法非常简单:
能不能把多个 Agent 放在一个窗口里,然后统一处理授权?
所以最初主要就是:
多 Agent 管理 + 统一审批。
但是实际使用之后,又陆陆续续加了一些东西。
比如发现有些低风险操作一直重复确认,就加了学习性自动审批和审计。
再后来觉得既然可以自动审批,那是不是可以直接做成全自动运行模式?
但自动化程度越高,风险也越高。
所以又增加了高危指令控制,像删除、覆盖、提权等比较危险的操作,不能简单地跟普通命令一样自动放行。
做到这里以后,又产生了一个新的需求:
人不在电脑旁边的时候怎么办?
于是又加了钉钉 Stream 接入,可以通过钉钉远程查看和控制 Agent。
就这样,一个最开始很小的需求,慢慢长出了现在这些功能。
目前主要功能
1. 多 Agent 统一管理
可以在一个窗口里同时运行和管理多个终端 Agent。
目前主要针对 Claude Code、Codex 等 TUI Agent,也预留了其他 Agent 的适配空间。
可以直接看到不同 Agent 当前的状态,例如:
- 运行中
- 等待授权
- 完成
- 失败
- 停止
不用再开一堆终端然后一个个切。
2. 一键审批
Agent 请求执行命令时,可以在 Manager 中统一处理。
相比在多个终端之间来回切换,至少可以把授权请求集中到一个地方。
3. 自动审批

对于一些低风险、重复出现的操作,可以通过规则进行自动审批。
同时保留审计记录,方便后面查看 Agent 做过什么。
当然,自动审批并不是"什么都允许"。
对于高风险操作,仍然需要额外控制。
毕竟:
全自动跑起来很爽,跑完发现数据库没了就不太爽了。
4. 全自动运行
如果希望 Agent 长时间自己跑,可以开启自动运行模式。
适合一些比较明确、可以让 Agent 自己完成的任务。
5. 高危指令控制
这是自动化之后必须补上的一部分。
对于删除、递归删除、覆盖、提权、工作区外写入等高风险行为,不允许简单通过自动审批规则绕过。
我的想法是:
能自动化的尽量自动化,但不能为了自动化把安全边界一起删掉。
6. 钉钉远程接入
这个功能其实也是我自己使用过程中产生的需求。
通过钉钉 Stream 长连接,可以在手机上查看 Agent 状态、查看部分输出,并进行审批、停止等操作。
这样电脑不在身边的时候,也不用一直惦记着 Agent 有没有卡在授权界面。
说得现实一点:
有时候我只是想上个厕所,也不想回来发现 Agent 半个小时都停在 Please approve。
另外做了一些环境检测
第一次使用的时候,如果电脑上已经安装了 Codex、Claude Code 等 CLI ,希望工具可以自动检测出来。
所以目前也加入了:
- 本地 Agent 环境检测
- CLI 安装状态检测
- 一键安装/配置
这一块目前还在继续完善,毕竟不同电脑环境还是比较复杂,一键安装这种东西看起来简单,真正兼容起来还是有不少坑。
关于 Agent Session,我不希望 Manager 把它"接管"
这个项目还有一个比较重要的设计思路:
Agent TUI Manager 只是管理 Agent,不是 Agent 本身。
所以我没有重新实现 Claude Code、Codex 的会话系统,也不希望把它们的 Session 全部搬到自己的数据库里。
原来的 CLI 怎么保存 Session、怎么 Resume,还是怎么使用。
Manager 自己主要保存一些管理信息,例如 Agent 引用、窗口布局、审批规则和审计信息。
这样即使以后不用 Agent TUI Manager 了,也不应该影响原来的 Claude Code / Codex Session。
为什么没有做成一个"超级 AI IDE"?
其实做着做着很容易往这个方向走。
但我自己不太想这么做。
Claude Code 有自己的 TUI,Codex 也有自己的交互方式。
我更希望 Agent TUI Manager 做的是一个管理层:
Agent 还是原来的 Agent,我只是帮你把它们放到一起管理。
所以目前没有加入复杂的代码编辑、聊天窗口、可视化工作流之类的东西。
我还是希望它保持轻一点。
后面还想做什么?
目前还有一些功能没有完全做好。
比如失败自动 Continue。
有时候 Agent 因为网络、中转或者其他原因突然退出,回来之后还需要手动 Continue。
这个场景其实挺适合自动化。
不过目前这一块还不够稳定,所以暂时没有把它当成成熟功能,后面会继续完善。
技术栈
目前项目主要基于:
- Electron
- React
- TypeScript
- xterm.js
- node-pty
- Windows ConPTY
- Named Pipe
- safeStorage
- 钉钉 Stream
目前主要针对 Windows 开发和测试。
因为我自己主要也是在 Windows 环境下使用,所以第一阶段还是先把 Windows 版本做好。
最后
这个项目从最开始的"一窗口管理多个 Agent",一路加到了现在,其实也算是一个比较典型的个人项目:
一开始只是想解决一个小问题,最后发现周围还有一堆相关的问题。
但无论功能怎么增加,我还是希望它解决的是最实际的事情:
多开几个 Agent 的时候,不要再开一堆终端;人不在电脑旁边的时候,也能继续管理自己的任务。
如果你平时也在使用 Claude Code、Codex 或其他终端 Agent,欢迎试一下。
项目地址:
如果觉得这个项目对你有帮助,欢迎点个 Star ⭐。
如果使用过程中有什么问题、建议或者新的想法,也欢迎提 Issue 或者直接交流。