hollow.process

June 4, 2026 · View on GitHub

Run child processes from Lua. The simple tuple helpers are the recommended path today; spawn and exec are placeholders for a future richer API.

Functions

hollow.process.run_child_process(args, opts?)       -- returns (ok, stdout, stderr)
hollow.process.run(cmd, args?)                      -- returns { code, stdout, stderr }
hollow.term.run_domain_process(args, domain?, opts?) -- runs through a domain shell

run_child_process is the WezTerm-style tuple helper. run returns a structured table with code, stdout, stderr. run_domain_process resolves the configured domain shell and runs the argv through it; if domain is omitted it uses the current pane's domain.

opts

{
  hide_window = true,   -- default true; suppresses a console window on Windows
}

Examples

local ok, out, err = hollow.process.run_child_process({
  "git", "rev-parse", "--show-toplevel",
})

if ok then
  print("top-level:", out)
else
  print("git failed:", err)
end

Run a process through the active pane's domain:

local ok, out, err = hollow.term.run_domain_process({
  "ls", "-la",
})

Run a process through a specific domain:

local ok, out, err = hollow.term.run_domain_process({
  "uname", "-a",
}, "UbuntuWSL")

Placeholders

hollow.process.spawn(opts) and hollow.process.exec(opts) are declared in the API surface but are not implemented yet. Use the helpers above for now.

See also