A terminal that
runs at idle.

A GPU-accelerated terminal emulator written in Rust on GPUI and Alacritty Terminal. Pixel-perfect typography, seamless TUI rendering, command palette, and sub-1% idle CPU.

  • macOS
  • Linux
  • Windows
[01 / 04]

One curl.
You're in.

The installer scripts detect your OS and architecture, pull the matching release, and drop the binary where it belongs. No daemon. No background service. No telemetry phone-home.

$curl -fsSL https://raw.githubusercontent.com/diegoleteliers10/fasty/main/instalar.sh | bash

Apple Silicon & Intel · installs to /Applications · CLI symlink to /usr/local/bin/fastty

Manual builds and per-arch archives on thereleases page. First-run config lives at ~/.config/fastty/config.toml.

[02 / 04]

Five built-ins,
infinite drop-ins.

Fastty ships with five tuned palettes and reads custom JSON themes from ~/.config/fastty/themes/. Drop a file in, name it after the theme, switch from the command palette. Theme changes re-render every surface live: scrollback, topbar, tabs, settings, context menu.

REGISTRY · 5 bundled + custom~/.config/fastty/themes/
  • FasttyDEFAULTTomorrow Night palette · bundled
    default
  • Catppuccingithub.com/catppuccin · bundled
    catppuccin
  • One DarkAtom One Dark · bundled
    one-dark
  • Solarized DarkEthan Schoonover · bundled
    solarized-dark
  • High ContrastA11YWCAG AAA · bundled
    high-contrast

Custom themes are JSON files. All 18 ANSI fields are optional exceptbackground andforeground; missing colors fall back to the foreground.

[03 / 04]

Six primitives, one
quiet terminal.

Fastty is small on purpose. No plugin runtime, no daemon, no telemetry. The whole binary is one Rust crate plus the bits you can see insrc/. Every feature earned its keep.

01

Low-level Paint API & Pixel-Perfect Grid

Direct GPU hardware quad rendering with per-cell advance control. Box-drawing characters and block elements are synthesized at exact pixel boundaries with zero hairline gaps for seamless TUI banners and logos.

~/projects/fasttypaint api renderer
...README.mdCargo.tomltarget/
─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ░ ▒ ▓ █
← → ↑ ↓ ⇄ ★ ◆ ⚡ ✓ ✗ · α β γ δ · 你好
gpuimetal · vulkan · directx · wayland · x11
02

Sub-1% CPU at idle & Synchronized Output

The event loop rests when inactive. DEC mode 2026 synchronized output guarantees zero tearing or flicker during intensive CLI and TUI rendering.

~/projects/fasttyidle · 02:14:08
Compiling fastty 0.7.1 (38 crates)
Finished `release` in 4.21s
cpu0.7%
rss52 mb
wakeups0.0/s
energy12 mj
03

Split Panes, Tab Tear-Out & AI Agent Control

Split any tab horizontally or vertically (⌘D / ⌘⇧D). Drag tabs to tear out standalone windows. Launch targeted sessions from scripts and AI agents via CLI options.

multi-window tear-out · CLI automation · spawn: 0.8 ms

04

Widgets, Prompt Jumps & Token Detection

Live status bar with Git, Kubernetes, AWS, and custom command widgets. Jump between prompts (⌘⇧↑ / ⌘⇧↓), and click auto-detected URLs, file paths, and hex colors.

kubectl get pods -n prod
NAME READY STATUS RESTARTS AGE
api-7d4b9c-xjp2 1/1 Running 0 14m
api-7d4b9c-kw7r 1/1 Running 0 14m
worker-9f3a-mn1 2/2 Running 1 3h
main ↑2 ●314:32:08kube: prod click → cycleaws: dev
widgets.toml → poll interval · click action · align
[+]

Snippets, TUI-safe.

Type gst, press Tab, get git status. Bundled defaults cover git, docker, rust, filesystem, search, system. VSCode-style placeholders, live reload. TUI apps take precedence and Tab passes through to vim, fzf, htop.

# snippets.toml
[snippet]

"gst" = "git status"
"gcm" = "git commit -m \"${1:message}\""
"cb"  = "cargo build"
"dps" = "docker ps"
"ll"  = "ls -lah"
"ports" = "ss -tlnp"
[04 / 04]

The numbers are
boring on purpose.

Measurements on a MacBook Air M5 with Apple Silicon and 16 GB of Unified Memory, running macOS. Single tab, idle shell prompt, JetBrains Mono 14pt.

fastty % cargo bench --releasemacos · apple silicon m5 · 16gb
   Compiling fastty 0.7.1 (38 crates)
    Finished `release` profile [optimized] in 1.46s

   Running benches/parser_bench
   parser_plain_text   time:   [23.82 µs 23.92 µs 24.05 µs]
   parser_sgr_ansi     time:   [40.87 µs 40.95 µs 41.05 µs]
   parser_complex      time:   [23.41 µs 23.48 µs 23.59 µs]

Found 3 benchmarks; finish in 1.46s
profile: release · LTO fat · codegen-units=1 · strip · panic=unwindparser_bench.rs →
E2E BENCHMARKS · startup + throughputscripts/benchmark_e2e.py →
TerminalStartup
sh -c true
Plain text
100k lines
ANSI/SGR
50k lines
Fastty 0.7.11.05s± 0.28s1.99s± 0.08s1.94s± 0.13s
Ghostty1.77s± 0.30s2.41s± 0.28s1.99s± 0.25s
Konsole0.68s± 0.25s2.26s± 0.49s1.20s± 0.32s

Startup = sh -c true round-trip · Plain text = cat 100k lines · ANSI/SGR = cat 50k lines of styled output · Fastty compiled with cargo build --release.