跳到正文

认识 AnyTTY

AnyTTY 是运行在你自己设备上的持久终端工作台。命令和任务由目标机器上的 daemon 运行;TUI、CLI 或手机 App 可以随时连接、离开和重新接管,而不用迁移或重启进程。

适合什么场景

  • 让构建、部署、训练或编程 Agent 在关闭窗口后继续运行。
  • 从另一台电脑或手机查看任务状态并继续输入。
  • 在一个 TUI 中同时管理本机、工作站、服务器和内网机器上的终端。
  • 通过同一条已授权连接浏览、上传、下载和预览远程文件。
  • 保存可搜索的终端历史,断线或程序退出后仍能回到现场。

AnyTTY 不会把正在运行的进程迁移到客户端,也不会因为登录 Cloud 账号就自动获得某台机器的终端权限。Cloud 不是公共文件分享、网盘或开放代理;它只为已配对的客户端和 daemon 建立连接路径。

当前平台与客户端

组件 用途 当前状态
daemon 持有终端、历史、文件权限和访问授权 macOS、Linux、Windows Beta
TUI 键盘优先的多终端桌面工作台 macOS、Linux、Windows Beta
CLI 管理 daemon、终端、endpoint、文件和授权 macOS、Linux、Windows Beta
Android App 触控终端、设备与文件管理 GitHub Release 提供 Beta APK
iOS App 与 Android 共用移动端产品界面 源码可构建,公开商店包尚未提供
AnyTTY Cloud 托管发现、P2P 协商和 Relay 兜底 可选服务

当前是预发布版本。首个稳定版之前,命令参数、配置 schema、协议和数据格式仍可能变化。

daemon、client 与 terminal

daemon 是最终权威。 它运行在终端所属的机器上,负责启动进程、保存历史、限制文件根目录、验证客户端身份并执行 grant。客户端关闭、断网或切换设备,不会自动结束 daemon 中的任务。

client 是控制入口。 CLI、TUI 和移动 App 都是客户端。它们读取 daemon 提供的状态和画面,并把用户输入发回去。慢客户端只会让自己的画面暂时落后,不会让其他客户端或终端进程排队等待。

terminal 是持久任务。 一个 terminal 包含稳定 ID、可选名称、启动命令、工作目录、环境、标签、当前 generation、生命周期状态和历史。kill 停止进程但保留记录;remove 只用于删除已经退出的记录;restart 使用 daemon 保存的进程规格启动新 generation。

workspace、tab、panel 与浮动窗口

这些对象属于 TUI 的工作台布局,不是 terminal 本身:

  • workspace 组织一套工作布局。
  • tab 是 workspace 中的一组可切换布局。
  • panel 是显示某个 terminal 的平铺区域。
  • floating panel 是覆盖在布局上的浮动查看区域。

改变 panel 当前绑定的 terminal,不会重启任务,也不会改变其他 panel。反过来,关闭一个 panel 也不等于停止 terminal;是否停止进程要通过明确的终端生命周期操作决定。

AnyTTY TUI 中的多个平铺与浮动终端
同一个工作台可以组合本地与远程终端;布局和后台任务是两套独立状态。

endpoint 与 route

endpoint 标识一个 daemon。 它保存目标设备身份、展示名、启用状态、选择策略,以及到达该 daemon 的一个或多个 route。

route 是连接路径。 当前支持 Local、SSH、Direct 和 Cloud。一个 endpoint 可以同时存在多个 route;客户端根据本地策略选择路径。认证、身份或授权失败时不会通过换一条更弱的路径绕过检查。

Route 典型用途 Cloud 是否必需
Local 同一用户、同一机器上的本地 socket
SSH 已经有 OpenSSH 访问能力的远端机器
Direct 自行管理局域网或公网可达地址
Cloud NAT/内网环境中的托管发现、P2P 与 Relay

pairing claim 与 grant

pairing claim 是由目标 daemon 生成的短期、一次性配对材料,可以显示为二维码或可复制文本。默认 claim 有效期为 10 分钟;它必须像临时密码一样保护,兑换前不要出现在日志、截图、聊天或 issue 中。

成功兑换后,daemon 签发绑定到具体客户端身份的 grant。复制 endpoint 配置并不会复制授权。grant 可以限制到单个 terminal,也可以在 daemon 上查看和撤销。默认 grant 生命周期由创建命令显示,当前 CLI 默认值为 90 天。

Live 与 History

Live 是终端当前原生屏幕的最新投影;History 是 daemon 写入磁盘的逻辑行记录。二者使用独立读取位置:进入历史后,新输出仍会继续写入,但不会推走你正在阅读的旧内容;回到底部时再恢复最新 Live 画面。

实时传输和客户端渲染都有容量边界。客户端丢失增量基线、尺寸改变或连接恢复时,会请求全量画面重新同步,而不是猜测缺失内容。历史按页面加载和搜索,不需要一次把整个文件放入内存。

下一步

第一次使用请继续阅读快速开始;准备安装到多台机器时阅读安装、升级与卸载;要选择远程路径时阅读Endpoint 与连接方式