tmux agent switcher 怎么用 多 Agent 侧栏切换
tmux agent switcher 怎么用:TPM 装插件、Ctrl+n 侧栏,读 Claude/Codex/OpenCode 的 Working/Blocked/Idle。

tmux agent switcher 怎么用:装 TPM 插件后按 Ctrl+n 弹出全屏侧栏,左侧列跨 session 窗口,右侧预览 pane,并对跑 Claude Code、Codex、OpenCode 的 pane 标 Working / Blocked / Idle。检测完全被动,不包裹你的 agent 命令。
安装与环境要求
仓库:Ymirke/tmux-agent-switcher(Show HN 约 2026-08-12)。硬性依赖 tmux ≥ 3.3(需要 display-popup -B -e)、bash 与 ps。
TPM 安装(推荐):在 ~/.tmux.conf 加一行:
set -g @plugin 'Ymirke/tmux-agent-switcher'
然后 prefix + I 拉取。首次使用会下载对应平台预编译二进制;若无预编译且本机有 Rust,会回退源码构建。手动安装则 clone 到 ~/.tmux/plugins/tmux-agent-switcher 并 run-shell 入口脚本。
你在 pane 里照常跑 claude、codex、opencode,插件只读 tmux 与进程表,不 shim、不 LD_PRELOAD。这和 agent-hop 跨工具续会话 的「搬运会话文件」是不同问题:switcher 管「哪个 pane 在等输入」,不管上下文迁移。
tmux 3.3 以下没有 display-popup -B -e,插件会在加载时报版本 guard。macOS 自带 tmux 可能偏旧,Homebrew 装 tmux 后确认 tmux -V。Linux 服务器同理,升级 tmux 比降级插件现实。
打开侧栏与基本操作
默认 Ctrl+n 打开 sidebar(可在加载插件前设 @agent_switcher_key)。侧栏内:
- j/k 或 ↑/↓ 移动高亮,Enter 跳到该窗口
- Tab 在 Vim / Numbers / Search 模式间切换
- Search 模式模糊匹配 session 名、窗口名、进程、目录
- Shift+Tab 在左 dock、右 dock、palette 浮层间切换视图
Vim 模式下 bare j/k 移动;带数字如 10j 可相对跳转。Numbers 模式用 2 再 5 打开 session 2 的第 5 窗口。palette 视图把列表浮在屏幕中部,背后全屏预览选中 pane,适合宽屏单显示器。sidebar-right 则镜像到右侧 dock,按习惯二选一即可。若你已在 pane 里跑 Neovim,Ctrl+h/j/k/l 在插件开启 @agent_switcher_nav on 时会识别 Vim 焦点并透传,避免抢键。
Working、Blocked、Idle 三种状态
README 定义:Working 来自 agent 屏幕上的活动指示;Blocked 表示 prompt/选择等待你输入;Idle 为活动平息后的完成态(带 debounce,避免闪一下误判 done)。
状态来源是 tmux pane_current_command、OSC pane title、capture-pane 可见文本,加 ps 进程树归因。启发式且随 CLI UI 版本变化。Claude/Codex/OpenCode 改 TUI 文案、非英语 locale 或自定义主题,分类可能漂移。把它当「扫一眼哪个 agent 卡住」,不是 SLA 级监控。
窗口 tab 上也可追加汇总状态(@agent_switcher_tab_status on,默认开)。第一次打开侧栏后会起轻量后台 poller,无需单独 daemon 配置。
Idle 不等于「任务成功」:agent 可能因 error 退出而 Idle,切过去仍要看 exit code。Blocked 常见于 permission prompt 或 multiselect;若你改用 askance 人机协作 在浏览器答题,tmux 里可能长时间显示 Blocked 直到 CLI 收到输入。debounce 会延迟 Idle 出现,避免 spinner 闪一下就判 done。
配置与边界
常用选项(须在插件加载前 set):
set -g @agent_switcher_key 'C-n'
set -g @agent_switcher_nav 'on'
set -g @agent_switcher_view 'sidebar'
set -g @agent_switcher_tab_status 'on'
若 @agent_switcher_nav off,Ctrl+h/j/k/l 不再由插件占用。Blocked 态 pane 适合配合 askance 人机协作 在浏览器答完再回 tmux;switcher 只告诉你「该切过去了」,不负责把问题推到手机。
不支持 Grok Build 或 Pi 等未内置检测模式的 CLI,除非未来 README roadmap 暴露 pattern 配置。多 machine 远程 tmux 时,侧栏只反映当前 server 上的 session,不跨 SSH 聚合。
与 Claude Code CLI 基础 并行使用时:一个 session 开 Claude、另一个开 Codex,switcher 的价值是 Blocked 时快速跳转;不必为了插件改启动命令。
Show HN 帖作者强调「no daemon to babysit」:后台 poller 在首次 Ctrl+n 后自启,退出 tmux server 即停。若你长期开十几个 agent pane,tab 上的汇总 badge 比逐个 capture-pane 扫一眼省时间,但仍可能误判:Blocked 可能是 agent 在等网络而不是等你按键,切过去先看 pane 再决定。
侧栏里 r 可重命名窗口,Shift+J/K 调整 session 顺序,Alt+j/k 在 session 内移动 window,像编辑器里挪行。这些改序只影响当前 server 生命周期,写进 muscle memory 后比鼠标拖 tab 快。
多 session 时 Numbers 模式 2,5 跳窗比鼠标快;Search 模式适合只记得目录名、不记得 window index 的情况。Shift+J/K 调 session 顺序只在当前 tmux server 生命周期有效,重启后恢复默认排序。
手动安装路径适合不用 TPM 的机器:clone 后 run-shell 入口脚本,见仓库 examples/tmux.conf。cargo install --git ... 则本地编译,不依赖 GitHub Release。remote dev box 上并行三个 agent 时,侧栏仍比手工 list-panes 快,但 CI 容器里通常用不到。
README roadmap 仍缺 demo GIF 与 v0.1.0 tag 验证;装前可看 Issues 是否有你的 tmux/OS 组合反馈。OpenCode 与 Claude/Codex 同级检测,Grok Build 尚未列入,只跑 grok 时 badge 不会出现。
Typical 工作流:开三个 tmux window 分别跑 claude、codex、opencode,Ctrl+n 看谁 Blocked,切过去处理 permission 或 multiselect,再回写代码 window。与 agent-hop 跨工具续会话 联用时,hop 负责搬上下文,switcher 负责盯 pane 状态,两者不冲突。
@agent_switcher_input 可设 numbers 或 search 为默认,少按一次 Tab。palette 视图适合 ultrawide;笔记本单屏可固定 sidebar。插件 MIT 许可,fork 改 detection pattern 前先看 README 警告:改短语要跟着 agent CLI 版本维护。
安装后若 Ctrl+n 无反应,查 @agent_switcher_key 是否与其他插件冲突,或 tmux 版本是否 ≥3.3。prebuilt 下载失败时留 Rust toolchain 可触发本地 cargo build,但 Show HN 作者建议等 Release 二进制以省时间。
侧栏内 ? 可打开完整快捷键列表;Ctrl+t / Ctrl+s 可在任意模式新建 window/session。rename 流程用 r 进入编辑框,适合给 agent pane 标 ticket 号,方便 Numbers 模式跳转。
Blocked 态配合 askance 人机协作 时,侧栏仍显示 Blocked 直到 CLI 收到 Response,这是预期行为。Working 态长时间不变也可能是 agent 在跑长测试,切过去确认再决定是否 interrupt。首次安装后 reload tmux config:tmux source-file ~/.tmux.conf。TPM 更新插件用 prefix + U,与 switcher 二进制更新无关。Show HN 源帖约 2026-08-12,仓库仍 pre-1.0,生产环境用前先 star 并关注 Release 标签。