v1.0.0 · released apr 2026 · macos · windows · linux

spectra

A GPU-accelerated terminal emulator. Written in Rust on GPUI. Metal, DirectX 11, Vulkan.

// Fast enough that you stop noticing it.

spectra — zsh — 120×32 gpu: metal · 120 fps · 0.4 ms
0.4ms
Input latency
120fps
Render, sustained
7.2MB
Binary size
3×
Backends shipped
01 — download

Install in a line. Or grab a binary.

$ curl -fsSL https://get.spectra.sh | sh
File
Platform
Arch
Size
SHA256
spectra-1.0.0-macos-arm64.dmg
macOS 12+
arm64
18.4 MB
a1f4c…9b2e
spectra-1.0.0-macos-x86_64.dmg
macOS 12+
x86_64
19.1 MB
7c3d2…1a4f
spectra-1.0.0-windows-x86_64.msi
Windows 10+
x86_64
21.7 MB
f82ae…3c09
spectra-1.0.0-windows-arm64.msi
Windows 11
arm64
20.2 MB
d4b11…6e28
spectra-1.0.0-linux-x86_64.tar.gz
Linux (glibc 2.31+)
x86_64
16.8 MB
2e8ff…b7a3
spectra-1.0.0-linux-aarch64.tar.gz
Linux (glibc 2.31+)
aarch64
16.2 MB
90c41…5d02
spectra_1.0.0_amd64.deb
Debian / Ubuntu
x86_64
17.1 MB
6b29a…f143
spectra-1.0.0-1.x86_64.rpm
Fedora / RHEL
x86_64
17.0 MB
ae501…22b8

All binaries are signed. Verify with minisign using the published public key. Source at github.com/spectra-term/spectra.

02 — documentation

Everything you need. Nothing you don't.

Installation

The one-line installer picks up your OS and architecture, downloads the signed binary, verifies it, and drops spectra into ~/.local/bin (Unix) or %LOCALAPPDATA%\Spectra\bin (Windows).

# macOS / Linux
curl -fsSL https://get.spectra.sh | sh

# Windows (PowerShell)
irm https://get.spectra.sh/ps1 | iex

# From source
cargo install spectra-term

Package managers: brew install spectra, winget install spectra.spectra, pacman -S spectra, apt install spectra (from our APT repo).

Verify signatures

Every release is signed with minisign. Public key is committed to the repo and mirrored on the website.

minisign -Vm spectra-1.0.0-macos-arm64.dmg \
  -P RWSj...8kP

CI builds are reproducible — you can rebuild any release from source and diff the output byte-for-byte.

First run

Launching for the first time compiles shaders for your GPU and caches them at ~/.cache/spectra/shaders. This takes 200–600 ms and only happens once per driver version.

Spectra will try backends in this order: Metal on macOS, DirectX 11 on Windows, Vulkan on Linux. If the preferred backend is unavailable it falls back silently.

Config file

Spectra reads a single TOML file from ~/.config/spectra/config.toml. The file is hot-reloaded — save, and the open windows update.

[window]
decorations = "server"
opacity     = 0.96
padding     = { x = 12, y = 10 }

[font]
family  = "JetBrains Mono"
size    = 13.5
features = ["calt", "ss01"]

[cursor]
style    = "beam"
blink    = true
spectrum = true  # the signature prism cursor

Themes

Ships with Spectra Dark, Spectra Light, and community favorites (Gruvbox, Nord, Tokyo Night, Catppuccin, Dracula). Drop .toml theme files into ~/.config/spectra/themes/ and reference them by filename.

[theme]
name = "spectra-dark"
# or: "path:~/.config/spectra/themes/my.toml"

Fonts & ligatures

Full OpenType support via cosmic-text. Ligatures, stylistic sets, contextual alternates, variable fonts — all honored on the GPU. Emoji and CJK fall back automatically to system fonts; you never see a tofu box.

Subpixel antialiasing is on by default on high-DPI displays and disabled on low-DPI to keep glyphs crisp.

Keybindings

Defaults stay out of your shell's way. Rebind anything in [keys].

KeysAction
TNew tab
DSplit horizontally
DSplit vertically
KClear scrollback
FSearch buffer
,Open config
Ctrl PCommand palette

On Windows and Linux, maps to Ctrl.

GPU backends

Spectra renders glyphs as SDFs in a shared texture atlas, batches cells into a single draw call per frame, and uses damage tracking to skip unchanged regions. The same renderer compiles to all three backends from one shader source (WGSL, transpiled).

  • Metal — macOS 12+. Default on Apple silicon & Intel Macs.
  • DirectX 11 — Windows 10+. Feature level 10_0 minimum.
  • Vulkan — Linux, any driver with VK 1.1 + VK_KHR_swapchain.

Override with SPECTRA_BACKEND=vulkan|metal|dx11|cpu. The cpu fallback uses software rasterization and tops out around 60 fps — fine for SSH into a headless box.

Troubleshooting

Shaders fail to compile

Delete ~/.cache/spectra/shaders and relaunch. If it recurs, run spectra --diag and attach the output to a GitHub issue.

Tearing or stutter

Make sure [window] vsync = true (the default). If your compositor ignores vsync hints, set present_mode = "fifo_relaxed".

High CPU when idle

Spectra parks the render loop when nothing is animating. If you're seeing sustained CPU, check for a misbehaving shell prompt that repaints on every tick (looking at you, animated spinners).