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].
| Keys | Action |
| ⌘ T | New tab |
| ⌘ D | Split horizontally |
| ⌘ ⇧ D | Split vertically |
| ⌘ K | Clear scrollback |
| ⌘ F | Search buffer |
| ⌘ , | Open config |
| Ctrl ⇧ P | Command 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).