From 070ebf7deb15def0545e16583bdeeb7751ff54dd Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sat, 1 Aug 2026 21:42:30 +0800 Subject: [PATCH] docs: restore concise README structure --- README.md | 111 +++++++++++++++--------------------------------- README.zh-CN.md | 92 +++++++++++++-------------------------- 2 files changed, 64 insertions(+), 139 deletions(-) diff --git a/README.md b/README.md index 30a7f1d6..da72ac90 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ tty7 -# tty7 +### tty7 -**A high-performance terminal with persistent sessions, remote workspaces, and coding-agent support.** +**A high-performance terminal workbench: persistent sessions, remote workspaces, coding agents.** Pure Rust · GPU rendering on Zed's gpui · VT core from Alacritty @@ -19,95 +19,52 @@ -tty7 is a desktop terminal for local and remote development. A background server owns -workspaces and panes, so closing a window does not end the shell or coding agent running -inside it. +## Why + +- **Performance** — ~2× the throughput of Alacritty, Ghostty, or Kitty ([benchmarks](#benchmarks)) +- **Sessions persist** — quit or reboot; your shells and supported agent sessions keep running, no tmux +- **Remote workspaces** — files, repos, tabs, panes, diffs, and worktrees run on the remote machine, not beside an SSH shell +- **Agent-aware** — recognizes Claude Code, Codex & co. in a pane: status, notifications, branch + diff, session resume +- **CLI + Skills** — gives coding agents an interface to create panes, run real TTY commands, inspect output, and work across connected machines ## Install -Download a native build from [**Releases**](https://github.com/l0ng-ai/tty7/releases). +Native builds for each platform on [**Releases**](https://github.com/l0ng-ai/tty7/releases): -| Platform | Download | Installation | +| | | | |---|---|---| -| **macOS** | `…-macos-arm64.dmg` · `…-x86_64.dmg` | Drag into Applications | -| **Windows** | `…-setup.exe` · portable `….zip` | Run the installer, or unzip | -| **Linux** | `…-x86_64.AppImage` | `chmod +x` and run; X11/Wayland libraries are bundled | +| **macOS** | `…-macos-arm64.dmg` · `…-x86_64.dmg` | drag into Applications | +| **Windows** | `…-setup.exe` · portable `….zip` | | +| **Linux** | `…-x86_64.AppImage` | `chmod +x` and run — X11/Wayland libraries bundled | -Each installer includes the `tty7` CLI and adds it to PATH. +## What's inside -## Performance +| | | +|---|---| +| **Input** | ghost suggestions from history · explained tab completion · syntax highlighting · multi-line editing · click places the caret · ⌃ R fuzzy history | +| **Window** | tabs & splits · ⌘ P palette · ⌘ F scrollback search · nine themes · IME | +| **Agent-aware** | per-pane detection (~17 CLIs): status dot · notifications · branch + diff · resume after reboot · tray icon when input is needed | +| **Remote workspaces** | remote files, repos, changes, diffs, worktrees, tabs, and panes · reconnect from any client and continue where you left off | +| **CLI + Skills** | bundled `tty7` CLI · [agent skill](skills/tty7/SKILL.md) · pane/workspace control · real PTY commands · output, process, port, and agent status | +| **SSH** | native russh stack: profiles with keychain secrets · SFTP panel · port forwarding · jump hosts · one-time, unprivileged `tty7-server` install | -On an Apple M1 Pro running macOS 26.3.1, using a 155×40 grid and five-run averages -(2026-07-04): +Terminal and keybinding reference: [docs/features.md](docs/features.md). The agent-facing CLI +interface is documented in [skills/tty7/SKILL.md](skills/tty7/SKILL.md). + +## Benchmarks + +Same machine, same day, same 155×40 grid — Apple M1 Pro, macOS 26.3.1, +five-run averages (2026-07-04): | | **tty7** | Alacritty | Ghostty | Kitty | |---|---:|---:|---:|---:| -| Plaintext I/O — 11 MB `cat` (lower is better) | **95 ms** | 239 ms | 179 ms | 185 ms | -| [DOOM-fire](https://github.com/const-void/DOOM-fire-zig) frame rate (higher is better) | **888 fps** | 485 fps | 552 fps | 617 fps | +| Plaintext I/O — 11 MB `cat` (lower = better) | **95 ms** | 239 ms | 179 ms | 185 ms | +| [DOOM-fire](https://github.com/const-void/DOOM-fire-zig) frame rate (higher = better) | **888 fps** | 485 fps | 552 fps | 617 fps | | Cold-launch memory | 116 MB¹ | 105 MB | 128 MB | 130 MB | -¹ GUI 105 MB + persistent server 11 MB. +¹ GUI 105 MB + the persistent server 11 MB. -Methodology and a one-command reproduction script: [`scripts/bench/`](scripts/bench/README.md). - -## Terminal features - -- Input: history suggestions, explained tab completion, syntax highlighting, fuzzy search, - multi-line editing, and mouse cursor placement. -- Window: tabs, splits, command palette, scrollback search, IME, nine themes, custom theme - editing, system-appearance sync, and a tmux keybinding preset. -- Agents: session fork, context commands, and a tray indicator for agents waiting on input. - -For details, see [Features](docs/features.md) · [中文](docs/features.zh-CN.md). - -## Persistent sessions - -The server keeps shells and panes alive when the application exits. They can be restored -after the machine restarts. This removes the need to run tmux solely to keep terminal work -alive. - -## Remote workspaces - -tty7 uses a native Rust SSH implementation (russh). It supports saved profiles with -credentials in the OS keychain, `~/.ssh/config` aliases, GUI authentication, SFTP, port -forwarding, and jump hosts. - -When you open a remote workspace, tty7 installs `tty7-server` on the host over the existing -SSH connection. The installation is one-time and does not require `sudo`. The server holds -the remote workspace and its panes; they continue running while the local app is closed or -the connection is unavailable. Reconnect from this or another client to continue using them. - -## Agent-aware - -tty7 detects supported coding agents in each pane, including Claude Code, Codex, Gemini CLI, -Aider, and OpenCode. It shows their status, sends notifications when an agent needs input, -and displays the pane's git branch and working-tree changes. Supported agent conversations can -be resumed after a restart. - -## CLI + Skills - -The `tty7` CLI exposes workspaces and panes to coding agents. The companion -[agent skill](skills/tty7/SKILL.md) teaches an agent this interface: what each command does, how -to address a workspace or pane, and when a task needs a real terminal instead of an ordinary -shell command. - -Together, they let an agent use tty7 as a shared terminal environment: create a pane for a task, -run a server or interactive program there, send more input later, read its output, inspect its -processes and ports, and work with the same local or connected remote workspaces that you see. - -```sh -tty7 ls # list workspaces and panes -tty7 pane split %42 --v # create a sibling pane; prints its id -tty7 send %83 'pnpm dev' --enter # start work in that pane -tty7 capture %83 --plain # read its output -tty7 procs %83 # inspect its processes and listening ports -tty7 run -- cargo test # run a one-off command in a real PTY -tty7 -m devbox ls # use the same interface on a connected remote -``` - -`--json` gives agents structured results when they need to make a decision from workspace, pane, -process, port, or agent status. The full interface is documented in -[`skills/tty7/SKILL.md`](skills/tty7/SKILL.md). +Methodology and one-command reproduction: [`scripts/bench/`](scripts/bench/README.md). --- diff --git a/README.zh-CN.md b/README.zh-CN.md index 721a4eec..c3d0e16e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -2,9 +2,9 @@ tty7 -# tty7 +### tty7 -**高性能终端:常驻会话、远程工作区和 coding agent 支持。** +**高性能终端工作台:常驻会话、远程工作区、coding agent。** 纯 Rust · GPU 渲染基于 Zed 的 gpui · VT 内核来自 Alacritty @@ -19,24 +19,42 @@ -tty7 是用于本地和远程开发的桌面终端。后台 server 持有工作区和 pane;关闭窗口不会结束 -其中运行的 shell 或 coding agent。 +## 为什么 + +- **性能** —— 吞吐约为 Alacritty、Ghostty、Kitty 的 2 倍([基准测试](#基准测试)) +- **会话常驻** —— 退出应用、重启机器后,shell 和已支持的 agent 会话照样运行;无需 tmux +- **远程工作区** —— 文件、仓库、标签页、pane、diff 和 worktree 都运行在远端机器上,而不只是一个 SSH shell +- **Agent-aware** —— 识别 pane 里的 Claude Code、Codex 等:状态、通知、分支 + diff、会话恢复 +- **CLI + Skills** —— 为 coding agent 提供操作接口:创建 pane、在真实 TTY 中运行命令、读取输出、跨已连接机器工作 ## 安装 -在 [**Releases**](https://github.com/l0ng-ai/tty7/releases) 下载对应平台的原生构建。 +三平台原生构建都在 [**Releases**](https://github.com/l0ng-ai/tty7/releases): -| 平台 | 下载 | 安装方式 | +| | | | |---|---|---| | **macOS** | `…-macos-arm64.dmg` · `…-x86_64.dmg` | 拖进「应用程序」 | -| **Windows** | `…-setup.exe` · 便携版 `….zip` | 运行安装程序,或解压使用 | -| **Linux** | `…-x86_64.AppImage` | `chmod +x` 后直接运行;X11/Wayland 依赖已打包 | +| **Windows** | `…-setup.exe` · 便携版 `….zip` | | +| **Linux** | `…-x86_64.AppImage` | `chmod +x` 直接运行,X11/Wayland 依赖已打包 | -每个安装包都包含 `tty7` CLI,并会将其加入 PATH。 +## 有什么 -## 性能 +| | | +|---|---| +| **输入** | 历史影子建议 · 带说明的 Tab 补全 · 语法高亮 · 多行编辑 · 点击定位光标 · ⌃ R 模糊历史搜索 | +| **窗口** | 标签页与分屏 · ⌘ P 命令面板 · ⌘ F 回滚搜索 · 9 套主题 · 输入法 | +| **Agent-aware** | 按 pane 识别约 17 个 CLI agent:状态点 · 通知 · 分支 + diff · 重启后续上会话 · 托盘图标提醒需要输入 | +| **远程工作区** | 远端文件、仓库、Changes、diff、worktree、标签页和 pane · 任意客户端重连后原地继续 | +| **CLI + Skills** | 安装包自带 `tty7` CLI · [agent skill](skills/tty7/SKILL.md) · pane/工作区控制 · 真实 PTY 命令 · 输出、进程、端口和 agent 状态 | +| **SSH** | 原生 russh 栈:profile 凭据进 keychain · SFTP 面板 · 端口转发 · 跳板机 · 一次无 sudo 安装 `tty7-server` | -Apple M1 Pro、macOS 26.3.1、155×40 网格、五次运行平均值(2026-07-04): +终端和快捷键参考:[docs/features.zh-CN.md](docs/features.zh-CN.md)。面向 agent 的 CLI 接口见 +[skills/tty7/SKILL.md](skills/tty7/SKILL.md)。 + +## 基准测试 + +同一台机器、同一天、统一 155×40 网格 —— Apple M1 Pro,macOS 26.3.1, +取五次运行的平均值(2026-07-04): | | **tty7** | Alacritty | Ghostty | Kitty | |---|---:|---:|---:|---:| @@ -46,57 +64,7 @@ Apple M1 Pro、macOS 26.3.1、155×40 网格、五次运行平均值(2026-07-0 ¹ GUI 105 MB + 常驻 server 11 MB。 -测试方法和一键复现脚本:[`scripts/bench/`](scripts/bench/README.md)。 - -## 终端功能 - -- 输入:历史影子建议、带说明的 Tab 补全、语法高亮、模糊搜索、多行编辑和鼠标定位光标。 -- 窗口:标签页、分屏、命令面板、回滚搜索、输入法、9 套主题、主题编辑、跟随系统外观和 tmux 快捷键预设。 -- Agent:会话 fork、上下文命令,以及 agent 等待输入时的托盘提醒。 - -详细说明见 [功能列表](docs/features.zh-CN.md) · [English](docs/features.md)。 - -## 常驻会话 - -应用退出后,server 仍会保持 shell 和 pane;机器重启后可恢复。这样即使不使用 tmux, -终端中的工作也不会因为关闭窗口而中断。 - -## 远程工作区 - -tty7 使用原生 Rust SSH 实现(russh),支持保存的 profile、OS keychain 中的凭据、 -`~/.ssh/config` alias、GUI 认证、SFTP、端口转发和跳板机。 - -打开远程工作区时,tty7 会通过现有 SSH 连接在主机上安装 `tty7-server`。这项安装只需一次, -不需要 `sudo`。远端 server 持有工作区及其 pane;本地应用关闭或连接暂时不可用时,它们仍会 -继续运行。之后可从当前或另一台客户端重新连接。 - -## Agent 感知 - -tty7 会按 pane 识别已支持的 coding agent,包括 Claude Code、Codex、Gemini CLI、Aider 和 -OpenCode。它会显示状态、在 agent 等待输入时发送通知,并显示该 pane 的 git 分支和工作区改动。 -已支持的 agent 对话可在重启后恢复。 - -## CLI + Skills - -`tty7` CLI 将工作区和 pane 暴露给 coding agent。配套的 [agent skill](skills/tty7/SKILL.md) 会把 -这套接口教给 agent:每个命令的作用、工作区和 pane 的寻址方式,以及什么任务需要真实终端而不是普通 -shell 命令。 - -两者结合后,agent 可以把 tty7 当成与用户共享的终端环境:为任务创建 pane,在其中运行服务器或交互式 -程序,之后继续发送输入、读取输出、检查进程和端口;本地和已连接远端的工作区都使用同一套操作。 - -```sh -tty7 ls # 列出工作区和 pane -tty7 pane split %42 --v # 新建同级 pane,并打印其 id -tty7 send %83 'pnpm dev' --enter # 在该 pane 中启动任务 -tty7 capture %83 --plain # 读取其输出 -tty7 procs %83 # 查看其进程和监听端口 -tty7 run -- cargo test # 在真实 PTY 中运行一次性命令 -tty7 -m devbox ls # 对已连接远端使用同一套接口 -``` - -`--json` 让 agent 可以根据工作区、pane、进程、端口或 agent 状态的结构化结果做决定。完整接口见 -[`skills/tty7/SKILL.md`](skills/tty7/SKILL.md)。 +测试方法与一键复现脚本:[`scripts/bench/`](scripts/bench/README.md)。 ---