docs: restore concise README structure

This commit is contained in:
l0ng-ai
2026-08-01 21:42:30 +08:00
parent 2a7e3a92f7
commit 070ebf7deb
2 changed files with 64 additions and 139 deletions
+34 -77
View File
@@ -2,9 +2,9 @@
<img src="assets/app-icon.svg" alt="tty7" width="88" height="88" />
# 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.**
<sub>Pure Rust · GPU rendering on Zed's gpui · VT core from Alacritty</sub>
@@ -19,95 +19,52 @@
</div>
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 · <kbd>⌃ R</kbd> fuzzy history |
| **Window** | tabs & splits · <kbd>⌘ P</kbd> palette · <kbd>⌘ F</kbd> 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` <sub>(lower is better)</sub> | **95 ms** | 239 ms | 179 ms | 185 ms |
| [DOOM-fire](https://github.com/const-void/DOOM-fire-zig) frame rate <sub>(higher is better)</sub> | **888 fps** | 485 fps | 552 fps | 617 fps |
| Plaintext I/O — 11 MB `cat` <sub>(lower = better)</sub> | **95 ms** | 239 ms | 179 ms | 185 ms |
| [DOOM-fire](https://github.com/const-void/DOOM-fire-zig) frame rate <sub>(higher = better)</sub> | **888 fps** | 485 fps | 552 fps | 617 fps |
| Cold-launch memory | 116 MB¹ | 105 MB | 128 MB | 130 MB |
<sub>¹ GUI 105 MB + persistent server 11 MB.</sub>
<sub>¹ GUI 105 MB + the persistent server 11 MB.</sub>
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).
---
+30 -62
View File
@@ -2,9 +2,9 @@
<img src="assets/app-icon.svg" alt="tty7" width="88" height="88" />
# tty7
### tty7
**高性能终端:常驻会话、远程工作区coding agent 支持**
**高性能终端工作台:常驻会话、远程工作区coding agent。**
<sub>纯 Rust · GPU 渲染基于 Zed 的 gpui · VT 内核来自 Alacritty</sub>
@@ -19,24 +19,42 @@
</div>
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 补全 · 语法高亮 · 多行编辑 · 点击定位光标 · <kbd>⌃ R</kbd> 模糊历史搜索 |
| **窗口** | 标签页与分屏 · <kbd>⌘ P</kbd> 命令面板 · <kbd>⌘ F</kbd> 回滚搜索 · 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 PromacOS 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
<sub>¹ GUI 105 MB + 常驻 server 11 MB。</sub>
测试方法一键复现脚本:[`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)。
---