Windows

August 26, 2026 · View on GitHub

Hollow is a Windows-native terminal emulator. This page covers install, layout, default domains, and the renderer flags the wrapper exposes for Windows debugging.

For the build walkthrough see Development. For the Windows-side WSL setup see WSL. For the shipped executable layout see Packaging.

Install a release

Download the latest release from GitHub Releases. A release zip contains:

FileRole
hollow.exeCLI launcher and hollow cli … host
hollow-gui.exeConsole-less GUI shim
hollow-native.exeActual GUI process
hollow-cliPython HTP client (optional, OSC over tty)
wsl/hollow-wsl-bypassLinux-side WSL helper (optional)

Debug symbols (.pdb files) are not bundled in releases. For crash symbolication, see Packaging → Crash reports.

Runtime layout

hollow.exe is a thin console launcher; it parses flags, then spawns hollow-native.exe (the GUI) as a sibling. The GUI appends to %APPDATA%\hollow\hollow.log. The console returns immediately so the terminal you launched from is not blocked.

hollow.exe
  └─ hollow-native.exe  (D3D11 + Sokol renderer)
       └─ hollow-gui.exe (present for completeness; not used directly)

Config paths

WhatPath
Bundled base configconf/init.lua next to the executable
Personal override%APPDATA%\hollow\init.lua
Explicit override--config path\to\init.lua
Log file%APPDATA%\hollow\hollow.log
Data dir (plugins)%APPDATA%\hollow

The base config is loaded first, the override is merged on top. See Configuration for the full model.

Default domains

The shipped base config defines these on Windows:

DomainShellNotes
pwshpwsh.exeDefault
powershellpowershell.exeWindows PowerShell 5.x
cmdcmd.exeCommand Prompt
wslC:\Windows\System32\wsl.exeSee WSL
*WSLone per installed distroPopulated by populate_wsl_domains()

Switch the default:

hollow.config.set({ default_domain = "UbuntuWSL" })

Customize the WSL domain:

hollow.config.set({
  domains = {
    wsl = { shell = "C:\\Windows\\System32\\wsl.exe" },
  },
})

CLI flags

hollow.exe accepts the flags listed in Development. The most useful Windows-specific flags:

FlagEffect
--config pathUse path as the override config
--renderer-safe-modeDisable swapchain glyphs and the multi-pane cache
--renderer-disable-swapchain-glyphsOnly disable the swapchain glyph path
--renderer-disable-multi-pane-cacheOnly disable the multi-pane cache
--list-fonts, --match-font query, --jsonDump the font inventory
--startup-command textSend text to the first pane after startup
--snapshot-dump pathDump a frame snapshot for headless debugging
--helpPrint the usage line

launch.sh exposes --safe-render, --no-swapchain-glyphs, --no-multi-pane-cache as the dev-loop equivalents. See Development → Wrapper flags.

Debugging

  • %APPDATA%\hollow\hollow.log receives every panic and log line.
  • The shipped base config sets debug_overlay = false and command_timing = false. Flip them on in your personal config to get the on-screen overlay.
  • For crash reports, send %APPDATA%\hollow\hollow.log; symbolication requires a build with matching PDBs as described in Packaging → Crash reports.

See also

  • WSL — Windows-side WSL setup and the bypass helper
  • Development — build from source
  • Packaging — release artifacts, runtime layout, crash reports
  • Troubleshooting — common Windows issues