Windows port of Ghostty Not affiliated with or endorsed by the upstream Ghostty project. Do not file issues about this fork on the upstream repository.
This project was entirely vibe coded with Claude Opus 4.6 1M for unfathomable reasons. I am ashamed to set this repo public and it is provided for entertainment value only. This software should not be used on production systems (ideally not anywhere) and may be unstable or incomplete.
Ghostty is a terminal emulator that differentiates itself by being fast, feature-rich, and native. Upstream Ghostty supports macOS and Linux. This fork adds a native Windows app runtime using Win32 and WGL OpenGL, building on Ghostty's cross-platform terminal core.
The goal is complete feature parity with the Linux and macOS clients β the same GPU-accelerated rendering, the same key bindings, the same config file, the same experience.
Everything you'd expect from a modern terminal, running natively on Windows:
- GPU-accelerated rendering via WGL OpenGL with FreeType + HarfBuzz text shaping
- Tabs with custom-drawn tab bar, close buttons, new-tab button, keyboard move/reorder, and context menus
- Split panes β horizontal and vertical (right, down, left, up), with draggable dividers and keyboard resize
- In-terminal search with match count and navigation (Enter/Shift+Enter)
- IME support β full CJK input method composition with candidate window positioning
- Dark/light mode β auto-detects Windows theme and updates on system setting changes
- Fullscreen and maximize β borderless fullscreen, toggle decorations
- Quick terminal β quake-style dropdown terminal (toggle with keybind)
- Split zoom β temporarily maximize a single split pane
- Clipboard β read/write with paste confirmation for bracketed paste
- Desktop notifications via Windows balloon tips
- DPI awareness β per-monitor DPI scaling, responds to DPI changes
- Title bar theming β title bar color matches terminal background (Windows 11)
- Config reload β edit config, reload without restarting; errors shown in dialog
- Cursor shapes β all standard cursor shapes mapped to Win32 cursors
- Mouse β buttons, drag selection with capture, vertical and horizontal scroll, link hover detection
- Mouse auto-hide β cursor hides while typing, reappears on mouse movement
- Keyboard β full VK translation, modifier tracking, key repeat detection, dead keys
- Shell integration β PowerShell script with OSC 133 prompt marking, OSC 7 directory tracking, title updates
- Single instance β named mutex + named pipe IPC; second launch opens a new window in the existing process
- ConPTY β native Windows pseudo-terminal for subprocess spawning
- Font discovery β finds fonts via Windows registry; bundled JetBrains Mono as fallback
- Tab management β goto tab, move tab, close other tabs, close tabs to right, tab overview popup
- Window management β multiple windows, goto window, toggle visibility, size limits
- Command palette β popup menu with common terminal actions (copy, paste, split, fullscreen, config, etc.)
- Scrollbar β native Win32 scrollbar for scrollback navigation (line, page, thumb tracking)
- Drag and drop β drop files from Explorer into the terminal (shell-escaped paths)
- Progress indicator β shows build/task progress in window title from shell integration
- Key sequence indicator β overlay showing when a multi-key binding is in progress
- Key table indicator β overlay showing the active key table name
- Title prompt β dialog to set custom tab/surface titles
- Context menu β right-click menu with copy, paste, select all, clear, reset, split (submenu), change title, close
These are features that exist in GTK/macOS but don't have Windows implementations:
| Feature | Notes |
|---|---|
| Inspector | Terminal state debugging panel (GTK has a separate inspector window) |
| Tab drag reordering | Tabs can be moved via keyboard (move_tab) but not dragged with the mouse |
| Background opacity toggle | toggle_background_opacity action is not wired up |
| Float window | Floating/detaching a terminal pane into its own window |
| Secure input | macOS secure keyboard entry indicator |
| On-screen keyboard | Wayland virtual keyboard support (not applicable to Windows) |
| Check for updates | macOS Sparkle-based auto-updater |
| Undo/Redo | Text editing undo/redo (not implemented in any platform) |
| Background blur | Frosted glass effect behind transparent terminal |
| Primary clipboard | X11 middle-click paste (not a Windows concept) |
Grab the latest ghostty.exe from
Releases.
No installer needed β it's a single portable exe. Just run it.
Requires Zig 0.15.2. Download from ziglang.org.
# Debug build
zig build -j4
# Release build (recommended)
zig build -j4 -Doptimize=ReleaseFast
# Run tests
zig build test -j4Output: zig-out/bin/ghostty.exe
Config file location: %LOCALAPPDATA%\ghostty\config.ghostty
Example:
font-family = JetBrains Mono
font-size = 12
theme = dark
background-opacity = 0.95
command = powershell.exe
All upstream Ghostty config options work. See the Ghostty docs for the full reference.
For PowerShell, add this to your $PROFILE:
. "$env:LOCALAPPDATA\ghostty\shell-integration\powershell\ghostty.ps1"This enables prompt marking (Ctrl+Shift+Up/Down to jump between prompts), directory tracking, and window title updates.
src/apprt/windows/
βββ App.zig # App lifecycle, event loop, performAction dispatch,
β # Window struct (tabs, splits, frame HWND)
βββ Surface.zig # Terminal HWND + WGL context, keyboard/mouse/IME,
β # clipboard, search overlay, scrollbar, command palette
βββ key.zig # VK-to-Ghostty key translation, modifier state
βββ winapi.zig # Win32 API declarations
src/os/heap.zig # Cross-platform mmap (VirtualAlloc)
src/font/discovery_windows.zig # Font discovery via registry
src/shell-integration/powershell/ghostty.ps1 # PowerShell integration
The Windows runtime implements the same apprt interface as GTK (Linux)
and the embedded runtime (macOS). The terminal core β VT emulation, PTY,
renderer, font system β is shared across all platforms.
| Metric | Count |
|---|---|
| Pass | 2546 |
| Skip | 23 (platform-specific) |
| Fail | 1 (pre-existing upstream CRLF issue) |
| Total | 2570 |
Same license as upstream Ghostty. See LICENSE.
