mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-21 16:02:20 +00:00
docs(readme): fix the fork column and restate the feature tables
The support matrix left Fork blank for Droid, Qwen, and Goose, but all three have a fork command in CLIAgent::fork_label and hooks in HookAgent::ALL, so the menu entry is reachable. Amp stays blank: it has a fork command but no hooks, so no session id ever arrives and can_fork never turns true — which the intro paragraph now states. Also restores "click places the caret" and IME to the input and window rows, folds the prose that had crept into the Agent-aware, CLI, and Git cells back into scannable fragments, and drops the Why lede's repetition of the three bullets directly beneath it.
This commit is contained in:
@@ -26,13 +26,16 @@
|
||||
|
||||
## Why
|
||||
|
||||
A background server owns your shells and panes — not the window. Everything
|
||||
below follows from that.
|
||||
|
||||
- **Performance** — ~2× the throughput of Alacritty, Ghostty, or Kitty ([benchmarks](#benchmarks))
|
||||
- **Persistent sessions** — quit or reboot; your shells and supported agent sessions keep running, no tmux
|
||||
- **Editor-grade input** — suggestions, completion, highlighting, history search
|
||||
- **Remote development** — files, repos, panes, and git data stay on the remote machine
|
||||
- **Native SSH** — profiles, SFTP, port forwarding, and jump hosts
|
||||
- **Agent-aware** — Claude Code, Codex & co.: status, notifications, git context
|
||||
- **CLI + Skills** — agents create panes, run commands, and inspect output
|
||||
- **Agent-aware** — Claude Code, Codex & co.: status, notifications, and git context for every repo at once
|
||||
- **Scriptable by agents** — one agent opens a pane for another, hands off a task, waits, and reads the result, with or without the GUI running
|
||||
- **Editor-grade input** — suggestions, completion, highlighting, history search, with no plugin to install
|
||||
- **Remote development** — files, repos, panes, and git data stay on the remote machine, over a native SSH stack
|
||||
- **Git beside the terminal** — source control, diffs, and worktrees without leaving the window
|
||||
|
||||
## Install
|
||||
|
||||
@@ -48,12 +51,55 @@ Native builds for macOS, Windows, and Linux on [**Releases**](https://github.com
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **Agent-aware** | per-pane detection (19 CLIs) · status dot · notifications · branch + diff · tray icon when input is needed · resume after reboot · tab sidebar grouped by repository |
|
||||
| **CLI + Skills** | bundled `tty7` CLI · [agent skill](skills/tty7/SKILL.md) · `run` streams a command and exits with its code · `split` · `send` · `wait --until free` · `capture` |
|
||||
| **Editor-grade 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 (19 CLIs): status dot · notifications · branch + diff · resume after reboot · tray icon when input is needed |
|
||||
| **Window** | tabs & splits · <kbd>⌘ P</kbd> palette · <kbd>⌘ F</kbd> scrollback search · <kbd>⌘ J</kbd> panel with process tree and listening ports · 13 themes, your own YAML, iTerm2 import · IME |
|
||||
| **Shell integration** | injected when a pane starts, nothing to install · prompt marks · working directory · exit codes · command-finished notifications · zsh, bash, fish, PowerShell, WSL, remote panes |
|
||||
| **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 |
|
||||
| **Git** | panel follows the focused pane · stage, commit, amend, branch, push, stash · side-by-side or unified diffs · commit graph with cherry-pick, revert, and reset · a new worktree opens its own tab |
|
||||
|
||||
## Supported agents
|
||||
|
||||
**Detection** is free: brand avatar, branch + diff, tab title.
|
||||
**Status** takes one click under Settings → Agents to install that agent's hook,
|
||||
and brings the status dot, notifications, the tray icon, `tty7 wait`, and resume
|
||||
after a reboot. **Fork** needs both — the agent's own fork command, and the hook
|
||||
that tells tty7 which session to fork.
|
||||
|
||||
<details>
|
||||
<summary>The full support matrix, all nineteen</summary>
|
||||
|
||||
| Agent | Detected | Status · resume | Fork |
|
||||
|---|:-:|:-:|:-:|
|
||||
| **Claude Code** | ✓ | ✓ | ✓ |
|
||||
| **Codex** | ✓ | ✓ | ✓ |
|
||||
| **Grok** | ✓ | ✓ | ✓ |
|
||||
| **OpenCode** | ✓ | ✓ | ✓ |
|
||||
| **Oh My Pi** | ✓ | ✓ | ✓ |
|
||||
| **Droid** | ✓ | ✓ | ✓ |
|
||||
| **Qwen Code** | ✓ | ✓ | ✓ |
|
||||
| **Goose** | ✓ | ✓ | ✓ |
|
||||
| **Gemini** | ✓ | ✓ | |
|
||||
| **Copilot** | ✓ | ✓ | |
|
||||
| **Kimi Code** | ✓ | ✓ | |
|
||||
| **Pi** | ✓ | ✓ | |
|
||||
| Aider | ✓ | | |
|
||||
| Amp | ✓ | | |
|
||||
| Cursor | ✓ | | |
|
||||
| Auggie | ✓ | | |
|
||||
| Hermes | ✓ | | |
|
||||
| Vibe | ✓ | | |
|
||||
| Antigravity | ✓ | | |
|
||||
|
||||
</details>
|
||||
|
||||
None of them are wrapped or proxied — the agent you start is the agent you get,
|
||||
in a normal PTY, with its own interface. An agent launched through a wrapper
|
||||
script can be mapped to one by name with `agent_commands` in `config.json`.
|
||||
|
||||
## Documentation
|
||||
|
||||
Full documentation lives in [**`docs/`**](docs/) —
|
||||
[keyboard shortcuts](docs/reference/keyboard-shortcuts.mdx) ·
|
||||
|
||||
+70
-29
@@ -4,7 +4,7 @@
|
||||
|
||||
### tty7
|
||||
|
||||
**终端工作台:常驻会话、远程工作、agent。**
|
||||
**终端工作台:会话常驻、远程开发、原生支持 agent。**
|
||||
|
||||
<sub>纯 Rust · GPU 渲染基于 Zed 的 gpui · VT 内核来自 Alacritty</sub>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
[](https://github.com/l0ng-ai/tty7/releases)
|
||||
[](https://github.com/l0ng-ai/tty7/releases)
|
||||
[](LICENSE)
|
||||
[](https://discord.gg/s3dethqz2V)
|
||||
[](https://discord.gg/s3dethqz2V)
|
||||
|
||||
<sub>[English](README.md) · 简体中文</sub>
|
||||
|
||||
@@ -26,69 +26,110 @@
|
||||
|
||||
## 为什么
|
||||
|
||||
- **性能** —— 吞吐约为 Alacritty、Ghostty、Kitty 的 2 倍([基准测试](#基准测试))
|
||||
- **持久会话** —— 退出应用、重启机器后,shell 和已支持的 agent 会话照样运行;无需 tmux
|
||||
- **编辑器级输入** —— 建议、补全、语法高亮、历史搜索
|
||||
- **远程开发** —— 文件、仓库、pane 和 git 信息都留在远端机器上
|
||||
- **原生 SSH** —— profile、SFTP、端口转发和跳板机
|
||||
- **Agent-aware** —— Claude Code、Codex 等:状态、通知、git 上下文
|
||||
- **CLI + Skills** —— agent 创建 pane、运行命令、读取输出
|
||||
真正持有 shell 和 pane 的是后台常驻的 server,不是窗口。下面这些几乎都是这一个决定的结果。
|
||||
|
||||
- **性能**:吞吐是 Alacritty、Ghostty、Kitty 的两倍左右([基准测试](#基准测试))
|
||||
- **会话常驻**:退出应用或重启机器后,shell 和已支持的 agent 会话继续运行,不需要 tmux
|
||||
- **Agent 感知**:Claude Code、Codex 等 agent 的状态、通知和 git 上下文,多个仓库一屏看完
|
||||
- **可被 agent 驱动**:一个 agent 能给另一个开 pane、派活、等它跑完、读走结果,GUI 开不开都行
|
||||
- **编辑器级输入**:建议、补全、高亮、历史搜索,不用装任何插件
|
||||
- **远程开发**:文件、仓库、pane 和 git 信息都留在远端机器上,走自带的 SSH 栈
|
||||
- **Git 就在终端旁边**:源代码管理、diff、worktree,不用切出窗口
|
||||
|
||||
## 安装
|
||||
|
||||
三平台原生构建都在 [**Releases**](https://github.com/l0ng-ai/tty7/releases):
|
||||
macOS、Windows、Linux 的原生构建都在 [**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 的库已打包在内 |
|
||||
|
||||
## 有什么
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **编辑器级输入** | 历史影子建议 · 带说明的 Tab 补全 · 语法高亮 · 多行编辑 · 点击定位光标 · <kbd>⌃ R</kbd> 模糊历史搜索 |
|
||||
| **窗口** | 标签页与分屏 · <kbd>⌘ P</kbd> 命令面板 · <kbd>⌘ F</kbd> 回滚搜索 · 9 套主题 · 输入法 |
|
||||
| **Agent-aware** | 按 pane 识别 19 个 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` |
|
||||
| **Agent 感知** | 逐 pane 识别 19 个 CLI agent · 状态点 · 通知 · 分支 + diff · 需要输入时托盘图标提醒 · 重启后续上会话 · 侧边栏按仓库分组 |
|
||||
| **CLI + Skills** | 安装包自带 `tty7` CLI · [agent skill](skills/tty7/SKILL.md) · `run` 转发命令输出并原样返回退出码 · `split` · `send` · `wait --until free` · `capture` |
|
||||
| **编辑器级输入** | 从历史推出影子建议 · Tab 补全附带说明 · 语法高亮 · 多行编辑 · 点击定位光标 · <kbd>⌃ R</kbd> 模糊搜索历史 |
|
||||
| **窗口** | 标签页与分屏 · <kbd>⌘ P</kbd> 命令面板 · <kbd>⌘ F</kbd> 回滚搜索 · <kbd>⌘ J</kbd> 侧栏列出进程树和监听端口 · 13 套主题,也能写自己的 YAML 或导入 iTerm2 配色 · 输入法 |
|
||||
| **Shell 集成** | pane 启动时自动注入,不用你装什么 · 提示符边界 · 工作目录 · 退出码 · 命令跑完发通知 · 覆盖 zsh、bash、fish、PowerShell、WSL 和远程 pane |
|
||||
| **远程工作区** | 远端的文件、仓库、改动、diff、worktree、标签页和 pane · 从任意客户端重连,接着离开时的位置继续 |
|
||||
| **SSH** | 自带 russh 实现,不依赖外部 ssh:profile 凭据存入 keychain · SFTP 面板 · 端口转发 · 跳板机 · `tty7-server` 只需安装一次,无需 root |
|
||||
| **Git** | 源代码管理面板跟着焦点 pane 走 · 暂存、提交、amend、切分支、push、stash · 双栏或统一 diff · 提交图谱支持 cherry-pick、revert、reset · 新建 worktree 连同它的标签页 |
|
||||
|
||||
完整文档在 [**`docs/`**](docs/)(英文)——
|
||||
## 支持的 agent
|
||||
|
||||
**识别**无需配置:品牌头像、分支与 diff、标签页标题。
|
||||
**状态**需要在设置 → Agents 中为该 agent 安装 hook,一次点击,之后才有状态点、通知、托盘提醒、`tty7 wait` 和重启后恢复会话。
|
||||
**Fork** 两个条件都要:agent 自己提供 fork 命令,且 hook 已装——tty7 得知道 fork 的是哪个会话。
|
||||
|
||||
<details>
|
||||
<summary>19 个 agent 的完整支持矩阵</summary>
|
||||
|
||||
| Agent | 识别 | 状态 · 重启恢复 | Fork |
|
||||
|---|:-:|:-:|:-:|
|
||||
| **Claude Code** | ✓ | ✓ | ✓ |
|
||||
| **Codex** | ✓ | ✓ | ✓ |
|
||||
| **Grok** | ✓ | ✓ | ✓ |
|
||||
| **OpenCode** | ✓ | ✓ | ✓ |
|
||||
| **Oh My Pi** | ✓ | ✓ | ✓ |
|
||||
| **Droid** | ✓ | ✓ | ✓ |
|
||||
| **Qwen Code** | ✓ | ✓ | ✓ |
|
||||
| **Goose** | ✓ | ✓ | ✓ |
|
||||
| **Gemini** | ✓ | ✓ | |
|
||||
| **Copilot** | ✓ | ✓ | |
|
||||
| **Kimi Code** | ✓ | ✓ | |
|
||||
| **Pi** | ✓ | ✓ | |
|
||||
| Aider | ✓ | | |
|
||||
| Amp | ✓ | | |
|
||||
| Cursor | ✓ | | |
|
||||
| Auggie | ✓ | | |
|
||||
| Hermes | ✓ | | |
|
||||
| Vibe | ✓ | | |
|
||||
| Antigravity | ✓ | | |
|
||||
|
||||
</details>
|
||||
|
||||
tty7 不包装、不代理其中任何一个 —— 你启动的就是那个 agent 本身,运行在普通 PTY 中,界面仍然是它自己的。
|
||||
如果你通过 wrapper 脚本启动 agent,在 `config.json` 的 `agent_commands` 里把脚本名映射到对应 agent 即可。
|
||||
|
||||
## 文档
|
||||
|
||||
完整文档在 [**`docs/`**](docs/),英文:
|
||||
[快捷键](docs/reference/keyboard-shortcuts.mdx) ·
|
||||
[config.json](docs/reference/configuration.mdx) ·
|
||||
[CLI 参考](docs/cli/reference.mdx)。面向 agent 的 CLI 接口另见
|
||||
[skills/tty7/SKILL.md](skills/tty7/SKILL.md)。
|
||||
[CLI 参考](docs/cli/reference.mdx)。
|
||||
agent 如何调用这套 CLI,另见 [skills/tty7/SKILL.md](skills/tty7/SKILL.md)。
|
||||
|
||||
通过以下命令安装 skill:
|
||||
安装 skill:
|
||||
|
||||
```sh
|
||||
npx skills add l0ng-ai/tty7 # 安装
|
||||
npx skills update tty7 # 之后更新
|
||||
npx skills update tty7 # 后续更新
|
||||
```
|
||||
|
||||
## 基准测试
|
||||
|
||||
同一台机器、同一天、统一 155×40 网格 —— Apple M1 Pro,macOS 26.3.1,
|
||||
取五次运行的平均值(2026-07-04):
|
||||
同一台机器、同一天、同样的 155×40 网格:Apple M1 Pro,macOS 26.3.1,每项运行五次取平均(2026-07-04)。
|
||||
|
||||
| | **tty7** | Alacritty | Ghostty | Kitty |
|
||||
|---|---:|---:|---:|---:|
|
||||
| 纯文本 I/O —— 11 MB `cat` <sub>(越低越好)</sub> | **95 ms** | 239 ms | 179 ms | 185 ms |
|
||||
| 纯文本 I/O:`cat` 一个 11 MB 文件 <sub>(越低越好)</sub> | **95 ms** | 239 ms | 179 ms | 185 ms |
|
||||
| [DOOM-fire](https://github.com/const-void/DOOM-fire-zig) 帧率 <sub>(越高越好)</sub> | **888 fps** | 485 fps | 552 fps | 617 fps |
|
||||
| 冷启动内存 | 116 MB¹ | 105 MB | 128 MB | 130 MB |
|
||||
|
||||
<sub>¹ GUI 105 MB + 常驻 server 11 MB。</sub>
|
||||
<sub>¹ GUI 占 105 MB,常驻 server 占 11 MB。</sub>
|
||||
|
||||
测试方法与一键复现脚本:[`scripts/bench/`](scripts/bench/README.md)。
|
||||
测试方法与一条命令复现:[`scripts/bench/`](scripts/bench/README.md)。
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<sub>
|
||||
|
||||
基于 [gpui](https://github.com/zed-industries/zed) 与 [`alacritty_terminal`](https://github.com/zed-industries/alacritty) 构建 · [Apache-2.0](LICENSE) · [Discord](https://discord.gg/s3dethqz2V) · [更新日志](CHANGELOG.md)
|
||||
基于 [gpui](https://github.com/zed-industries/zed) 和 [`alacritty_terminal`](https://github.com/zed-industries/alacritty) 构建 · [Apache-2.0](LICENSE) · [Discord](https://discord.gg/s3dethqz2V) · [更新日志](CHANGELOG.md)
|
||||
|
||||
</sub>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user