Skip to content

Latest commit

Β 

History

15,247 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo
Ghostty (Windows)

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.

⚠️ DISCLAIMER: AI SLOP

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.

About

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.

Features

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

What's not implemented yet

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)

Download

Grab the latest ghostty.exe from Releases.

No installer needed β€” it's a single portable exe. Just run it.

Building from Source

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 -j4

Output: zig-out/bin/ghostty.exe

Configuration

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.

Shell Integration

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.

Architecture

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.

Test Status

Metric Count
Pass 2546
Skip 23 (platform-specific)
Fail 1 (pre-existing upstream CRLF issue)
Total 2570

License

Same license as upstream Ghostty. See LICENSE.

About

πŸ‘» Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages