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

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.

Twenty built-ins,
light & dark.

Fastty ships with twenty tuned palettes — six of them light, its first — and reads custom JSON themes from~/.config/fastty/themes/. Switch live from the command palette or the Settings dropdown, and let Automatic Contrast Correction re-tune any color a program requests that clashes with the theme. Theme changes re-render every surface: scrollback, topbar, tabs, settings, context menu.

REGISTRY · 20 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
  • Catppuccin Frappégithub.com/catppuccin · bundled
    catppuccin-frappe
  • Catppuccin Macchiatogithub.com/catppuccin · bundled
    catppuccin-macchiato
  • Catppuccin LatteLIGHTgithub.com/catppuccin · bundled
    catppuccin-latte
  • Draculadraculatheme.com · bundled
    dracula
  • Nordnordtheme.com · bundled
    nord
  • Tokyo Nightgithub.com/folke/tokyonight.nvim · bundled
    tokyo-night
  • Tokyo Night Stormgithub.com/folke/tokyonight.nvim · bundled
    tokyo-night-storm
  • Gruvbox Darkgithub.com/morhetz/gruvbox · bundled
    gruvbox-dark
  • Gruvbox LightLIGHTgithub.com/morhetz/gruvbox · bundled
    gruvbox-light
  • Rosé Pinerosepinetheme.com · bundled
    rose-pine
  • Rosé Pine Moonrosepinetheme.com · bundled
    rose-pine-moon
  • Rosé Pine DawnLIGHTrosepinetheme.com · bundled
    rose-pine-dawn
  • One LightLIGHTAtom One Light · bundled
    one-light
  • Solarized LightLIGHTEthan Schoonover · bundled
    solarized-light
  • Kanagawa Wavegithub.com/rebelot/kanagawa.nvim · bundled
    kanagawa

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

Four primitives, one
quiet terminal.

Fastty is built for uncompromising speed, low memory footprint, and deep extensibility. From local IPC session multiplexing and embedded WebAssembly gateways to pixel-perfect GPUI rendering.

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
❯ls --color=always
...README.mdCargo.tomltarget/
─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ░ ▒ ▓ █
← → ↑ ↓ ⇄ ★ ◆ ⚡ ✓ ✗ · α β γ δ · 你好
❯
gpuimetal · vulkan · directx · wayland · x11

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
❯cargo build --release
Compiling fastty 0.23.1 (38 crates)
Finished `release` in 4.21s
❯
cpu0.7%
rss52 mb
wakeups0.0/s
energy12 mj

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

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

Local Daemon & Web Gateway.

Fastty runs a built-in Unix domain socket multiplexer (fasttyd.sock) and an embedded web server (fastty gateway). Attach from terminal (fastty attach), watch sessions in real time, spawn and drive sessions from scripts (fastty spawn, write, close), or open http://localhost:8765 to stream any terminal tab at 60/120 FPS via pure WebAssembly — scrollback included.

# Access active sessions from CLI or Web
fastty sessions --watch
fastty attach 1 --read-only

# Script the daemon: spawn, type, close
id=$(fastty spawn --cwd ~/api)
fastty write $id --enter 'bun test'
fastty close $id

# Native Web Gateway with zero dependencies
fastty gateway --port 8765
# → Open http://localhost:8765 in browser

MCP Agent Server.

Connect your AI agents to fastty over the Model Context Protocol — Claude Code, OpenCode, Codex, Cursor, Zed, Gemini CLI. Agents get seven tools over your real terminals: list, spawn, write, read the screen (scrollback included), resize, close, and a one-shot run_command that returns a command's actual rendered output. One command registers fastty into any supported agent's config.

# Register into Claude Code, OpenCode, Codex,
# Cursor, Zed, Gemini CLI or Claude Desktop
fastty mcp setup opencode
fastty mcp setup claude-code

# Then your agent drives real terminals:
fastty_run_command "cargo build 2>&1 | tail"
fastty_read_screen "watch the dev server"

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"

Insert anything, anywhere.

One anchored fuzzy picker (⌃⌘,) inserts paths to anything at the prompt: workspace files, SSH hosts from your config, local git branches, snippet bodies, even running docker containers. Files land quoted, commands pre-filled (ssh …, git checkout …), snippets expanded. It complements your shell — it never hijacks it.

❯ ssh ▌
┌─ Insert anything ────────────────────┐
│ 🖥  prod-api     deploy@10.0.0.1      │
│ 🖥  homelab      root@192.168.1.10    │
└───────────────────────────────────────┘

AI Assistant, Multimodal.

A built-in agent sidebar with streaming responses, collapsible reasoning, and a live context ring. Tools (read, search, run, edit) ask permission first and show real diff cards — and after you approve the same command family three times, fastty offers to auto-allow it for good. Bring your own key (Anthropic, OpenAI-compatible, Ollama), paste images and PDFs straight into the chat, or ask from any shell with fastty ask.

# One-shot question from any terminal
fastty ask "why is this build failing?"

# Approved 'cargo test' 3 times —
# auto-allow it from now on? [Auto-allow]

# Sidebar composer: ⌘V pastes images,
# the clip button attaches images + PDFs