Termio
面向智能体编码的终端优先开发环境,让你一眼看出哪个 Agent 需要你。
- Star 数
- ★ 785
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- Swift
- FA 评分
- 51/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 开始前需要
- 典型场景
- 同时开着 Codex、Claude Code 和多个终端跑并行任务,需要在某个 Agent 卡在权限确认时立刻被提醒的开发者。
- 主要局限
- 桌面客户端目前只提供 macOS 14+ 版本,TUI 客户端、Android、Windows 与 Web 支持都仍列在路线图中尚未交付。
- 源码审查
- 51/100 · 缺口较多
这个 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 伴侣应用,提供按键栏与长按语音转写。
- 同时开着 Codex、Claude Code 和多个终端跑并行任务,需要在某个 Agent 卡在权限确认时立刻被提醒的开发者。
- 希望用 git worktree 为每个并行任务开一条分支,并在侧边栏里直接查看各分支下会话状态的团队。
- 原先靠 tmux 保持长任务存活、但不想学习 tmux,又想关掉笔记本再回来时 Agent 仍在原地的用户。
- 在 Linux VPS 上跑长时间编码 Agent,需要从 Mac 或 iPhone 断线重连后恢复同一屏幕的人。
- 想让一个 Agent 派生同级会话、把任务交给它并读回输出,从而编排多 Agent 流程的工程师。
- 需要把会话状态同步到手机、随时用按键栏和语音输入回复 Agent 提示的移动场景用户。
如何安装或部署这个 Agent?
macOS 14 及以上可直接下载 DMG,或用 Homebrew Cask 安装:
brew install --cask termio-sh/tap/termioiPhone 端需先在 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?
查看各维度的扣分理由
证据显示 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。
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。
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。
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。
CLI 提供 --json、--wait、session read 等机器可读输出,output_usability 2。边际价值:相对 tmux 提供会话状态、hook 通知、iPhone 镜像,marginal_value 2。成本收益:需 macOS 专用应用、首次启动自动改写各 agent 的 hook 配置、沙箱能力被移除后安全收益归零,cost_benefit 1。
设计文档给出具体提交 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,变更日志依赖外部站点,版本演进可追溯性弱。