首页 > 开源 > termio - 终端智能体开发台

termio - 终端智能体开发台

OSChina资讯 2026-09-07 18:38 3 阅读 查看原文

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,同一个窗口。

状态一眼看清

工作中、空闲、完成,还是需要你——每一行都有标记。同一份列表就是 termio sessions list

文件编辑器

在文件树里点一个文件。语法高亮,自动保存。提交仍然在终端里做。

更改

只读的 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 安装。