Menu
Browse documentation

Start

Install

verified · v2026.5.29 edit on github
On this page 6 sections

NullHub is one self-contained binary: the Zig backend and the Svelte dashboard are compiled together, so there is nothing else to deploy. Pick whichever of the three routes below fits your machine.

Docker

The image serves the dashboard on port 19800 and keeps all state in a volume mounted at /nullhub-data:

docker run --rm -p 19800:19800 -v nullhub-data:/nullhub-data ghcr.io/nullclaw/nullhub:latest

The default image runs as an unprivileged user (uid 65534). If you need the container to run as root — the Dockerfile calls this "autonomous mode", an explicit opt-in — build the root target:

docker build --target release-root -t nullhub:root .

Prebuilt binary

Every release attaches binaries for seven targets:

Platform Asset
macOS, Apple silicon nullhub-macos-aarch64.bin
macOS, Intel nullhub-macos-x86_64.bin
Linux, x86_64 nullhub-linux-x86_64.bin
Linux, aarch64 nullhub-linux-aarch64.bin
Linux, riscv64 nullhub-linux-riscv64.bin
Windows, x86_64 nullhub-windows-x86_64.exe (also .zip)
Windows, aarch64 nullhub-windows-aarch64.exe (also .zip)

Download from GitHub releases, make it executable, run it:

curl -fL https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-macos-aarch64.bin -o nullhub
chmod +x nullhub
./nullhub

There is no Homebrew formula for NullHub yet. (If you only want the agent, NullClaw does have one.)

Build from source

Requires Zig 0.16.0 exactly, plus npm to build the embedded Svelte UI:

zig build
./zig-out/bin/nullhub

The resulting binary includes the built web UI — it does not depend on a runtime ui/build directory.

Prerequisites

At runtime NullHub needs two ordinary tools:

  • curl — fetches releases and component binaries
  • tar — extracts UI module bundles

If either is missing, NullHub tries to install it automatically through whatever package manager it finds: apt, dnf, yum, pacman, zypper, apk, brew, winget, or choco.

Run as an OS service

Once you are happy with it, register NullHub as a systemd or launchd service so it survives reboots:

nullhub service install
nullhub service status

nullhub service uninstall removes it again.

Where things live

All state — config, instances, downloaded binaries, logs, cached manifests — sits under ~/.nullhub/. Deleting that directory is a full reset.

Next: Quickstart.