终端与桌面工作流
terminal 由所属 daemon 运行。退出 TUI、关闭 SSH 窗口或让手机进入后台都不会自动终止进程;你可以稍后从任意已授权客户端重新附加。
创建第一个终端
anytty terminal create --name workspace --attach -- zsh
常用创建参数:
--endpoint选择拥有这个 terminal 的 endpoint。--cwd设置 daemon 机器上的初始工作目录。--env KEY=VALUE添加环境变量,可重复使用。--tag KEY=VALUE添加用于筛选的标签。--cols和--rows设置初始尺寸。--attach创建后立即进入 TUI。
Windows 可把命令换成 PowerShell 或 cmd.exe。-- 后的内容是目标机器实际执行的命令,不由本地 shell 代替解析。
生命周期
anytty terminal list
anytty terminal show workspace
anytty terminal attach workspace
anytty terminal rename workspace agent-main
anytty terminal restart agent-main
anytty terminal kill agent-main
anytty terminal remove agent-main
| 状态或操作 | 含义 |
|---|---|
created / running |
记录已创建,进程正在运行 |
exited |
进程已结束,记录和历史仍保留 |
kill |
停止进程,保留记录和历史 |
restart |
按 daemon 保存的进程规格启动新 generation |
remove |
删除已经退出的 terminal 记录 |
kill 与 remove 是两步操作,可以减少误删历史和记录。对仍在运行的终端不要把关闭 panel 当成停止命令。
名称、标签与筛选
名称方便人工输入,稳定 ID 适合脚本。标签适合区分项目、环境或任务类型:
anytty terminal tag agent-main project=anytty
anytty terminal tag agent-main environment=dev
anytty terminal list --tag project=anytty --state running
anytty terminal list --all-endpoints
脚本可以使用 --json,或在 terminal list 中通过 --format 输出稳定字段。不要解析为人阅读设计的默认表格。
TUI 工作台
直接运行 anytty 打开默认 endpoint 的 TUI。默认全局入口包括:
| 按键 | 入口 |
|---|---|
Ctrl+F |
终端选择器 |
Ctrl+P |
panel 操作 |
Ctrl+R |
调整尺寸 |
Ctrl+O |
浮动 panel |
Ctrl+T |
tab 操作 |
Ctrl+W |
workspace 操作 |
Ctrl+V |
copy/history 模式 |
Ctrl+G |
系统操作 |
进入某个模式后,底部状态栏会显示当前可用动作。默认情况下,在短时间窗口内连续按两次入口键,会退出 AnyTTY 模式并把对应控制键传给终端;自定义快捷键前请理解这一透传规则。
workspace、分屏与浮动 panel
workspace 保存工作台组织方式,tab 和 panel 组成可见布局。panel 可以显示本地或远程 endpoint 上的任意 terminal;浮动 panel 适合临时查看日志、帮助或另一个任务。
切换 panel 绑定不会移动或重启 terminal。关闭 tab、panel 或 workspace 前,TUI 对可能丢布局或终止进程的动作可以显示确认;是否确认由 tui.interaction.confirm_destructive 配置控制。

终端选择器与近期活动
终端选择器会聚合可用 endpoint 的终端,显示名称、状态和近期活动。它适合找到刚有输出、已经停止更新或已退出的任务。通过 terminal list --all-endpoints 可以在 CLI 中获得相同维度的聚合列表。
Live 与历史
Live 显示 daemon 当前屏幕。进入 copy/history 后,当前视口被冻结,新输出仍继续写入历史;滚动回末尾时自动恢复 Live。历史按逻辑行分页,因此输出很多时不会一次加载全部内容。
CLI 可以捕获最新屏幕或历史:
anytty terminal capture agent-main --live
anytty terminal capture agent-main --lines 400 --cols 120
anytty history search agent-main "failed" --context 2
搜索支持普通文本、shell 风格 glob 和 Go RE2 正则。复制超大范围会在用户确认时读取和组装文本,因此仍应控制单次复制规模。
从脚本观察和控制
anytty terminal send agent-main --literal "status" --enter
anytty terminal send agent-main --key Ctrl-C
anytty terminal events agent-main --output ndjson
anytty terminal wait agent-main --state exited --timeout 10m
send 可以发送文本、命名键、十六进制字节或 stdin。自动化前确认目标 terminal 和 endpoint,避免把输入发到同名但不同机器的任务。
Claude Code、Codex 和 OpenCode 也可以作为 daemon 所有的持久进程运行。关于 skill、任务观察、人工接管和当前可见性边界,参阅 AI Agent 工作流。
容量与恢复
每个 terminal 的输出缓冲和 daemon 总驻留内存都有上限。默认策略在缓冲满时阻塞 PTY 读取以保留连续输出,也可以配置为丢弃旧 payload 并产生显式 gap。客户端发现 gap、尺寸改变或基线丢失时会请求全量屏幕重新同步。
历史默认按终端限制物理大小,并可配置保存天数与压缩方式。长期运行前请阅读配置与日常运维。