tty7 ### tty7 **A GPU-rendered terminal in pure Rust.** GPU rendering on Zed's gpui · VT core from Alacritty
[![CI](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml/badge.svg)](https://github.com/l0ng-ai/tty7/actions/workflows/ci.yml) [![Version](https://img.shields.io/github/v/tag/l0ng-ai/tty7?label=version&color=ff8a5c)](https://github.com/l0ng-ai/tty7/releases) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE) [![Discord](https://img.shields.io/badge/Discord-join%20chat-5865F2?logo=discord&logoColor=white)](https://discord.gg/s3dethqz2V) [**Why tty7**](#why-tty7) · [**Install**](#install) · [**Features**](#features) · [**Benchmarks**](#benchmarks) · [**Keybindings**](#keybindings) English · [简体中文](README.zh-CN.md)
## Why tty7 - **Fast** — about 2× the throughput of Alacritty, Ghostty, or Kitty on the same hardware ([benchmarks](#benchmarks)) - **A modern prompt** — completion, syntax highlighting, and history search built in; no plugins to assemble - **Sessions that survive** — close the window or quit the app, your shells keep running; no tmux - **Zero config** — zsh, bash, fish, and PowerShell work out of the box Native builds for macOS, Windows, and Linux ship with every release. ## Install Download the build for your platform from [**Releases**](https://github.com/l0ng-ai/tty7/releases): - **macOS** — `tty7--macos-arm64.dmg` (Apple Silicon) or `…-x86_64.dmg` (Intel); open it and drag `tty7.app` into Applications. - **Windows** — `…-windows-x86_64-setup.exe` (installer: Start Menu shortcut + uninstall entry), or `…-windows-x86_64.zip` (portable: unzip and run `tty7.exe`). - **Linux** — `…-linux-x86_64.AppImage` (recommended: bundles the x11/wayland libraries, so it runs on Fedora / Arch / etc. with no extra packages — `chmod +x` and run), or `…-linux-x86_64.tar.gz` (bare binary; extract and run `./tty7`, needs the usual x11/wayland runtime libraries installed). ## Features ### At the prompt - **Ghost suggestions** — your history completes the whole line as you type; to accept - **Tab completion that explains** — every flag and subcommand with its description, for ~100 common commands - **Syntax highlighting** — as you type, nothing to install - **Fuzzy history search** — ⌃ R shows what you ran, where, and whether it failed - **History from day one** — your existing shell history just works, and carries across sessions - **Real line editing** — selection, word motion, undo ### In the window - **Tabs & splits** — always open in the current directory - **Command palette** ⌘ P · scrollback search ⌘ F - **⌘-click links** · desktop notifications - **Eight themes** · CJK / IME input ## 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](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 + the persistent daemon 11 MB. Where the speed comes from: - The PTY is read at device speed and parsed in large batches, off the render path - Hot paths are lock-free — a big `cat` never waits on drawing - The daemon buffers 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/`](scripts/bench/README.md) — run it yourself. ## Keybindings 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 | | ⌘ 1⌘ 9 · ⌃ ⇥ · ⌃ ⇧ ⇥ | jump to tab 1–9 · next tab · previous tab | | ⌘ D · ⌘ ⇧ D | split right · split down | | ⌘ ] · ⌘ [ | next pane · previous pane | | ⌘ ⌥ ←→↑↓ | focus the pane in that direction | | ⌘ ⏎ · ⌘ ⇧ ⏎ | toggle fullscreen · maximize / restore the pane | | ⌘ K | clear the screen and scrollback | | ⌘ P | command palette | | ⌘ F | search the scrollback | | ⌃ R | fuzzy-search shell history | | ⌘ + · ⌘ − · ⌘ 0 | font size up · down · reset | **Settings → Keybindings** lists every shortcut. Click one, press the new keys (Esc cancels, Backspace resets to default), and it takes effect immediately. Pane resize and swap have no default keys — bind them here or run them from the command palette. Prefer tmux muscle memory? Flip the **tmux** preset to remap pane/tab actions onto a prefix (default ⌃ B): ⌃ B C opens a tab, ⌃ B % splits, ⌃ B then an arrow moves focus. A bare prefix reaches the shell after a brief pause, and `prefix` + an unbound key is passed straight through to the terminal. ---
Built on [gpui](https://github.com/zed-industries/zed) and [`alacritty_terminal`](https://github.com/zed-industries/alacritty) · [Apache-2.0](LICENSE) · [Discord](https://discord.gg/s3dethqz2V) · [Changelog](CHANGELOG.md)