Termio

面向智能体编码的终端优先开发环境,让你一眼看出哪个 Agent 需要你。

Star 数
★ 785
最近更新
2 天前
License
MIT
主语言
Swift

30 秒速览

可在哪里用
通用 · 跨平台Codex · Claude Code
开始前需要
macOS 14+termiod 守护进程SSH(用于远程会话)Shell / 命令行网络访问本地文件系统
典型场景
同时开着 Codex、Claude Code 和多个终端跑并行任务,需要在某个 Agent 卡在权限确认时立刻被提醒的开发者。
主要局限
桌面客户端目前只提供 macOS 14+ 版本,TUI 客户端、Android、Windows 与 Web 支持都仍列在路线图中尚未交付。

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

Termio 是一个桌面应用(macOS 原生 Swift 实现),把真实终端作为运行命令行编码 Agent 的主界面。它在首次启动时为每个 Agent 挂上各自的 hooks,把会话状态统一上报为工作中、空闲或「需要你」,并通过侧边栏圆点、菜单栏托盘和手机端同步提醒。所有会话都跑在名为 termiod 的守护进程里,关闭应用只是断开连接,Agent 继续在后台执行,重新打开后屏幕和滚动缓冲原样恢复。它同时提供 termio CLI,让一个 Agent 可以派生同级会话、发送指令、读取屏幕并等待回合结束。远程模式下,Termio 通过 SSH 读取你的 ~/.ssh/config,把一个二进制部署到远端 ~/.local/bin,本地与 VPS 会话走同一套协议。

Termio 在每个项目的检出目录下组织会话:项目下挂终端与 Agent,工作树(git worktree)按分支嵌套在项目之下,聊天会话独立于项目存在。终端支持 ⌘D 右分屏、⇧⌘D 下分屏以及可选的水平标签页,侧边栏为每一行显示工作、空闲、完成或需要你的状态。内置文件树与带语法高亮、自动保存的编辑器,只读的 git 变更面板展示当前 unified diff,项目级内容搜索可跳转到匹配行,⌘⇧P 命令面板覆盖分屏与焦点切换等操作。termio CLI 与运行中的应用通信,提供 session list / spawn / run / send / read / watch / focus / close 以及 notify 子命令;--wait 会阻塞到该回合结束并返回最终状态与转录区间,--json 输出机器可读结果,--agent 指定 spawn 使用的 Agent。首次启动时 Termio 会把 termio agent skill 写入 ~/.claude/skills 与 ~/.codex/skills 并在每次启动时保持更新。远端场景下,iPhone 通过 wss 直接连到服务器上的 termiod,而不是经 Mac 中转;macOS 端另有 TestFlight 公测的 iPhone 伴侣应用,提供按键栏与长按语音转写。

  1. 同时开着 Codex、Claude Code 和多个终端跑并行任务,需要在某个 Agent 卡在权限确认时立刻被提醒的开发者。
  2. 希望用 git worktree 为每个并行任务开一条分支,并在侧边栏里直接查看各分支下会话状态的团队。
  3. 原先靠 tmux 保持长任务存活、但不想学习 tmux,又想关掉笔记本再回来时 Agent 仍在原地的用户。
  4. 在 Linux VPS 上跑长时间编码 Agent,需要从 Mac 或 iPhone 断线重连后恢复同一屏幕的人。
  5. 想让一个 Agent 派生同级会话、把任务交给它并读回输出,从而编排多 Agent 流程的工程师。
  6. 需要把会话状态同步到手机、随时用按键栏和语音输入回复 Agent 提示的移动场景用户。

如何安装或部署这个 Agent?

macOS 14 及以上可直接下载 DMG,或用 Homebrew Cask 安装:

brew install --cask termio-sh/tap/termio

iPhone 端需先在 TestFlight 加入公测,然后在 Mac 应用里打开 Settings ▸ Mobile 扫描二维码配对。远程 Linux 服务器无需手动安装:在 Settings ▸ Devices ▸ Set Up 中,Termio 通过 SSH 把一个二进制复制到远端 ~/.local/bin 并启动守护进程、安装各 Agent 的 hooks。若想让别的 Agent 也具备会话控制能力,可安装随仓库发布的 skill:

npx skills add termio-sh/termio --skill termio

如何使用这个 Agent?

首次打开应用后,把当前目录作为项目打开,Termio 会自动为已安装的 CLI Agent 接入 hooks:

termio .

在应用里用 ⌘D 向右分屏、⇧⌘D 向下分屏,然后从终端启动任意 CLI Agent。用命令行查询和控制会话:

termio session list
termio session spawn "fix the flaky test"
termio session run "pnpm test --watch"
termio session send ab12cd34 "1"
termio session read ab12cd34 --lines 40
termio session watch
termio session focus ab12cd34
termio session close ab12cd34
termio notify "the migration finished"

