如对翻译有改进建议,欢迎提交 PR。
代码大半改由 Agent 写之后,开发环境的职责就是把它们跑起来,并告诉你哪一个需要你。Termio 就是这样一个环境,而它是一个真实的终端——因为 Agent 本来就住在终端里。
它在第一次启动时自动接好每个 Agent 自带的 hook。会话会报告工作中、空闲,还是需要你——侧栏一个状态点,菜单栏托盘在有 Agent 被挡住时出声,手机上是同一个信号。Claude Code、Codex、OpenCode、Pi、Amp、Cursor、Copilot、Kimi、Antigravity、Crush、Grok,以及任何其他 CLI Agent。
更完整的论述:From IDE to ADE。
所有人劝你学 tmux 的理由,Termio 让你不用学。每个会话的 shell 都活在守护进程 termiod 里,退出 app 只是断开连接。合上笔记本,再打开 Termio,Agent 还在你离开的地方——同一个进程,同一份回滚历史。只有「关闭会话」(⌘W)会结束它。
任何你能 ssh 上去的 Linux VPS。Termio 读 ~/.ssh/config,从不改写它。设置 ▸ 设备 ▸ 设置会通过 SSH 把一个二进制文件复制到 ~/.local/bin,启动守护进程,并在那台机器上装好 Agent 的 hook。本地会话和远程会话走的是同一套宿主。会话活在机器上,不在连接里。断开链接,Agent 继续干活;重新附着,屏幕原样回来。
Termio 是 Agent 跑在里面的环境。会话活在机器上的 termiod 里,Mac app 和
iPhone 都只是附着上去。
| Termio | Ghostty | cmux | herdr | Superlogical | Otty | |
|---|---|---|---|---|---|---|
| Agent 监控 | ✓ 靠 hook | – | ✓ | ✓ | – | ✓ 标签徽标 |
| Agent 编排 API | ✓ termio session |
– | ✓ CLI 和 socket API | ✓ socket API | – | – |
| Agent 通知 | ✓ 菜单栏托盘 | – | ✓ | ✓ toast、系统通知或声音 | – | – |
| 多路复用 | ✓ 守护进程持有 PTY | – | 重启后恢复 | ✓ 服务端持有 PTY | ✓ 服务端持有 PTY | 重启后恢复 |
| 远程 Linux | ✓ 原生支持 | – | ✓ SSH 工作区 | ✓ 通过 SSH 附着 | ✓ 原生支持 | – |
| iOS | ✓ 直接附着到宿主,包括 VPS | – | ✓ 和 Mac 配对 | 社区插件 | 已预告 | – |
| 项目、工作区 | ✓ | – | 工作区分组 | worktree 命令 | – | – |
| 文件树 | ✓ | – | – | ✓ 插件 | – | – |
| 编辑器 | ✓ | – | – | – | – | – |
| Diff | ✓ | – | – | ✓ 插件 | – | – |
| 开源 | ✓ MIT | ✓ MIT | ✓ GPL | ✓ Apache-2.0 | 部分开源,尚未确定 | – |
下载 macOS 版 Termio——免费, 不用账号,需要 macOS 14 或更高版本。也可以走 Homebrew:
brew install --cask termio-sh/tap/termioiPhone 端:从 TestFlight 装伴侣应用的公测版, 再扫 Mac 应用 设置 ▸ 手机 里的二维码配对。
![]() |
一个 checkout 一个项目,它的终端和 Agent 都在下面。聊天排在项目上方——不属于任何项目的一次性 Agent 会话。 |
![]() |
一条分支对应一项并行任务,从侧栏创建。Worktree 嵌在它来自的项目下面。 |
![]() |
⌘D 向右分屏,⇧⌘D 向下分屏。一个 Agent、一个开发服务器、一个 shell,同一个窗口。 |
![]() |
会话排成一行,放在终端上方。点击标签页切换,拖动排序。在 设置 ▸ 外观 ▸ 标签页 里打开。看视频。 |
![]() |
工作中、空闲、完成,还是需要你——每一行都有标记。同一份列表就是 |
![]() |
在文件树里点一个文件。语法高亮,自动保存。提交仍然在终端里做。 |
![]() |
只读的 git 面板,显示当前的统一 diff。提交、推送和开 PR 仍然在终端里。 |
![]() |
项目级内容搜索,点一下就跳到编辑器里匹配的那一行。 |
![]() |
⌘⇧P。分屏、聚焦,一切你本来要翻菜单找的东西。 |
termio 命令行工具驱动正在运行的应用。跑在 Termio 里的 Agent 可以派生一个同伴,交给它一个任务,再把回复读回来:
termio . # 把当前目录作为项目打开
termio session list # 谁在工作、空闲,或在等你
termio session spawn "fix the flaky test" # 用一段提示启动新的 Agent 会话
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" # 发一条 macOS 通知--wait 一直等到这一轮结束,回来时带上最终状态和可以去读的记录行范围。--json 让任何 sessions 命令输出机器可读的结果。--agent 决定 spawn 启动哪个 Agent。--direction / --ratio 决定新面板落在哪、占多大。
termio session spawn "run the migration" --agent codex --wait会话控制会往每个 Agent 的技能目录(~/.claude/skills、~/.codex/skills)装一个 termio Agent 技能,并在每次启动时保持它最新。其他 Agent 也可以直接从这个仓库装同一个技能:
npx skills add termio-sh/termio --skill termioTermio iOS 把每个会话实时镜像过来——完整的 TUI。按键条把 esc、tab、ctrl 和方向键放在键盘上方,按住说话把语音直接转写进提示词。公测中:TestFlight。
![]() |
![]() |
![]() |
每个会话都活在 termiod 里。客户端只是附着上去。关掉一个客户端不会杀死 Agent。一套协议,变的只有管道。
Mac app ─ unix/ssh ─┐
TUI (soon) ─ unix/ssh ─┤
├──► termiod
iPhone ─ wss ──────┤ │
Android (soon) ─ wss ──────┘ │ PTY
▼
shell / agent
手机直接附着到机器上的 termiod,不经过 Mac。VPS 上的会话和你笔记本上的会话是同一种东西。
推导过程写在 termiod/ARCHITECTURE.md 里。
- TUI 客户端 — 从任意终端附着,像你附着 tmux 那样。
- 手机上的 TUI → GUI — 在实时镜像之上,把 Agent 会话可选地渲染成 GUI。
- Android — 和 iPhone 一样的伴侣应用。
- Windows 支持 — 原生 Windows 应用。同样的想法,同样的 termiod 内核。
- Web 支持 — 从任意浏览器附着到你的会话,终端还能用链接分享。
- Issue 分诊 — GitHub、GitLab、Linear 的 issue 直接进应用,随手交给 Agent。
在 GitHub Issues 关注进展或参与讨论。
Termio 正在找长期维护者。 如果你喜欢用它,也想认领上面路线图里的某一块——Web 客户端、Windows,或者 iOS 伴侣应用——来 Discord 打个招呼,或者直接捡一个 issue。
- Discord — 和开发者以及其他用户交流
- 微信群 — 中文用户扫下面的二维码
- GitHub Issues — bug 和功能需求
微信二维码每几天失效一次。失效了就在 Discord 说一声,会换上新的。
MIT。














