termio是一个终端优先的 Agent 开发环境。

核心功能
项目管理:每个代码仓库一个项目,其下挂载终端与智能体;聊天作为不属于任何项目的临时智能体会话。
Git worktrees:从侧边栏按分支创建并行任务,worktree 嵌套在来源项目下。
分割面板:⌘D 横向、⇧⌘D 纵向分割,同一窗口内可同时放智能体、开发服务器与 shell。
状态总览:每个会话标记 working / idle / done / needs you,同一列表即 termio sessions list。
文件编辑器:点击文件树中的文件即可编辑,带语法高亮与自动保存,提交仍在终端完成。
变更查看:只读 git 面板显示当前 unified diff,提交、推送与 PR 仍在终端进行。
tmux 替代:所有会话 shell 常驻 termiod 守护进程,退出应用仅是脱离,重开应用后智能体保持同一进程与滚动缓冲。
远程 ADE:通过 SSH 将单个二进制复制到 ~/.local/bin 并启动守护进程,本地与远程会话走同一主机。
iPhone 镜像:iOS 端实时镜像每个会话的完整 TUI,并提供 esc/tab/ctrl/方向键键栏与按住说话转写。
CLI 驱动:termio sessions spawn "fix the flaky test" 新开智能体会话,termio sessions send 代为回复兄弟会话的权限提示,termio sessions watch 实时流式输出状态变化。
Inspector:文件、git diff、PR/Issue 详情与智能体 trace 在右侧双栏 inspector 中打开,与实时终端并列。
Agent Skill 安装:会话控制向各智能体的 skills 目录(~/.claude/skills、~/.codex/skills)安装并持续更新 termio 技能。
tmux 的替代品
所有人劝你学 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 sessions |
– | ✓ CLI 和 socket API | ✓ socket API | – | – |
| Agent 通知 | ✓ 菜单栏托盘 | – | ✓ | ✓ toast、系统通知或声音 | – | – |
| 多路复用 | ✓ 守护进程持有 PTY | – | 重启后恢复 | ✓ 服务端持有 PTY | ✓ 服务端持有 PTY | 重启后恢复 |
| 远程 Linux | ✓ 原生支持 | – | ✓ SSH 工作区 | ✓ 通过 SSH 附着 | ✓ 原生支持 | – |
| iOS | ✓ 直接附着到宿主,包括 VPS | – | ✓ 和 Mac 配对 | 社区插件 | 已预告 | – |
| 项目、工作区 | ✓ | – | 工作区分组 | worktree 命令 | – | – |
| 文件树 | ✓ | – | – | ✓ 插件 | – | – |
| 编辑器 | ✓ | – | – | – | – | – |
| Diff | ✓ | – | – | ✓ 插件 | – | – |
| 开源 | ✓ MIT | ✓ MIT | ✓ GPL | ✓ Apache-2.0 | 部分开源,尚未确定 | – |
你会得到什么
项目装着会话一个 checkout 一个项目,它的终端和 Agent 都在下面。聊天排在项目上方——不属于任何项目的一次性 Agent 会话。 |
Git worktree一条分支对应一项并行任务,从侧栏创建。Worktree 嵌在它来自的项目下面。 |
分屏面板⌘D 向右分屏,⇧⌘D 向下分屏。一个 Agent、一个开发服务器、一个 shell,同一个窗口。 |
状态一眼看清工作中、空闲、完成,还是需要你——每一行都有标记。同一份列表就是 |
文件编辑器在文件树里点一个文件。语法高亮,自动保存。提交仍然在终端里做。 |
更改只读的 git 面板,显示当前的统一 diff。提交、推送和开 PR 仍然在终端里。 |
搜索项目级内容搜索,点一下就跳到编辑器里匹配的那一行。 |
命令面板⌘⇧P。分屏、聚焦,一切你本来要翻菜单找的东西。 |
从终端驱动
termio 命令行工具驱动正在运行的应用。跑在 Termio 里的 Agent 可以派生一个同伴,交给它一个任务,再把回复读回来:
termio . # 把当前目录作为项目打开 termio sessions list # 谁在工作、空闲,或在等你 termio sessions spawn "fix the flaky test" # 用一段提示启动新的 Agent 会话 termio sessions run "pnpm test --watch" # 用一条命令启动普通终端会话 termio sessions send ab12cd34 "1" # 回答同伴的权限确认 termio sessions read ab12cd34 --lines 40 # 打印某个会话当前的屏幕 termio sessions watch # 实时流式输出状态变化 termio sessions focus ab12cd34 # 在应用里把某个会话切到前台 termio sessions close ab12cd34 # 关掉它 termio notify "the migration finished" # 发一条 macOS 通知
--wait 一直等到这一轮结束,回来时带上最终状态和可以去读的记录行范围。--json 让任何 sessions 命令输出机器可读的结果。--agent 决定 spawn 启动哪个 Agent。--direction / --ratio 决定新面板落在哪、占多大。
termio sessions spawn "run the migration" --agent codex --wait
会话控制会往每个 Agent 的技能目录(~/.claude/skills、~/.codex/skills)装一个 termio Agent 技能,并在每次启动时保持它最新。其他 Agent 也可以直接从这个仓库装同一个技能:
npx skills add termio-sh/termio --skill termio
架构
每个会话都活在 termiod 里。客户端只是附着上去。关掉一个客户端不会杀死 Agent。一套协议,变的只有管道。
┌─────────────────┐ unix ┌────────────┐ ┌─────────────────┐
│ Mac app │──────►│ │ │ │
├─────────────────┤ unix │ │ │ │
│ Windows (soon) │──────►│ │ │ │
├─────────────────┤ wss │ │ │ │
│ iPhone │──────►│ termiod │── PTY ─►│ shell / agent │
├─────────────────┤ unix │ (Mac) │ │ │
│ TUI (soon) │──────►│ │ │ │
├─────────────────┤ wss │ │ │ │
│ Android (soon) │──────►│ │ │ │
└─────────────────┘ └────────────┘ └─────────────────┘
┌─────────────────┐ ssh ┌────────────┐ ┌─────────────────┐
│ Mac app │──────►│ │ │ │
├─────────────────┤ ssh │ │ │ │
│ Windows (soon) │──────►│ │ │ │
├─────────────────┤ wss │ │ │ │
│ iPhone │──────►│ termiod │── PTY ─►│ shell / agent │
├─────────────────┤ ssh │ (Linux) │ │ │
│ TUI (soon) │──────►│ │ │ │
├─────────────────┤ wss │ │ │ │
│ Android (soon) │──────►│ │ │ │
└─────────────────┘ └────────────┘ └─────────────────┘
手机直接附着到机器上的 termiod,不经过 Mac。VPS 上的会话和你笔记本上的会话是同一种东西。
推导过程写在 termiod/ARCHITECTURE.md 里。
路线图
- TUI 客户端 — 从任意终端附着,像你附着 tmux 那样。
- 手机上的 TUI → GUI — 在实时镜像之上,把 Agent 会话可选地渲染成 GUI。
- Android — 和 iPhone 一样的伴侣应用。
- Windows 支持 — 原生 Windows 应用。同样的想法,同样的 termiod 内核。
- Web 支持 — 从任意浏览器附着到你的会话,终端还能用链接分享。
- Issue 分诊 — GitHub、GitLab、Linear 的 issue 直接进应用,随手交给 Agent。
运行效果与使用示例
macOS 14+ 可免费、无账号使用,安装命令为 brew install --cask termio-sh/tap/termio。快速开始可执行 termio . 将当前目录作为项目打开,或 termio sessions spawn "fix the flaky test" 按提示启动一个新智能体会话;远程设备通过「Settings ▸ Devices ▸ Set Up」经 SSH 配置。智能体技能可用 npx skills add termio-sh/termio --skill termio 安装。