zeroclaw

Installs the ZeroClaw agent runtime and connects it to the llama.cpp servers on the VM's host, no API key needed.

Use it on boxctl

  1. On the dashboard, pick zeroclaw in the Template picker and click Boot box.
  2. The box boots, then runs zeroclaw/zeroclaw.sh on itself. The button reads Booting… until the script has finished.
  3. Open the box's Terminal and follow the guide below. The box's row keeps a link back to this page under the template's name.

Once it is up, these are the commands to start from. The box's row lists them too.

Run on the boxWhat it does
grep '^\[agents' ~/.zeroclaw/config.tomlList the agents the script set up, one per model it found on the host.
zeroclaw agent -a gemmaStart an interactive session. Replace gemma with one of your agents.

The guide is shared with the onctl CLI, so it starts from an onctl up -a zeroclaw/zeroclaw.sh command. Booting a box with this template replaces that command; everything the guide runs on the VM itself applies as written.

Options

boxctl cannot pass options to a template yet, so each of these keeps its default.

OptionRequiredWhat it sets
ZEROCLAW_VERSIONNoZeroClaw release tag to install (default: v0.8.5).
LLM_HOSTNoAddress of the machine running the model servers (default: the VM's default gateway, i.e. its host).
LLM_PORTSNoSpace-separated ports to look for an OpenAI-compatible llama.cpp server on (default: 8080 8081).

ZeroClaw with a local model

Installs ZeroClaw, a single-binary AI agent runtime, and points it at the llama.cpp servers (llama-server) running on the VM's host. ZeroClaw ships no model of its own; this gives it one without an API key.

onctl up -n claw -a zeroclaw/zeroclaw.sh

The script downloads the release, checks it against the release's SHA256SUMS, and installs /usr/local/bin/zeroclaw. It then asks each port in LLM_PORTS on LLM_HOST which model it serves (GET /v1/models) and writes one provider and one agent per answer to ~/.zeroclaw/config.toml. An agent is named after its model's leading letters: a server with gemma-4-26B-A4B-it-Q8_0 becomes the agent gemma.

zeroclaw agent -a gemma                      # interactive
zeroclaw agent -a gemma -m "what is in /etc/os-release?"

To use another model, start the other agent: there is no switching inside a session, and each agent keeps its own workspace and memory. Small models (a few billion parameters) answer, but handle ZeroClaw's tool list poorly.

LLM_HOST defaults to the VM's default gateway. For a Firecracker VM that is the host, so a llama-server listening on the host's bridge address (or 0.0.0.0) is found as is. On a cloud VM, set LLM_HOST to wherever the model runs. If nothing answers, ZeroClaw is still installed and the script says which ports it tried.

The agents are unrestricted

The risk profile this writes allows any command on any path, with no approval prompts: the VM is the sandbox. Use a VM you can throw away, and keep credentials you care about off it. To tighten it, edit [risk_profiles.default] in ~/.zeroclaw/config.toml; ZeroClaw's own default is level = "supervised" with a command allowlist.

Running the script again overwrites config.toml.

Options

onctl up -n claw -a zeroclaw/zeroclaw.sh \
  -e ZEROCLAW_VERSION=v0.8.5 \
  -e LLM_HOST=192.168.1.20 \
  -e LLM_PORTS="8080 11434"

The version is pinned by default because the config format is tied to it (schema_version = 3). x86_64 and aarch64 Linux with glibc.

See the template's source for exactly what it runs.