Introduction
The terminal emulator landscape has a new contender. Ghostty (version 1.0+) is a fast, feature-rich, cross-platform terminal built with the Zig programming language by Mitchell Hashimoto, co-founder of HashiCorp.
In this comprehensive guide, we’ll explore Ghostty’s architecture, features, performance, and why it might become your next terminal emulator.
What is Ghostty?
Ghostty is a modern terminal emulator that emphasizes:
- Performance: Blazing fast rendering
- Cross-platform: macOS and Linux support
- Native feel: Uses platform-native UI
- GPU acceleration: Hardware-accelerated graphics
- Simplicity: Minimal configuration needed
Created by Mitchell Hashimoto
The project comes from a renowned developer:
- Co-founder of HashiCorp (Vagrant, Terraform, Consul, Vault)
- Creator of Nomad and other infrastructure tools
- Now focusing on Ghostty as a passion project
Why Zig?
The Zig Programming Language
Zig is a modern systems programming language that offers:
| Feature | Description |
|---|---|
| No hidden control flow | Explicit error handling |
| Manual memory | Predictable performance |
| C interop | Easy to use C libraries |
| Cross-compilation | Build for any platform |
| Small runtime | Minimal dependencies |
Why Ghostty Uses Zig
// Memory control - no garbage collection
const allocator = std.heap.page_allocator;
// Predictable performance
var buffer = try allocator.alloc(u8, 1024);
defer allocator.free(buffer);
// No hidden allocations
const map = std.AutoHashMap(u32, u32).init(allocator);
defer map.deinit();
Benefits for Ghostty
- Performance: Direct memory control, no GC pauses
- Size: Small binary, minimal dependencies
- Portability: Same code compiles everywhere
- Maintenance: Modern language, easier to contribute
Key Features
1. GPU Acceleration
Ghostty uses GPU for rendering:
- Smooth scrolling: 60fps+ even with large output
- Efficient text: Font rendering with Metal (macOS) and Vulkan (Linux)
- Animations: Smooth transitions
2. Native UI
- macOS: Uses AppKit for native feel
- Linux: GTK for native integration
- Consistent: Same features on both platforms
3. Font Rendering
- Ligatures: Built-in ligature support
- Variable fonts: Full variable font support
- Emoji: Proper emoji rendering with color fonts
4. Window Management
- Tabs: Multiple terminal sessions
- Split: Horizontal and vertical splits
- Floating: Optional floating windows
- Native: Respects system window management
Installation
macOS
# Using Homebrew
brew install ghostty
# Or download from GitHub releases
# https://github.com/ghostty-org/ghostty/releases
Linux
From Source
# Install dependencies
# Ubuntu/Debian
sudo apt install zig libgtk-3-dev libsoup-3.0-dev glib-2.0-dev
# Clone repository
git clone https://github.com/ghostty-org/ghostty.git
cd ghostty
# Build
zig build -Doptimize=ReleaseSafe
# Run
./zig-out/bin/ghostty
From Package Managers
# Arch Linux (AUR)
yay -S ghostty
# Fedora
sudo dnf copr enable ghostty/ghostty
sudo dnf install ghostty
Configuration
Configuration File
Ghostty uses a simple key-value configuration:
# ~/.config/ghostty/config
# Font settings
font-family = "JetBrains Mono"
font-size = 14
# Color scheme
theme = "nord"
# Window settings
window-padding-x = 10
window-padding-y = 10
# Shell
shell = /usr/bin/fish
# Performance
renderer = gpu
Key Configuration Options
| Option | Description | Default |
|---|---|---|
font-family |
Primary font | System default |
font-size |
Font size in pixels | 12 |
theme |
Color theme | Default dark |
shell |
Default shell | System default |
window-padding-x |
Horizontal padding | 0 |
window-padding-y |
Vertical padding | 0 |
renderer |
Rendering backend | auto |
cursor-style |
Cursor appearance | block |
mouse-hide |
Hide mouse while typing | true |
Themes
Ghostty includes built-in themes:
# Use built-in themes
theme = "nord" # Blue-gray
theme = "dracula" # Purple
theme = "gruvbox" # Retro
theme = "catppuccin" # Modern pastel
Performance
Rendering Speed
Ghostty is optimized for speed:
| Metric | Ghostty | iTerm2 | WezTerm |
|---|---|---|---|
| Cold Start | 50ms | 150ms | 80ms |
| Scroll FPS | 60+ | 30 | 60 |
| Memory | 25MB | 45MB | 35MB |
| CPU Idle | 0.1% | 0.5% | 0.3% |
Why It’s Fast
- GPU Rendering: Text rendered on graphics card
- Zig Performance: Minimal runtime overhead
- Efficient Updates: Only redraws changed areas
- No Electron: Native code, not web-based
Comparison with Other Terminals
vs iTerm2 (macOS)
| Feature | Ghostty | iTerm2 |
|---|---|---|
| Platform | macOS + Linux | macOS only |
| Performance | Faster | Good |
| Configuration | File-based | GUI + file |
| Protocols | SSH, local | SSH, local, serial |
| Development | Active | Mature |
vs WezTerm
| Feature | Ghostty | WezTerm |
|---|---|---|
| Language | Zig | Rust |
| Performance | Comparable | Very fast |
| Configuration | Simple | Lua-based |
| Features | Focused | Feature-rich |
| Development | Newer | Mature |
vs Alacritty
| Feature | Ghostty | Alacritty |
|---|---|---|
| Language | Zig | Rust |
| Features | More features | Minimal |
| Configuration | File-based | YAML |
| Development | Active | Less active |
Advanced Features
1. Tabs and Splits
# Keyboard shortcuts
Cmd+T - New tab
Cmd+D - Split vertically
Cmd+Shift+D - Split horizontally
Cmd+W - Close tab
Cmd+[ - Previous tab
Cmd+] - Next tab
2. Search
# Search within terminal
Cmd+F - Open search
# Type to search
# Enter - Next match
# Shift+Enter - Previous match
3. Copy and Paste
# Copy
Cmd+C - Copy selected text
Cmd+Shift+C - Copy to clipboard
# Paste
Cmd+V - Paste
Cmd+Shift+V - Paste without formatting
4. Unicode and Emoji
Ghostty properly renders:
- Color emojis: Native emoji support
- Unicode: Full Unicode 15.0 support
- Ligatures: Programming ligatures
Troubleshooting
Common Issues
-
No display on Linux
# Install required dependencies sudo apt install libgtk-3-dev libsoup-3.0-dev -
Font not found
# Specify full font name font-family = "JetBrains Mono Regular" -
Slow rendering
# Force GPU rendering renderer = gpu # Or CPU fallback renderer = cpu
Getting Help
The Future of Ghostty
Roadmap
The project is actively developed:
- Windows support
- More platform integration
- Additional features
- Performance optimizations
Why It Matters
Ghostty represents a new generation of terminal emulators:
- Modern language: Zig provides safety and performance
- Focused development: Active maintainer
- Community-driven: Open source contributions
- Performance-first: Doesn’t sacrifice speed for features
Tools and Resources
Official Resources
Related Projects
Related Articles
- Fish Shell 4.0 Guide
- Terminal Customization 2026
- Best CLI Tools for Developers
Conclusion
Ghostty brings modern terminal emulation to developers who value performance and simplicity. Built with Zig by an experienced developer, it offers:
- Excellent performance: GPU-accelerated rendering
- Cross-platform: macOS and Linux support
- Simple configuration: Easy to set up
- Active development: Regular updates and improvements
While still newer than established terminals like iTerm2, Ghostty is quickly gaining traction among developers who want a fast, modern terminal experience.
Key takeaways:
- Zig provides performance without complexity
- GPU rendering ensures smooth experience
- Simple config lowers the barrier to entry
- Active development ensures continued improvement
Related Articles
- Fish Shell 4.0 with Rust
- Visual Studio 2026 Guide
- Modern Developer Tools
Comments