Skip to content

Instantly share code, notes, and snippets.

@stephengodderidge
Created May 21, 2026 15:26
Show Gist options
  • Select an option

  • Save stephengodderidge/efb468adcb5b75e8033c1dbede78dc17 to your computer and use it in GitHub Desktop.

Select an option

Save stephengodderidge/efb468adcb5b75e8033c1dbede78dc17 to your computer and use it in GitHub Desktop.
Ghostty on Windows — research notes and roadmap (May 2026)

Ghostty on Windows — Research & Roadmap

Research notes compiled May 2026. Based on the Ghostty GitHub repo, ghostty.org, and Mitchell Hashimoto's libghostty blog post.

Current State

No native Windows GUI exists. Ghostty ships on macOS (official binaries) and Linux (distro packages). However, the core parsing/state library — libghostty-vt — already supports Windows and WASM.

libghostty vs libghostty-vt

libghostty-vt libghostty (full)
Scope Terminal sequence parsing + state only Parsing, input handling, GPU rendering, platform widgets
Dependencies Zero (not even libc) Will grow per module
Platforms macOS, Linux, Windows, WASM TBD per module
Status Alpha (Zig module available, C API in progress) Future roadmap

libghostty-vt is the innermost layer — what every consumer needs, from full terminal emulators to simple log viewers (GitHub Actions output, Vercel build logs, etc.). The full libghostty is an umbrella vision: a family of libraries shipping incrementally.

Main Gaps to Ghostty on Windows

  1. No Windows GUI frontend — macOS uses SwiftUI, Linux uses GTK. Neither works on Windows. Needs a native frontend (WinUI 3, Win32, etc.).
  2. No Windows renderer — Uses Metal on macOS, OpenGL on Linux. Windows needs DirectX, OpenGL, or Vulkan backend.
  3. No Windows input handling — Keyboard encoding, IME, platform-specific input plumbing.
  4. PTY layer — Windows uses ConPTY (not Unix PTYs). Needs a Windows-specific pty implementation.
  5. Platform integration — Font discovery (DirectWrite vs CoreText/fontconfig), clipboard, notifications, window management, DPI scaling.

Order of Operations (Critical Path)

Phase 1 — Already done ✅

  • libghostty-vt (parsing + terminal state) — works on Windows today

Phase 2 — Foundational libs (blocking everything else)

  1. libghostty C API stabilization — currently alpha, needs a tagged release
  2. Input handling library — keyboard encoding, key mapping

Phase 3 — Windows-specific platform work

  1. ConPTY integration — connect to Windows' pseudo-terminal layer
  2. Font discovery via DirectWrite
  3. GPU renderer for Windows — DirectX 11/12 or OpenGL/Vulkan backend

Phase 4 — The actual app

  1. Windows GUI shell — window management, tabs, splits, menus, settings
  2. Platform integration — clipboard, notifications, IME, DPI, keybindings

Phase 5 — Polish

  1. Installer/distribution — MSI/MSIX, winget, scoop, chocolatey
  2. Testing at scale — PowerShell, CMD, WSL, Git Bash compatibility

Realistic Assessment

The Ghostty team has not signaled Windows as a priority for the GUI. Two paths forward:

  • Wait for the team to build it (no timeline given)
  • Community builds it using libghostty modules as they ship — this is the explicit design intent behind making Ghostty a library

Key signal to watch: When libghostty ships a renderer module with Windows support — that collapses Phases 3–4 significantly.

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment