开发与工程 tmux-plugincoding-agent-monitoringratatuilocal-http-apiwebsocketcodexopencode

OpenSessions tmux 会话侧栏

在 tmux 中集中查看并切换编码代理会话及其实时状态。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

OpenSessions 是运行在现有 tmux 工作流中的 Rust 侧栏,用于管理不断增多的终端会话、编码代理和本地服务标签。它由 ratatui 侧栏客户端、Rust 状态服务器、共享运行时和 tmux 集成脚本组成,侧栏通过 WebSocket 连接服务器。服务器从 tmux 提供者和 Amp、Claude Code、Codex、OpenCode 的本地记录中汇总会话与代理状态,并显示分支、工作目录、线程名称和检测到的 localhost 端口。用户可在 tmux 内切换、排序、隐藏、恢复、新建或结束会话,并通过本地 HTTP API 向侧栏写入状态、进度和日志。它是本地工具:默认绑定 127.0.0.1,当前唯一受支持的终端复用器是 tmux。

运行 opensessions-server 后,运行时从 tmux 读取会话,并分别读取 ~/.local/share/amp/threads/*.json、~/.claude/projects/ 中的 JSONL 转录、~/.codex/sessions/ 或 $CODEX_HOME/sessions/ 中的 JSONL 转录,以及 ~/.local/share/opencode/opencode.db。它将结果组装为实时会话状态并经 WebSocket 提供给 opensessions-sidebar;Codex 会话通过 turn_context.cwd 解析,Amp 的未读状态可由 session.json 清除。侧栏展示代理状态和每线程的 done、error、interrupted 未读标记,检测端口后可打开 http://localhost:<port>。脚本或代理还可 POST 到 127.0.0.1:7391/set-status、/set-progress、/log、/clear-log 或 /notify,写入状态标签、进度、日志和通知。

  1. 使用 Claude Code、Codex 或 Amp 同时处理多个代码库的开发者,可在一个 tmux 侧栏中查看各会话状态并快速跳转。
  2. 在 tmux 窗口中启动多个本地开发服务器的工程师,可查看检测到的 localhost 端口并点击打开对应地址。
  3. 需要让 CI 脚本或部署脚本把“Deploying”、测试进度和结果写入终端侧栏的团队,可调用本地 HTTP API。
  4. 处理多个代理线程的个人开发者,可利用 done、error 和 interrupted 的每线程未读标记定位待处理工作。
  5. 希望保留 tmux 工作方式、但需要会话排序、隐藏、恢复和快速切换的用户,可使用其内置按键操作。

这个 Agent 有哪些优点和局限?

优点
  • 直接嵌入现有 tmux,而不是要求迁移到新的终端复用器。
  • 可聚合 Amp、Claude Code、Codex 和 OpenCode 的本地会话状态,并针对不同来源读取其实际记录格式。
  • 提供无需额外二进制客户端的本地 HTTP API,可写入状态、进度和日志。
  • 原生 Rust/rataiui 侧栏通过 WebSocket 接收状态,且声明为零运行时依赖。
局限
  • 当前仅 tmux 被声明为受支持的 mux;仓库中的旧 zellij 集成不稳定。
  • 需要本地 tmux、TPM,以及首次安装预构建包时的 curl 或 wget;不受支持的平台可能需要自行用 Cargo 构建。
  • 代理状态依赖本机特定目录与文件格式,例如 Claude Code 和 Codex 的 JSONL 转录、OpenCode SQLite 数据库。
  • 默认仅本地绑定 127.0.0.1;plugins、port 和 keybinding 虽可解析,但目前不是活跃的运行时扩展钩子。

如何安装或部署这个 Agent?

前提:已安装 tmux、TPM,以及用于首次下载预构建二进制的 curl 或 wget。将以下内容加入 ~/.tmux.conf:
set -g @plugin 'Ataraxy-Labs/opensessions'

随后执行:
tmux source-file ~/.tmux.conf
~/.tmux/plugins/tpm/bin/install_plugins

首次加载时插件会下载包含 opensessions-sidebar、opensessions-server 和 lazydiff 的发布包;按 prefix o,再按 s 打开侧栏。若平台不受支持或需本地开发:
cd ~/.tmux/plugins/opensessions
cargo build --release

如何使用这个 Agent?

在 tmux 中按 prefix o → s 聚焦侧栏,按 prefix o → t 切换侧栏显示;prefix o → 1 至 9 可快速切换会话。要从脚本设置状态,可执行:
curl -X POST http://127.0.0.1:7391/set-status -H 'content-type: application/json' -d '{"session":"my-app","text":"Deploying","tone":"warn"}'

要本地开发,可运行 cargo run -p opensessions-sidebar 启动侧栏,或 cargo run -p opensessions-server 启动服务器。

常见问题

它会替代 tmux 吗?
不会。它作为 tmux 内的侧栏运行;当前 tmux 是唯一受支持的 mux。
支持哪些编码代理?
README 列出 Amp、Claude Code、Codex 和 OpenCode 的实时状态监测。
状态数据会发送到远程服务吗?
文档描述其为本地工具,默认主机为 127.0.0.1;提供的 API 示例也使用本地地址。
能否让脚本显示自定义任务进度?
可以。向 /set-status、/set-progress 或 /log 发送 JSON 请求即可写入侧栏信息。

相关 Agents