需要等待某个回合结束时加上 --wait,并可用 --agent 指定启动哪个 Agent:

termio session spawn "run the migration" --agent codex --wait

水平标签页在 Settings ▸ Appearance ▸ Tabs 中开启;注意 ⌘W 才是关闭会话,单纯退出应用只是断开连接。

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

优点
  • 会话由 termiod 守护进程持有,退出应用或断网都不会杀掉 Agent,重连后恢复同一进程与滚动缓冲,这是相对普通终端的实质差异。
  • 首次启动自动为 Claude Code、Codex、OpenCode、Amp、Cursor、Copilot 等多种 CLI Agent 安装 hooks,无需逐个配置即可统一上报工作/空闲/需要你状态。
  • 提供完整的 termio CLI,可脚本化地派生会话、发送输入、读取屏幕并等待回合结束,支持多 Agent 相互编排。
  • 远程模式复用 ~/.ssh/config 且不改写它,只需一次 Set Up 即可把守护进程与 hooks 部署到 VPS,手机可直连服务器而不经 Mac。
  • MIT 许可、免费下载、无需账号,桌面、CLI 与 iPhone 伴侣共同覆盖本地与远程场景。
局限
  • 桌面客户端目前只提供 macOS 14+ 版本,TUI 客户端、Android、Windows 与 Web 支持都仍列在路线图中尚未交付。
  • 核心能力依赖在目标机器上运行 termiod 守护进程,远程使用时需向服务器写入二进制并启动进程,对受限环境是额外负担。
  • 文件编辑器与 git 面板被有意限制为只读/轻量定位,提交、推送、开 PR 仍需回到终端,无法替代完整 IDE。
  • 项目自述正在寻找长期维护者,TUI、Android、Windows 等方向缺少交付时间表,长期维护存在不确定性。
  • Agent 状态上报依赖各 CLI Agent 的 hooks 机制,未被 Termio 适配的新 Agent 只能得到较弱的会话控制。

这个 Agent 与同类方案有什么区别?

README 明确把自己定位为 tmux alternative:与 tmux 一样把会话放在守护进程里,关掉客户端不结束进程;区别在于 Termio 是带 GUI 的桌面应用,会为编码 Agent 安装 hooks 并汇总「需要你」状态,还提供 termio CLI 与手机伴侣,而 tmux 是纯终端复用器,需要用户自行学习和编排。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Termio 当前 51 · 缺口较多 — ★ 785 2 天前 Swift Codex · Claude Code
Poracode 55 · 缺口较多 桌面应用免费 + 模型费 ★ 121 今天 TypeScript ChatGPT · Claude Code
tlbx 浏览器终端多路复用器 52 · 缺口较多 自托管服务免费 + 模型费 ★ 116 今天 C# Codex · Claude Code
pitwall 70 · 存在缺口 — ★ 18 今天 Go Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
51/ 100 五分制 2.6 / 5
信任安全 11/29
可靠稳定 8/14
适用触发 10/18
规范维护 10/18
有效结果 7/13
证据核验 5/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

证据显示 Termio 以真实 PTY 在用户真机上运行 agent,设计文档明确承认 agent 拥有完全访问权;曾实现的 Seatbelt 沙箱(默认拒绝 ~/.ssh、Keychain、.env,且 deny 规则最后发出)已被整体删除,当前版本没有任何强制隔离,故 least_privilege 仅 1。权限确认方面,手机端权限问答设计被搁置,且作者自述本机以 --dangerously-skip-permissions 运行,user_confirmation 仅 1。数据流透明:README 说明 iPhone 直连 termiod、SSH 只读 ~/.ssh/config,但缺少对会话数据、hook 载荷、遥测去向的系统说明,data_flow_transparency 1。敏感数据处理:设计文档讨论了 Keychain 与凭据挂载的取舍,但最终未落地,sensitive_data_handling 1。依赖安全:仅见 docs.yml 用 Node 内置模块、无第三方依赖声明或审计记录,dependency_security 1。外部影响:CLI 可 spawn/close 会话、发通知、写 ~/.claude/skills,属真实副作用,但缺少统一的确认或 dry-run 机制,external_effects 1。回滚:沙箱删除文档给出 git revert 恢复路径,会话可 detach 恢复,但无面向用户的操作回滚,rollback 1。来源归属:NOTICE 与文档明确标注 nono(Apache-2.0)基线数据来源,source_attribution 2。

可靠稳定8 / 14 · 2.9/5

README 的架构图、CLI 命令表与 termiod 测试中的 socket 名、legacy 回退、--wait 退出码 3 等相互吻合,self_consistency 2。依赖可用性:安装仅给出 macOS dmg 与 Homebrew cask,iOS 走 TestFlight,Windows/Android/TUI 均为 roadmap;Rust 客户端需 cargo build,依赖清单未在证据中出现,dependency_availability 1。失败信息:cli_compat.py 显示对未知 flag、非法 ratio、socket 缺失、静默超时等均有明确非零退出与诊断,failure_messages 2。

