Why PureWarp?
PureWarp is a GPU-accelerated terminal emulator for macOS, rebuilt from the Warp codebase. We stripped out AI assistants, cloud sync, team accounts, and telemetry — leaving only the fast Metal rendering engine that draws every glyph on the GPU.
Hardware-accelerated rendering
Unlike Electron-based terminals, PureWarp uses Metal shaders to render text directly on the GPU. Each character is drawn via compiled shader programs — no HTML, no DOM, no JavaScript layout engine. The result is buttery-smooth scrolling and sub-millisecond input latency.
Native PTY integration
Runs your shell directly through a real pseudo-terminal. zsh, bash, fish — whatever you use, PureWarp connects to it natively. Full support for ANSI / VT100 / xterm escape sequences via a custom UTF-8 state-machine parser.
Alternate screen & TUI support
Full alternate screen buffer support (CSI ?1047/1048/1049) means TUI programs like vim, htop, less, and tmux work exactly as expected — switch between normal and alternate screens seamlessly.
Scrollback that just works
Up to 10,000 lines of scrollback history. Mouse wheel to scroll, and new output automatically snaps you back to the bottom. Configurable via TOML.
Per-cell truecolor
Full 24-bit truecolor rendering on a per-cell basis with automatic contrast adjustment. Every character can have its own foreground and background color — exactly as your CLI tools intend.
Custom theming
Tweak fonts, colors, cursor style, and terminal size through a simple TOML config file at ~/.config/purewarp/config.toml. No GUI settings panels — edit your config, save, and restart to apply.
Single binary
Written in Rust. Compiles to a single, fast binary. Download the DMG, install via Cargo, or build from source. No runtime, no containers, no nonsense.
No bloat
No AI chat sidebar. No cloud sync. No team collaboration features. No sign-in wall. No telemetry phoning home. Just you, your shell, and a fast terminal.
Configuration
Edit ~/.config/purewarp/config.toml to customize PureWarp. All fields are optional — missing values fall back to sensible defaults.
[shell]
program = "/bin/zsh" # Default: $SHELL or /bin/bash
args = []
[terminal]
font_size = 14.0
font_family = "JetBrains Mono" # Falls back to SF Mono / Menlo
cursor_style = "block" # block | underline | beam
cols = 80
rows = 24
max_scrollback = 10000
[theme]
background = "#f6edda"
foreground = "#005661"
cursor = "#00c6e0"
palette = [
"#003b42", "#e34e1c", "#00b368", "#f49725",
"#0094f0", "#ff5792", "#00bdd6", "#8ca6a6",
"#004d57", "#ff4000", "#00d17a", "#ff8c00",
"#0fa3ff", "#ff6b9f", "#00cbe6", "#bbc3c4",
]
Keyboard Shortcuts
| Category | Keys |
|---|---|
| Input | All printable characters, Enter, Tab, Backspace, Delete, Escape |
| Navigation | Arrow keys, Home, End, PageUp, PageDown, Insert |
| Function keys | F1 – F12 |
| Control codes | Ctrl+A – Ctrl+Z, Ctrl+[, Ctrl+\, Ctrl+] |
| Scrollback | Mouse wheel |
| IME | macOS native Chinese / Japanese / Korean input |