tty7 终端工作台
一个纯 Rust 终端工作台:持久会话、远程开发与多智能体感知,GPU 渲染,无需 tmux。
CI 工作流显式声明 contents: read 最小权限;状态钩子需在设置中一键安装(选择性加入);SSH 凭据走系统钥匙串(keyring),CredentialRef 不含秘密;远程安装的服务器刻意不启用 gssapi 与 HTTP 下载路径,配置分割有明确理由。扣分点:远程 install 将服务器二进制推送到目标机器、Windows 更新器使用提权与注册表写入、来源为未验证发布者,且无安全文档或威胁模型说明;版本回滚路径未见明确机制(仅stable/nightly通道区分),故 rollback 仅 1 分。上游署名(gpui、alacritty_terminal、russh 补丁、issue 编号)非常完整,source_attribution 满分。
README、Cargo.toml 与 CI 相互一致(版本、目标矩阵、特性门控),但扣分点:依赖来自多个作者自有 fork(gpui、gpui-component、alacritty、russh),发布者身份未验证,单一维护者 fork 的长期可用性是实质供应链风险,故 dependency_availability 仅 1;本批文件未含实际错误处理代码,失败消息仅能从注释推断(测试挂起诊断、libtest 超时输出),给 1 分。CI 中承认测试套件约十分之一概率挂起且原因未查明,本身也是可靠性减分证据。
目标用户(开发者、远程工作、AI 编码代理场景)界定清晰;环境适配证据充分:三平台矩阵、musl 静态服务器、gssapi 特性按平台裁剪、Linux 托盘降级行为有说明。支持矩阵按 Detected / Status / Fork 三档划分,边界诚实。扣分点:触发精度(钩子何时何种条件触发)仅有设置项描述,无细节文档;无 FAQ,故多项不给满分。
文档架构清晰(docs/、skills/、README 双语);安装说明按平台详尽,Linux 源码构建依赖在 CI 与说明中一致;许可证文件完整(Apache-2.0,版权声明齐全),license 满分;命名稳定(tty7/tty7-core/tty7-server/tty7-cli 一致)。扣分点:CHANGELOG 仅是链接、内容未见;已知局限多埋在源码注释(notify-rust 弃用 API、GNOME 托盘缺失)而非面向用户文档;维护责任高度集中于单一未验证发布者,无治理或签署承诺。
CLI 面向代理设计(run 透传退出码、capture、wait --until free、split/send)输出可用性好;无 tmux 依赖的持久会话与 19 代理感知构成实质边际价值。扣分点:~2× 吞吐等性能声明仅来自自述基准,静态审查无法独立证实,故 marginal_value 不给满分;自身维护多个 fork(gpui、alacritty、russh)的长期成本与单人维护风险使成本收益打了折扣。
基准测试提供方法论与一键复现脚本链接、CI 中有打包后校验步骤(版本、签名、静态链接断言、checksums.txt),声明可追溯性尚可。扣分点:本审查范围内无第三方独立数据源可交叉印证性能与稳定性主张,cross_source_corroboration 仅 1;源码注释多处区分'已在本地验证'与'预期行为',事实与推断分离做得较好但未见测试代码本体,给 2。
- 核心依赖(gpui、gpui-component、alacritty_terminal、russh)均来自作者自有 fork 或补丁,发布者未经验证:应自行核对 pinned rev 与 Cargo.lock,并评估 fork 长期可用性。
- 远程工作区会将 tty7-server 推送到目标机器,Windows 更新器涉及提权与注册表修改:部署前确认远端安装的权限范围与卸载方式。
- 性能声明(~2× 吞吐、888 fps)仅为自述基准,使用前请用 scripts/bench/ 自行复现。
- CI 自述测试套件约十分之一概率挂起且根因未查明;静态审查未覆盖任何运行时行为,生产采用前应在受控环境实测。
- 未提供安全文档或数据流威胁模型;SSH 凭据管理建议在采用前独立审查 crates/tty7-core 的凭据处理代码。
这个 Agent 能做什么,适合哪些场景?
tty7(GitHub: l0ng-ai/tty7)是一个用纯 Rust 编写的终端工作台,采用 Zed 的 gpui 做 GPU 渲染,VT 核心来自 Alacritty 的 alacritty_terminal。其架构核心是一个后台常驻服务器:shell 和窗格归服务器所有而非窗口,因此退出应用甚至重启后,shell 和受支持的 agent 会话仍持续运行,无需 tmux。它对 AI 编码代理具备感知能力,可自动检测 19 种 CLI agent(如 Claude Code、Codex、Gemini、Copilot),显示状态点、通知、分支与 diff 信息,并支持通过托盘图标提示需要输入。它内置原生 russh SSH 栈、SFTP 面板、端口转发、跳板机,以及跟随焦点窗格的 Git 面板(暂存、提交、分支、worktree 等)。tty7 提供 macOS、Windows、Linux 原生安装包,Apache-2.0 许可证,README 自述性能约为 Alacritty、Ghostty 或 Kitty 的两倍吞吐量。
tty7 启动一个后台守护服务器来持有所有 PTY(shell 与 agent 进程),GUI 窗口只是连接到该服务器的客户端。每个窗格自动注入 shell 集成(zsh、bash、fish、PowerShell、WSL、远程窗格),无需安装插件即可获得提示符标记、工作目录、退出码和命令完成通知。输入侧提供历史幽灵建议、带解释的 Tab 补全、语法高亮、多行编辑、⌃R 模糊历史搜索。它按窗格检测 19 种 agent CLI,在 Settings → Agents 中一键安装 hook 后可启用状态点、通知、托盘图标、tty7 wait 以及重启后恢复会话;支持 fork agent 会话(如 Claude Code、Codex、Grok、OpenCode 等八个 agent 完整支持)。捆绑的 tty7 CLI 面向 agent 脚本化:run(流式执行命令并透传退出码)、split、send、wait --until free、capture。远程工作区通过原生 russh 栈把文件、仓库、diff、窗格留在远端机器,支持从任意客户端重连续接。Git 面板提供暂存、提交、amend、分支、push、stash、并排/unified diff、提交图(cherry-pick、revert、reset)与 worktree(新 worktree 自动开新标签)。窗口功能包括标签与分屏、⌘P 命令面板、⌘F 回滚搜索、⌘J 进程树与监听端口面板、13 种主题(支持自定义 YAML 与 iTerm2 导入)、IME。
- 同时管理多个仓库里 Claude Code / Codex 会话的开发者:在标签侧边栏按仓库分组查看各 agent 状态、分支与 diff,agent 需要输入时通过托盘图标得到提醒
- 需要会话在重启后依然存活的用户:shell 与受支持的 agent 会话由后台服务器持有,退出或重启后可恢复,无需学习和维护 tmux 配置
- 远程服务器上做开发的工程师:通过 SSH 工作区把文件、仓库和窗格留在远端,断线后从任意客户端重连并继续原状态
- 想让 agent 之间互相协作的自动化场景:一个 agent 通过 tty7 CLI 为另一个开窗格、发送任务(send)、等待空闲(wait --until free)并读取输出(capture),GUI 不运行也可用
- 重度终端用户:需要编辑器级输入体验(补全、高亮、模糊历史搜索)和内置 Git 面板(暂存、提交、worktree),不想离开终端窗口
- 在 macOS、Windows、Linux 之间切换的多平台用户:三个平台均有原生安装包,主题可从 iTerm2 导入
这个 Agent 有哪些优点和局限?
- 后台服务器架构使会话真正持久化:退出应用或重启后 shell 和受支持的 agent 会话继续运行,替代 tmux 且无需额外学习成本
- 性能自述占优:README 基准显示 11 MB cat 吞吐 95 ms(对比 Alacritty 239 ms、Ghostty 179 ms、Kitty 185 ms),DOOM-fire 帧率 888 fps,且提供 scripts/bench/ 的一键复现方法
- agent 感知深度集成且不包装代理:检测 19 种 agent CLI,不通过 wrapper 或 proxy 运行,agent 在普通 PTY 中保持原样,降低兼容风险
- 面向 agent 的 CLI 设计完整:run/split/send/wait --until free/capture 让 agent 可以脚本化协作,甚至在没有 GUI 时运行
- 内置原生 russh SSH 栈与 Git 面板,远程文件、diff、worktree 与终端工作流在同一窗口完成
- 完整的 agent 状态/恢复/fork 功能需为每个 agent 手动安装 hook(Settings → Agents),fork 还依赖 agent 自身的 fork 命令,目前仅 8 个 agent 获得完整支持
- 采用 Zed 的 gpui 图形栈和自研持久服务器,属于较新的技术组合,长期稳定性证据有限;fork 功能甚至尚未覆盖 Gemini、Copilot 等常见 agent
- 冷启动内存 116 MB(GUI 105 MB + 服务器 11 MB),高于 Alacritty 的 105 MB,对纯性能敏感的最小化用户并非最优
- 远程模式需要在远端机器安装 tty7-server(虽为一次性非特权安装),企业受限环境下可能受阻
- Linux 仅提供 x86_64 AppImage,无 ARM 包;仓库未提供包管理器(apt/brew/winget)安装渠道
如何安装或部署这个 Agent?
从 GitHub Releases(https://github.com/l0ng-ai/tty7/releases)下载对应平台的原生包:macOS 下载 …-macos-arm64.dmg 或 …-x86_64.dmg 并拖入 Applications;Windows 下载 …-setup.exe 或便携版 ….zip;Linux 下载 …-x86_64.AppImage,执行 chmod +x 后直接运行(X11/Wayland 库已捆绑)。如需给 agent 安装 tty7 技能,运行:npx skills add l0ng-ai/tty7(后续用 npx skills update tty7 更新)。高级配置通过 config. 完成,文档在 docs/ 目录(键盘快捷键、配置、CLI 参考)。
如何使用这个 Agent?
启动 tty7 后即可开标签和分屏窗格;shell 集成在窗格启动时自动注入,无需安装。要让 agent 感知生效,进入 Settings → Agents 对所用 agent 一键安装 hook,即可获得状态点、通知、托盘图标、重启后会话恢复和 tty7 wait 功能;fork 会话还需该 agent 自身的 fork 命令。agent 或脚本可使用捆绑的 tty7 CLI:tty7 run <命令>(流式输出并透传退出码)、tty7 split、tty7 send、tty7 wait --until free、tty7 capture。远程开发在 SSH 配置中设置档案(支持钥匙串密钥、跳板机、端口转发),首次连接会执行一次非特权 tty7-server 安装。配置文件为 config.,可用 agent_commands 把包装脚本启动的 agent 按名称映射到已知 agent。
这个 Agent 与同类方案有什么区别?
README 将其与 Alacritty、Ghostty、Kitty 进行性能基准对比,声称明文 I/O 吞吐约为三者的两倍(95 ms 对 239/179/185 ms)、DOOM-fire 帧率 888 fps 对 485/552/617 fps;tty7 的差异化在于持久会话(无需 tmux)、agent 感知和内置 SSH/Git 能力,而这三者均为纯终端模拟器。