在终端窗口里管理一个AI编程代理已经够手忙脚乱了,同时跑好几个会是什么体验?

Agent-Manager 就是来解决这个问题的。它是一个基于 tmux 的终端用户界面工具,让多个AI编程代理——比如 Claude Code、Codex、OpenCode 和 Grok——在同一时间并排运行,各自待在自己的 tmux 会话里。所以就算你把管理器关了,它们也不会停。

打开网易新闻 查看精彩图片

不用再在满屏的终端标签页里翻来翻去找哪个代理跑完了、哪个卡住了。所有会话都以清单形式显示,带有实时状态,还按项目树分组,随时可以折叠或者调整顺序。

打开网易新闻 查看精彩图片

盯着一排代理干活,哪个卡了扫一眼就知道——这就是 Agent-Manager 想做的那点事。

最烦人的时刻大概是:你发现某个代理卡住,想给它发条指令,又得切进那个终端窗口。Agent-Manager 想了个办法:按一下空格,会在侧边栏底部弹出一个提示栏,光标指向哪一行,你的消息就发给谁。

如果光标停在某个正在运行的会话上,按回车,你打的内容就直接丢进那个会话的窗格。代理收到的是用户消息,整个过程你甚至不需要 attach 进去。发完提示栏清空、保持打开,方便你继续跟它对话。

如果光标是停在项目分组那一行,按回车则是直接在这个分组里新开一个代理,用分组设定的默认工作路径启动,你刚打的提示词也会一起嵌入。要换代理类型的话,按 Tab 键轮流切,Claude Code 和 OpenCode 这些都可以循环选,底部状态栏会显示当前选中哪个。

不想发了按 Esc 收起来就行,整个过程都在管理器界面内完成,不用频繁进进出出。

对于那些挂掉的回话,工具给了个一键复活的操作:按一下 v,可以恢复到断点继续干活。按 Ctrl+R 会更直观,会打开一个全文件的 diff 界面,看这个代理到底改了什么。代码差异有语法高亮,你在某一行写个注释,这条注释会直接送回给代理所在的窗格,等于不用额外切过去当面说。

这个设计其实是把“代码审查”和“给代理下指令”这两步并成一步:看着改动记录直接告诉它哪里需要改,比自己打一串描述更准确。

目前 Agent-Manager 的状态检测原生支持 Claude Code、OpenCode、Codex 和 Grok Build 这四种 CLI 工具。但它并没有限定只能用这几种——任何命令行工具都能作为会话跑起来。

打开网易新闻 查看精彩图片

想加新的工具,只需在配置里加一个 [tools.] 字段,写好状态规则,工具就能在列表中显示实时运行状态。这种扩展方式让管理器从这几个编程代理的专用工具,变成了一种通用的会话管理框架。

安装有几种方式。最直接的是用 Homebrew:brew install yoanwai/tap/agent-manager,如果当前系统没装 tmux,它会一并装好。喜欢用 Go 的也能走 go install github.com/YoanWai/agent-manager@latest,需要 Go 1.26 以上版本,装完会在 $(go env GOPATH)/bin 下面。

不用包管理器的话可以直接从 GitHub Releases 下载二进制文件,macOS 和 Linux 的 amd64、arm64 版本都有。Windows 用户也不是完全没法用——在 WSL2 里照样跑,因为管理器本身就活在 tmux 上,先用 Homebrew 装或者直接拉 Linux 二进制就能启动。

输一条 agent-manager 就能进主界面。会话都跑在 am_* 这个命名空间下,管理器退出它们也不受影响。在某个会话里面按 Ctrl+Q 会 detach 回到管理器。想看版本号就带个 --version 参数。

还有几个小细节说明开发者想了挺多。一个是在新版发布提醒上:管理器每天检查一次 GitHub Releases,一旦有更新的版本就会在界面上方显示 ↑ vX.Y.Z available 的徽章,更新方式也跟安装路径对应,用 Homebrew 的跑 brew upgrade,用 Go 的直接 go install 同一命令覆盖。

另一个是会话通用性。管理器并不依赖特定的CLI工具才能跑,任何能在 tmux 里启动的命令行工具都可以作为会话启动。你可以在配置文件里为每种工具定义状态判断的规则,做得像是一种“会话管理中间层”。

快速创建的会话没有自定义名称时,会自动生成类似 claude-a1b2 的占位名。代理在接到第一个提示时会被引导去执行 agent-manager rename "",给自己起个简短又能描述当前大功能的名字。开发者特意强调是要描述“宽泛的功能方向”而不是单个子任务,这个命名逻辑确保了会话树的可读性不会因为任务粒度过细而混乱。