Hollow

June 23, 2026 · View on GitHub

Hollow demo
Hollow demo Hollow demo

What Hollow Is

A Zig terminal emulator with a LuaJIT runtime and Ghostty's VT core. A personal project first — built for my own workflow — but designed to be useful and customizable for others. A spiritual successor to WezTerm, with Lua API inspiration from Neovim.

If you are new to the repo, start with the docs index.

Features

  • Zig + LuaJIT runtime with a full Lua API (hollow.config, hollow.term, hollow.events, hollow.keymap, hollow.ui, hollow.htp, and more)
  • Ghostty's VT core for fast, accurate terminal emulation
  • Tabs, split panes, floating panes, maximized panes, workspaces, customizable top bar
  • Scrollback, selection, clipboard, hyperlink handling, font discovery, ligature, nerd fonts and emoji support
  • Basic support for Kitty images and Sixel
  • Windows domains for pwsh, powershell, cmd, and wsl
  • Optional WSL PTY bypass helper with automatic ConPTY fallback (needed for full escape sequence support)
  • Cross-platform targets: Windows, WSL (primary); Linux, macOS (planned)
  • Plugin system with Lua API for custom panes, overlays, and widgets (hollow.plugins)
  • Opiniated default UX but fully customizable via Lua config and plugins

Quick Start

Zig version: 0.15.2 only. If you use asdf or mise, run asdf install or mise install from the repo root — .tool-versions is already pinned.

Download a release: github.com/sudo-tee/hollow/releases Windows builds include the optional hollow-wsl-bypass helper for WSL domains (falls back to ConPTY automatically when the helper is absent).

Customize: copy conf/init.lua to %APPDATA%\hollow\init.lua (Windows) or ~/.config/hollow/init.lua (other).

Build from source:

./scripts/setup.sh        # first-time submodule init
./launch.sh               # Windows cross-build + run
zig build run             # non-Windows build + run

Full build docs in Development.

Documentation

The full guide set lives in docs/:

SectionStart here
GuidesGetting started, Configuration, Keybindings, Panes/tabs/workspaces
PlatformsWindows, WSL, Linux, macOS
ReferenceLua API, CLI, Keymap actions
ExamplesConfig snippets, UI recipes, Plugin authoring

Companion files: conf/init.lua (default config), types/hollow.lua (LuaLS typings).

Default Keymaps

All keymaps are defined in conf/init.lua. The leader key is <C-Space> (1200ms timeout). See the file for the full bindings or override them in your user config via hollow.keymap.set.

Project Status

  • Hollow is still an active project and the API surface is still moving.
  • The docs in this repo are meant to describe the current product, not a future roadmap.
  • The current build is suitable for building, running, configuring, and packaging now, with Windows/WSL as the main tested target.
  • If you are planning a docs site, treat docs/README.md as the navigation root.