Typing `exit` (or Ctrl-D) left a dead "process exited" pane behind: the view marked itself exited, but nothing ever closed the pane or tab. The reader thread now records whether the pane ended with a *genuine* child exit (`DaemonMsg::Exited`) as opposed to a daemon disconnect, and the view surfaces that as a `ChildExited` gpui event. The app subscribes at the single place all panes are built and closes the emitting leaf: collapsing its split, or closing the tab when it was the only pane (the last tab falls back to the home page). The daemon pane is killed so the session drops it; panes that died while detached clean themselves up on the next attach, when the daemon replays their exit. A disconnect deliberately keeps the dead pane visible -- auto-closing would silently discard (and kill) sessions that may still be alive daemon-side.
tty7
A blazing-fast terminal in pure Rust — GPU-rendered, and built around the prompt.
GPU rendering on Zed's gpui · VT core from Alacritty
Install · Benchmarks · Shortcuts · Contributing
English · 简体中文
tty7 is a terminal that puts speed and the prompt first. Every frame renders on
the GPU, output drains faster than any terminal we've measured — an 11 MB cat
in 95 ms — and the prompt itself does real work: inline completion, syntax
highlighting, and flag-by-flag hints for the commands you type all day. Pure
Rust, native on macOS, Windows, and Linux, zero configuration to get there.
- ⚡ Fastest in its class — an 11 MB
catcompletes in 95 ms, versus 179–239 ms for Alacritty/Ghostty/Kitty; DOOM-fire renders at 888 fps against their 485–617. Same machine, same grid; the harness is in the repo (benchmarks). - ⌨️ A prompt that helps you type — inline completion, syntax highlighting,
history, and in-terminal search, right where you're working. Type
git commit --,kubectl, ornpmand every flag and subcommand shows up with its description — rich signatures for ~100 common commands, generated from Fig's spec corpus. - 🧠 Shell-aware, zero config — new tabs and splits open in the current working directory, and path completion always follows where you are. zsh, bash, fish, and PowerShell are wired up automatically.
- 🔌 Sessions that survive — shells run in a background daemon, so closing a window, quitting the app, or swapping in a new build never takes a shell down. Detach and reattach, no tmux.
Also included: tabs (drag to reorder, inline rename, number keys to switch) and resizable splits, a command palette, click-to-open links, desktop notifications, and focus-follows-mouse. Eight built-in themes from light to dark, with the native window chrome following the one you pick, plus CJK/IME input.
Native builds for macOS, Windows, and Linux — every release ships all three.
📊 Benchmarks
All four terminals measured back-to-back on the 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 IO — 11 MB cat (lower = better) |
95 ms | 239 ms | 179 ms | 185 ms |
| DOOM-fire 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 + the persistent daemon 11 MB.
tty7 reads the PTY at device speed and parses it in large batches off the render
path, and the hot paths are lock-free — so a big cat never waits on drawing.
(That's also what the background daemon buys you: it can run up to 16 MiB ahead
of the window before backpressure applies.)
Methodology (how each terminal is driven, grid fairness, known pitfalls) and
one-command reproduction live in scripts/bench/ —
run it yourself.
🚀 Install
Grab the build for your platform from Releases:
- macOS —
tty7-<version>-macos-arm64.dmg(Apple Silicon) or…-x86_64.dmg(Intel); open it and dragtty7.appinto Applications. - Windows —
…-windows-x86_64.zip; unzip and runtty7.exe. - Linux —
…-linux-x86_64.tar.gz; extract and run./tty7(needs the usual x11/wayland runtime libraries).
⌨️ Shortcuts
Keys are shown in macOS notation — on Windows and Linux, read ⌘ as Ctrl. Open Settings with ⌘ , to browse or remap them all. The essentials:
| ⌘ T · ⌘ W · ⌘ ⇧ T | new tab · close tab · reopen closed tab |
| ⌘ D · ⌘ ⇧ D | split right · split down |
| ⌘ ] · ⌘ [ | next pane · previous pane |
| ⌘ ⏎ | maximize / restore the pane |
| ⌘ P | command palette |
| ⌘ F | search the scrollback |
| ⌃ R | reverse-search shell history |
| ⌘ + · ⌘ − · ⌘ 0 | font size up · down · reset |
The full list — and any overrides — lives in Settings → Keybindings.
💭 Built with & inspired by
- gpui — Zed's GPU-accelerated UI framework
alacritty_terminal(Zed's fork) — VT emulator, grid, and PTY- gpui-component — UI widgets, via a pinned fork
- tmux — the inspiration for the persistent-daemon design
🤝 Contributing
Bug reports and PRs are welcome. Security issues go through SECURITY.md; notable changes land in the CHANGELOG.
📝 License
Apache License 2.0 · © 2026 l0ng-ai