Agent Manager
一个 tmux TUI,把所有 AI 编码代理集中到一个列表里统一查看状态、发送提示和审查代码变更。
README声明使用私有tmux服务器(agentmgr)、install.sh校验发布校验和,权限面看起来克制,但快照中没有任何Go源码可证实实际行为,故仅给基本分。install.sh有依赖安装确认提示(AGENT_MANAGER_INSTALL_DEPS可预设),用户确认部分有据但未见过交互代码,给1。数据流透明度较好:会话命名空间am_*、独立socket、可从外部tmux访问均有说明,给2。敏感数据处理无任何文档(代理会话含登录态与订阅凭证,但项目未声明如何隔离),给1。依赖安全方面CI运行govulncheck、gitleaks、shellcheck且第三方Action按SHA钉死,证据充分,给2(未见dependabot/renovate与依赖更新策略,不满分)。外部效应明确:可生成worktree、分支am/<name>、MCP工具互相派生代理,均有文档,给2。回滚手段薄弱:仅brew uninstall与版本钉住变量,无会话/配置回滚说明,给1。来源归属:发布者未经验证,README用品牌徽章与外部链接但无NOTICE或版权行,给1。
README内部自洽,按键表、安装说明、命名规范(am_*、agentmgr socket)互相一致,给2。依赖可用性覆盖好:tmux 3.1+、git、多包管理器、WSL2、版本钉住变量均有交代,给2。失败消息仅在安装脚本处提到'printing the exact command when you decline',运行时错误处理无源码可证,给1。
受众与场景非常清晰:多AI编码代理并行管理的开发者,支持的CLI逐一点名,给3。能力边界有明示('Not here yet'列出成本跟踪与鼠标导航,beta功能标注In beta),给2。触发精度:按键绑定时点精确到焦点/全屏/嵌套tmux三种上下文并可重映射,文档细致但属描述而非可验证规则,给2。环境契合充分:macOS/Linux/WSL2、嵌套tmux处理、OS主题跟随,给3。
信息架构优秀:README→docs/usage.md→docs/configuration.md→docs/install.md分层,含文档站点,给3。安装说明覆盖Homebrew、curl脚本、Arch、mise、go install、预编译、WSL2并含卸载/升级,给3。命名稳定:模块路径、am_*前缀、agentmgr服务器名一致,给2。示例与FAQ有键位表与使用示例但无FAQ章节,给2。已知限制明示(beta、未实现功能),给2。LICENSE全文为Apache-2.0且README/徽章一致,给3。版本与变更日志:有--version命令与release流程,但快照中无CHANGELOG文件,给1。维护责任:CONTRIBUTING.md、SECURITY.md私有漏洞报告、Discussions均有路径,给2。
输出可用性:diff评审支持语法高亮、逐行评论、编号评审轮次并跟踪'open/handled'状态,描述充分,给2(未经执行验证)。边际价值高:聚合状态/快速提示/worktree/diff评审于单一TUI,直接解决多代理切换痛点,给3。成本收益:薄层设计复用现有CLI与订阅,依赖仅tmux+git,成本合理,但RAM占用与代理自身成本未量化,给2。
主张可追溯:徽章数据由badges工作流生成并推送badges分支,install.sh行为逐条说明,docs链接明确,给2。跨源佐证弱:快照内只有README、LICENSE、go.mod与CI文件,无源码、测试文件或文档正文可交叉验证README的性能与功能主张,星标/Trendshift徽章不可核实,给1。事实与推断区分尚可:README将beta状态、未实现功能与成熟功能明确分层,给2。
- 本评审为静态审查,快照中不含任何Go源码或测试文件,README的全部功能与安全主张(私有tmux服务器、校验和验证、会话隔离)均未经代码核实,请勿视为已验证。
- 代理会话携带用户登录态、订阅与MCP服务器配置,项目未提供任何敏感数据隔离或数据流说明;在不可信仓库中运行代理前请自行评估。
- 安装脚本采用curl|sh模式,即便有校验和验证,也建议先下载审阅脚本再执行。
- 无CHANGELOG,升级引入行为变化的风险需自行通过release notes评估。
- MCP能力允许代理互相派生与发消息,形成代理链,请确认每层代理的权限边界。
- 发布者身份未经注册表验证,属于未知而非可疑,但企业环境引入前应完成独立的供应链审查。
这个 Agent 能做什么,适合哪些场景?
agent-manager 是用 Go 编写(基于 Bubble Tea)的终端界面工具,运行在 tmux 之上,用于同时管理多个 AI 编码代理 CLI。它为 Claude Code、Codex、OpenCode、Grok Build、Gemini CLI、Pi、Command Code 和 Hermes Agent 提供实时状态检测,每个工具在独立的持久 tmux 会话(am_* 命名空间、agentmgr 专用服务器)中运行。会话按项目树分组展示,可折叠和重排。核心功能包括:用空格键向任意会话直接发送提示、按 ctrl+r 查看代理修改的全文差异并对行添加注释批量发回审查意见、按 v 复活已结束的会话、按 f 将会话分叉为命名分支继续对话。代理之间可通过 MCP 工具互相派生任务、发消息并等待完成;会话还可以基于 git worktree(分支 am/<name>)隔离运行。
启动时创建一个私有 tmux 服务器(agentmgr),把用户已安装的代理 CLI 原样放入各自的 tmux 会话中,保留登录态、订阅、配置文件和 MCP 服务器。它周期性检测各会话状态(工作/等待/完成),在列表中以项目树展示。space 键将快捷提示直接写入选中会话的窗格,或在该组中派生新代理;ctrl+r 打开全文件、带语法高亮的差异视图,行注释按 c 标记、按 C 以一轮编号审查意见的形式发回代理窗格。T 键在选中代理下打开 shell 执行构建和 git 命令;alt+w 或会话表单可为新会话创建 git worktree(<repo>-worktrees/<name>,分支 am/<name>)。所有 MCP 能力会话启动时即携带代理互派工具。状态检测规则可通过配置文件中的 [tools.<name>] 块扩展到其他 CLI。
- 同时运行多个编码代理(如 Claude Code 和 Codex 并行改代码)的开发者,需要在一个界面里看到哪个完成、哪个卡住
- 需要审查代理产出的代码变更的维护者:用 ctrl+r 打开差异、逐行批注、一键把整套审查意见发回代理
- 让代理之间协作的团队:通过 MCP 让一个代理派生另一个、传消息并等待完成
- 想为不同任务使用隔离代码副本的开发者:会话可在独立 git worktree 和 am/<name> 分支上运行
- 在同一个终端工作流中还需跑构建、Git 命令的用户:按 T 在代理下打开 shell
- 误关或超时导致会话中断的用户:按 v 在原对话上复活会话,或按 R 在空上下文上重启
这个 Agent 有哪些优点和局限?
- 不封装、不代理你已有的 CLI:登录态、订阅、配置文件、MCP 服务器原样保留,行为与裸终端一致
- 结构化差异审查是差异化功能:全文件上下文、语法高亮、行级注释聚合成一轮编号审查发回代理
- 会话运行在独立 tmux 服务器(agentmgr)并跨管理器退出存活,不与你自己的 tmux 混用
- 一个工具可带起主流代理:Claude Code、Codex、OpenCode、Grok Build、Gemini CLI、Pi、Command Code、Hermes Agent 默认支持状态检测,其他 CLI 可通过 [tools.<name>] 配置接入
- 强依赖 tmux 3.1+ 和 git,运行边界限于 macOS、Linux 和 Windows WSL2,原生 Windows 不支持
- 尚未支持成本追踪和鼠标驱动的列表导航(README 明确列为 not here yet)
- 它是管理工具而非代理本身:没有已安装的代理 CLI 就没有可管理的对象
- →/← 的步骤式进出导航仍处于 beta,需要在 Settings 中确认是否启用
如何安装或部署这个 Agent?
macOS / Linux 用 Homebrew:brew install yoanwai/tap/agent-manager(会自动安装缺失的 tmux 和 git)。或用安装脚本:curl -fsSL https://raw.githubusercontent.com/YoanWai/agent-manager/main/install.sh | sh —— 下载最新版本、校验 checksums、安装到 ~/.local/bin,并检查 tmux 3.1+ 和 git。可通过 AGENT_MANAGER_INSTALL_DIR 指定目录、AGENT_MANAGER_VERSION 锁版本、AGENT_MANAGER_INSTALL_DEPS=1 自动装依赖。Windows 需在 WSL2 中运行。其他途径(Arch Linux、mise、go install、预编译二进制)见 docs/install.md。
如何使用这个 Agent?
运行 agent-manager 启动管理器。按 n 新建会话(指定名称、工具、目录、可选起始提示和分组);space 向选中会话发送快捷提示或派生新代理;enter 聚焦会话后按键直接传给代理;ctrl+r 打开差异审查(c 行注释、C 发送编号审查轮);x 杀掉会话释放内存,v 在原对话上复活,R 在空上下文上重启;T 打开 shell;? 查看当前屏幕按键表;s 打开设置(默认工具、主题、列表密度、桌面通知等)。会话在 am_* 命名空间的独立 tmux 服务器上运行,管理器退出后会话仍在;可用 tmux -L agentmgr ls 查看并 tmux -L agentmgr attach -t am_<id> 附加。keybindings 可在 config.toml 的 [keybindings.session] / [keybindings.list] 中自定义。