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
- On the dashboard, pick zeroclaw in the Template picker and click Boot box.
- The box boots, then runs
zeroclaw/zeroclaw.shon itself. The button reads Booting… until the script has finished. - 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 box | What it does |
|---|---|
grep '^\[agents' ~/.zeroclaw/config.toml | List the agents the script set up, one per model it found on the host. |
zeroclaw agent -a gemma | Start 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.
| Option | Required | What it sets |
|---|---|---|
ZEROCLAW_VERSION | No | ZeroClaw release tag to install (default: v0.8.5). |
LLM_HOST | No | Address of the machine running the model servers (default: the VM's default gateway, i.e. its host). |
LLM_PORTS | No | Space-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.