Ep 2: Ghostty — The Fastest GPU Terminal
Metal/OpenGL rendering, 3x faster than iTerm2. The preferred terminal for Agents where speed is everything.
Rendering Principles
Ghostty uses GPU acceleration to render terminal content:
| Platform | Rendering Engine | Description |
|---|---|---|
| macOS | Metal | Apple's native GPU API, direct hardware access |
| Linux | OpenGL | Cross-platform GPU API |
Comparison with traditional CPU rendering:
CPU Rendering (iTerm2 / Terminal.app):
Terminal Output → CPU calculates character positions → CPU draws pixels → Display
GPU Rendering (Ghostty):
Terminal Output → GPU shaders draw directly → Display
Result: Ghostty is approximately 3x faster in heavy output scenarios (based on VibeHackers community benchmarks).
Installation
macOS:
# Option 1: Homebrew (Recommended)
brew install --cask ghostty
# Option 2: DMG download from official site
# https://ghostty.org/docs/install
Linux:
# Ubuntu/Debian (AppImage)
curl -LO https://github.com/ghostty-org/ghostty/releases/latest/download/Ghostty-x86_64.AppImage
chmod +x Ghostty-x86_64.AppImage
# Nix
nix run nixpkgs#ghostty
# Fedora/CentOS: Use RPM package
# https://github.com/ghostty-org/ghostty/releases
Operating System Support
| System | Support | Notes |
|---|---|---|
| macOS 12+ | Native | Metal rendering, best experience |
| Linux (x86_64) | Native | OpenGL rendering |
| Linux (ARM64) | Supported | Raspberry Pi, etc. |
| Windows | Not Supported | No plans (author's stance is clear) |
Configuration
Ghostty works out-of-the-box with zero configuration. The config file is located at ~/.config/ghostty/config:
# Theme (hundreds of built-in themes available)
theme = catppuccin-mocha
# Font
font-family = "JetBrains Mono"
font-size = 14
# Window
window-padding-x = 10
window-padding-y = 10
window-decoration = true
# Performance
adjust-cell-height = 0
# Keybinding examples
keybind = cmd+t=new_tab
keybind = cmd+w=close_surface
Configuration changes are automatically hot-loaded without requiring a restart.
Core Features
| Feature | Description |
|---|---|
| Split Panes | Cmd+D for vertical split, Cmd+Shift+D for horizontal split |
| Tabs | Cmd+T for new tab, Cmd+1-9 to switch |
| Kitty Graphics Protocol | Display images directly in the terminal (icat image.png) |
| Theme System | Hundreds of built-in themes, one-line config to switch |
| Unicode Support | Full Unicode + Emoji + Ligatures support |
Agent Interaction Mechanism
Interaction with Ghostty is primarily configuration-driven; it does not expose a runtime API:
flowchart LR
A[Config File
~/.config/ghostty/config] -->|Hot-load| B[Ghostty Process]
C[Internal Splitting] -->|Visual Management| D[Claude Code Agent]
E[Keybindings] -->|Window Control| B
B -->|GPU Rendering| F[Agent Output Display]
style A fill:#2ecc71,color:#fff
style D fill:#4a9eff,color:#fff| Interaction Mode | Support | Description |
|---|---|---|
| Config File | Full | The only way to control Ghostty; hot-loading enabled |
| Socket API | None | Ghostty does not expose a runtime API |
| AppleScript | None | Not supported on macOS either |
| CLI Control | Limited | No ghostty CLI for sending commands |
| Built-in Splitting | Yes | Manual management of multiple Agent windows |
Practical Usage: Open multiple Ghostty tabs/splits, each running a Claude Code instance. Management relies on manual switching.
Pros & Cons
| Pros | Cons |
|---|---|
| Fastest rendering speed (GPU accelerated) | No Agent management notification mechanism |
| Zero-config, works out-of-the-box | No vertical tab bar |
| Rich theme system | No programmable API |
| Cross-platform (macOS/Linux) | No Windows support |
| MIT licensed, completely free | No built-in AI features |
| Kitty Graphics Protocol support | tmux integration not as deep as iTerm2 |
Best Use Cases
- Running 1-3 Agents locally, prioritizing speed
- Scenarios with massive code output (diffs, logs, test results)
- Using as a frontend for tmux (
Ghostty + tmuxcombo)