Start
Install
On this page 7 sections
NullClaw ships as a single static binary with no runtime dependencies besides libc. Pick one of the paths below and you are done in a minute or two.
Homebrew (recommended for macOS and Linux)
brew install nullclaw
nullclaw --helpIf the help output prints, the install is complete.
To upgrade later:
brew update
brew upgrade nullclawDocker or Podman
NullClaw publishes an official OCI image at ghcr.io/nullclaw/nullclaw. The container keeps all persistent state under /nullclaw-data — config at /nullclaw-data/config.json, workspace at /nullclaw-data/workspace.
# one-off command
docker run --rm -it \
-v nullclaw-data:/nullclaw-data \
ghcr.io/nullclaw/nullclaw:latest status
# initialize config interactively
docker run --rm -it \
-v nullclaw-data:/nullclaw-data \
ghcr.io/nullclaw/nullclaw:latest onboard --interactive
# run the HTTP gateway on host loopback
docker run --rm -it \
-p 127.0.0.1:3000:3000 \
-v nullclaw-data:/nullclaw-data \
ghcr.io/nullclaw/nullclaw:latestThe repository also ships a Makefile wrapper around Docker Compose:
make build
make config
make upmake config runs nullclaw onboard --interactive inside the container. Pass only non-secret flags through CONFIG_ARGS — command-line arguments can leak via shell history and process listings:
make config CONFIG_ARGS="--provider openrouter"Build from source
You need Zig 0.16.0 exactly. Other versions are unsupported and may fail to build. Check first:
zig version # must print 0.16.0Then:
git clone https://github.com/nullclaw/nullclaw.git
cd nullclaw
zig build -Doptimize=ReleaseSmall
zig build test --summary allThe binary lands at zig-out/bin/nullclaw. To put it on your PATH:
zig build -Doptimize=ReleaseSmall -p "$HOME/.local"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
# bash users: ~/.bashrcAndroid / Termux
Official releases include pre-built Android/Termux binaries for aarch64, armv7, and x86_64. You can also build natively on the device:
pkg update
pkg install git zig
git clone https://github.com/nullclaw/nullclaw.git
cd nullclaw
zig build -Doptimize=ReleaseSmall
./zig-out/bin/nullclaw --helpOn Android, prefer foreground use (agent, gateway) before trying service mode.
Verify
nullclaw --help
nullclaw --version
nullclaw statusIf status returns component state, the runtime basics are ready.
Keeping it current
The binary can update itself:
nullclaw update --check # check only
nullclaw update --yes # install without promptingReleases use CalVer tags (vYYYY.M.D); nullclaw --version prints the version embedded from the git tag.
Next
Continue with Quickstart to onboard a provider and send your first message.