适用触发10 / 18 · 2.8/5

README 明确面向 CLI/TUI agent 用户,覆盖本地、SSH VPS、iPhone 场景,audience_and_scenarios 2。能力边界:文档明确列出未做项(实时 resize、跨 VM 控制平面、网络域名白名单、Windows/Web),capability_boundaries 2。触发精度:CLI 对 spawn/run/send 的区分、7 位十六进制视为文本、--no-enter 需目标等有测试约束,trigger_precision 2。环境适配:仅 Apple Silicon + macOS 14(沙箱曾需 macOS 26),Linux 仅作为远程被 attach 端,environment_fit 1。

规范维护10 / 18 · 2.8/5

README 分节清晰,docs/design 按日期与状态归档,information_architecture 2。安装说明:给出 dmg、brew cask、TestFlight 与 npx skills add,install_notes 2。命名稳定性:CLI 从 sessions 改为 session 并保留别名,socket 从 session-control.sock 改为 app.sock 并保留回退,说明命名曾变动,naming_stability 1。示例与 FAQ:README 有大量 CLI 示例与截图表格,examples_and_faq 2。已知限制:多份设计文档列出已知缺陷与搁置原因,known_limitations 2。许可证:LICENSE 为完整 MIT 文本,license 3。版本与变更日志:README 链接外部 changelog,仓库内无 CHANGELOG 文件,docs.yml 注释承认 changelog 曾落后十二个版本,versioning_changelog 1。维护责任:README 明言正在寻找长期维护者,发布者身份未经验证,maintenance_responsibility 1。

有效结果7 / 13 · 2.7/5

CLI 提供 --json、--wait、session read 等机器可读输出,output_usability 2。边际价值:相对 tmux 提供会话状态、hook 通知、iPhone 镜像,marginal_value 2。成本收益:需 macOS 专用应用、首次启动自动改写各 agent 的 hook 配置、沙箱能力被移除后安全收益归零,cost_benefit 1。

证据核验5 / 8 · 3.1/5

设计文档给出具体提交 SHA、文件行号与实测版本号(claude 2.1.220),claim_traceability 2。交叉印证:README、设计文档与 cli_compat.py 对 socket 路径、退出码、命令语义相互印证,cross_source_corroboration 2。事实与推断分离:文档明确区分已验证事实、开放问题与建议(如 launchPrefix 标注 NOT built),fact_inference_separation 2。

风险与缓解建议
  • 当前版本已删除全部沙箱代码,agent 以用户完整权限在真机运行;README 未提示这一安全姿态变化。
  • 首次启动会自动向各 agent 的 skills/hook 目录写入配置,且文档承认 release 与 dev 应用会互相覆盖 ~/.claude/settings.json。
  • 发布者身份未经验证,README 自述正在寻找长期维护者,长期更新与安全响应存在不确定性。
  • 仅支持 Apple Silicon macOS,Windows/Android/TUI 客户端仍在路线图中,跨平台承诺不可依赖。
  • 仓库内无 CHANGELOG,变更日志依赖外部站点,版本演进可追溯性弱。
证据充分度:低 评估于 2026年11月5日 审查版本 819658751635
查看完整评分方法 →

常见问题

关闭 Mac 应用后,正在跑的 Agent 会中断吗?
不会。每个会话的 shell 都运行在 termiod 守护进程里,退出应用只是断开客户端连接,Agent 与滚动缓冲都保留;只有执行 Close Session(⌘W)才会真正结束会话。
远程使用需要在 VPS 上预先装什么?
Termio 读取你已有的 ~/.ssh/config 且不改写它,在 Settings ▸ Devices ▸ Set Up 中通过 SSH 把一个二进制复制到远端 ~/.local/bin、启动守护进程并安装各 Agent 的 hooks,前提是你能 ssh 到那台 Linux 机器。
它自己调用大模型吗?需要 API Key 吗?
不需要。Termio 是终端环境,实际运行的是你已经安装并配置好的 CLI Agent(如 Claude Code、Codex),模型与密钥由这些 Agent 自己管理,Termio 只负责托管会话并汇总状态。
iPhone 端是连 Mac 还是连服务器?
iPhone 通过 wss 直接连接到运行 termiod 的那台机器,而不是经 Mac 中转;因此 VPS 上的会话与笔记本上的会话在手机看来是同一类对象。
除了 GUI,能不能纯命令行驱动?
可以。termio CLI 提供 session list、spawn、run、send、read、watch、focus、close 与 notify 等子命令,--json 输出机器可读结果,--wait 会阻塞到回合结束再返回状态与转录区间;独立的 TUI 客户端仍在路线图中。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents