文档目录

工作区与设备

工作区是侧栏的作用域,它属于某一台设备——本机,或者你用 SSH 能连上的机器。Termio 会在那台机器上装好会话宿主,会话是否附着都照跑不误。

Markdown

Termio 把 Agent 跑在你自己的机器上:本机、同一张桌子上的 Mac mini、你自己付钱的 VPS。没有 Termio 云可供开通,也没有账号要登录——只要 ssh 连得上,就是一台设备。

应用里的一切都归到同一套层级下:

设备          你能连上的机器,本机也算
  └ 工作区      侧栏里一个具名的作用域
      └ 项目       那台设备上的一份检出
          └ 会话      一个真实的终端

每一层都只属于上面的某一个。设备这个问题因此只在最顶上回答一次,而不必对每个项目、 每个窗格再问一遍。

工作区

工作区是侧栏里一个具名的作用域。它装着项目和零散的终端;切到它,侧栏列出的内容就跟着 换——归在它下面的项目、worktree 和会话,别的都不列。

⌘1⌘9 切换,也可以点侧栏工具栏里的切换器,或者走 文件 ▸ 工作区。数字是按位置 算的:它跟着列表顺序走,切换器会把数字画在名字旁边,你读它就行,不用记。

工作区会记住你离开时停在哪个会话上,连同它的窗格、编组和检查器标签页。回到一个作用域, 回来的是你自己的现场,而不是排序最靠前的那一条。

设置 ▸ 工作区列出每个工作区、它所在的设备,以及里面有多少会话。重命名和移除就在它 们作用的那个工作区旁边。移除会关掉它的会话;磁盘上的文件夹不动。

一个工作区,一台设备

工作区不能跨两台设备。一份检出本来就只存在于某一台机器上,跨设备的工作区无非是把互相 矛盾的叶子节点在视觉上摞在一起。既要动本机的仓库、又要动 VPS 上的仓库,那就是两个工 作区。

添加设备

本机也是一台设备,只不过它是你本来就有的那一台。在你添加第二台之前,这一层不会碍事—— 新建终端打开项目…就是普通的动词,因为它们只可能指一个地方。

Termio 读 ~/.ssh/config,绝不背着你改写它。你本来 ssh 得上的机器,Termio 就连得上:

  • 文件 ▸ 连接到… 列出配置里 Termio 还没用过的别名。连上去会在那边开一个终端。
  • 添加主机… 为还不在配置里的机器追加一段 Host。先填地址;名字就是你之后 ssh 时要敲的那个词。密钥是到哪儿都好使的凭据,包括跑在那台机器上的会话。密码存进你的钥 匙串,绝不写进 ssh 配置,只在 ssh 主动要的时候才读。

设置一台设备

打开设置 ▸ 设备,选中那台机器,按设置。Termio 会通过 SSH 把一个二进制 ——会话宿主 termiod——复制到 ~/.local/bin。不需要 root,不需要包管理器,也不用往 shell 配置里加东西。接着它会找那台机器上装了哪些 Agent CLI,给每一个写入 Termio 的 hooks、配置块和 Agent 技能,于是 VPS 上的 Agent 也能像本机的一样汇报工作中需要你完成

同一个按钮也是更新。它从任何状态出发都能用——什么都没装、装的是旧版本、装了新的但 运行中的 daemon 还没接管——而且新的那个要是答不上话,它会把旧的放回去。设备页面上会 写着它当前跑的版本。

如果更新会打断正在进行的工作,它会说出来并点名是哪个会话,旁边给一个仍然更新。你 自己闲着的终端从不挡更新;正在跑的命令或者干到一半的 Agent 才挡。

Termio 安装的内容里,daemon、hooks 和技能各有自己的重新安装。重装只替换 Termio 放上去的那份 hooks,你自己写的原样保留。

Termio 不做什么

Termio 从不开通机器,不跑控制面,也不中转你的流量。它调用系统的 ssh,唯一的权威是 你的 ~/.ssh/config 和你的钥匙串。你的代码留在你自己掌握的硬件上——把 shell 交给 一个 Agent、还要动私有仓库,这是唯一站得住的信任故事。

会话跑在设备上

每个会话都跑在拥有它的那台机器的 termiod 里——本机上的会话也一样,它们跑在本地的 daemon 中。应用只是一个负责附着和分离的查看器。

所以关掉窗口,一切照跑;所以远程会话并不绑在开启它的那条 SSH 连接上:链路断了只是把你 分离,不会杀掉 Agent。重新附着,屏幕就回来了。

只有关闭会话⌘W)才是有意结束一个会话。⌘Q 在还有东西在跑时会先问一句。

哪些能力跨得过去

设备设置好之后,读项目的那些面板,读的就是项目所在那台机器上的内容:

  • 文件——浏览检出、打开文件,并把它存回读它出来的那台机器。
  • 搜索——在那台机器上搜检出,跟着它的 cd 走,打开搜到的东西。
  • 更改、对比、历史——Git 面板读那台机器的仓库,并且在那边和在这边一样是只读的。
  • Agent——同一套清单、hooks 和技能,装到那台机器上。设置 ▸ Agent 带一个设备 作用域,正是因为一个 Agent 的 CLI 装在哪儿,是关于某一台机器的事实。
  • 粘贴图片给跑在那台机器上的 Agent,Termio 会把文件送过去。

侧栏还有一个其他运行中:那是机器自己声明它正在跑什么,包括不是 Termio 起的会话—— 你 ssh 上去开的,termiod 看得见,你也能在这儿打开它。

文档