Platforms

July 10, 2026 ยท View on GitHub

Hollow's primary validated target is Windows, with WSL as a first-class shell domain. Other platforms are partially supported; the table below summarises the state of the build and runtime on each one.

PlatformApp buildRuntime statusNotes
Windows (10/11, x86_64)YesPrimarySee Windows
WSL (Ubuntu, others)Helper onlyFirst-class shell domainSee WSL
Linux (native, X11)YesBasicSee Linux
macOSBrokenNot validatedSee macOS

What "primary validated" means

A primary validated target is one where:

  • The build succeeds with the pinned toolchain
  • A packaged hollow.exe runs and renders
  • Tabs, panes, workspaces, copy mode, themes, hyperlinks, and the native CLI all work as documented
  • The default keymap is exercised by the test suite

WSL is not a build target for the app; it is a shell domain. WSL shells are launched from the Windows host, with an optional Linux-side helper that skips ConPTY.

Linux currently uses Sokol's X11 backend. It can run through XWayland, but native Wayland is not yet supported.

Cross-platform config

Config files use the same Lua API on every host. The shipped base config branches on hollow.platform.is_windows to pick defaults:

local hollow = require("hollow")
local is_windows = hollow.platform.is_windows == true

local default_domain = is_windows and "pwsh" or "unix"
local domains = {}

if is_windows then
  domains.pwsh       = { shell = "pwsh.exe" }
  domains.powershell = { shell = "powershell.exe" }
  domains.cmd        = { shell = "cmd.exe" }
else
  domains.unix = { shell = hollow.platform.default_shell }
end

This is also why some guides in this site say "Windows only" or "non-Windows hosts" โ€” the behavior genuinely differs.

Choosing a platform guide

  • New to Hollow on Windows? Start with Windows.
  • Want WSL as the default shell? Read WSL.
  • Trying to run on Linux or macOS? Read the caveats in Linux or macOS before opening an issue.