Skip to main contentClaim $5 in free credit — one-time, per account. Claim $5 free
Krova CloudKrova Cloud

Self-host ZeroClaw on a Cube

Run ZeroClaw on a Krova Cube — the lightweight open-source personal AI agent (single Rust binary, MIT/Apache-2.0 dual license) with 30+ chat-app channels.

ZeroClaw is a lightweight personal AI agent that ships as a single native Rust binary and connects to 70+ LLM providers and 30+ chat-app channels. It is dual-licensed MIT OR Apache-2.0 and described by its maintainers as "the lightweight personal AI agent you own." A Cube is a good place to run it: real resources, no public IP needed for the agent itself, and the per-minute billing suits an always-on agent.

The install is one curl command. The part worth reading carefully is Step 4 — ZeroClaw exposes a local web UI on a high-numbered port, and a Cube has no public inbound of its own. The path is to point a domain at the Cube and let the Krova edge terminate TLS.

Before you start

ZeroClaw is a single Rust binary with no runtime dependencies. The agent layer is small; the heavy resource is the LLM it drives. ZeroClaw works with any OpenAI-compatible provider, including local Ollama.

  • A Cube of 2 vCPU, 4 GB RAM, 40 GB disk — about $0.0140/hour, roughly $0.34/day or $10/month if left running. Comfortable for the agent plus a small local model.
  • If you want to run a capable local model (around 7B parameters), plan on 8 GB RAM and 8 GB of disk for the model weights alone, in addition to the agent. The Cube size for that is 4 vCPU, 16 GB RAM, 100 GB disk.
  • An SSH key pair, as with any Cube.
  • An API key from an AI provider — or a local Ollama install if you would rather skip the paid API.

Step 1 — Create the Cube

Create a Cube with the Ubuntu 24.04 image. ZeroClaw is a single binary with no runtime requirements beyond what Ubuntu ships; Ubuntu 24.04 is the image Krova validates against.

Size it at 2 vCPU / 4 GB / 40 GB if you are pointing ZeroClaw at a paid AI provider, or 4 vCPU / 16 GB / 100 GB if you want to run a local 7B model through Ollama on the same Cube.

Step 2 — Connect over SSH

ssh ubuntu@<cube-host> -p <port>

Step 3 — Run the installer

ZeroClaw publishes a single install script. Fetch it, look at it, then run it:

curl -fsSL https://zeroclaw.com/install.sh -o zeroclaw-install.sh
less zeroclaw-install.sh
bash zeroclaw-install.sh

The installer provisions a Rust toolchain when needed, then compiles and drops a zeroclaw binary on your PATH. Confirm:

zeroclaw --version

Step 4 — Pick the model backend

ZeroClaw accepts any OpenAI-compatible provider. The two reasonable choices on a Cube are the same shape as the other self-host guides.

Paid API (the simplest)

When the agent asks, point it at OpenAI, Anthropic, or any other provider. Paste the key and ZeroClaw routes every call through that provider. Billing is on the provider, not Krova.

Local Ollama on the same Cube

For a no-per-message bill, install Ollama on the same Cube and point ZeroClaw at it. Ollama exposes an OpenAI-compatible API on http://localhost:11434:

curl -fsSL https://ollama.com/install.sh | sh

Pull a model — llama3.1:8b is a good first choice on 16 GB of RAM:

ollama pull llama3.1:8b

When ZeroClaw asks for the provider URL, give it http://localhost:11434 and the model name. Everything from there is local — your messages, the model weights, and the agent's memory never leave the Cube.

Step 5 — Connect a chat app

ZeroClaw ships 30+ channel adapters — Telegram, Discord, WhatsApp, Slack, Signal, iMessage, Email, Matrix, Mattermost, IRC, Bluesky, Reddit, Nostr, DingTalk, Lark, Line, QQ, WeChat Work, Notion, and Webhooks. The first time you run zeroclaw, it asks which channel you want to connect first.

Pick one and follow the platform-specific setup: most channels want you to paste a token from the chat platform's developer console into ~/.zeroclaw/config.yaml, then restart the agent. Messages sent to the bot are answered within a few seconds, and the agent's memory persists across sessions.

More channels can be added later from the same menu. The adapter-by-adapter docs live at zeroclaw.com.

Step 6 — Give the local UI a real address (optional)

ZeroClaw exposes a local web UI on a high-numbered port. You reach it on the Cube directly for now, through an SSH tunnel:

ssh -L 8080:localhost:8080 ubuntu@<cube-host> -p <port>

If you would rather reach the UI at a real address, point a domain at the Cube and map it through the Cube's Networking tab. Krova issues and renews the certificate — leave This app serves HTTPS itself unchecked, the same way the Dokploy guide explains.

What it costs

The 2 vCPU / 4 GB / 40 GB Cube described here bills at about $0.0140/hour — roughly $0.34/day, or $10/month if left running. Usage is metered by the minute.

On top of that, either an AI provider bill (paid per message) or the local Ollama path. Ollama is free to run; the only cost is the larger Cube to fit the model weights in RAM. ZeroClaw is fully open source (MIT OR Apache-2.0) with no paid tier.

Cleaning up

Deleting the Cube removes ZeroClaw, every chat-app bridge, and any local model weights along with the disk. If the agent's memory matters, snapshot the Cube first.

Next steps

  • Self-host NanoClaw on a Cube — the same shape, with isolated Docker containers per session.
  • Custom domains — required if you want the local UI reachable at your own address.
  • Cubes — resizing, snapshots, and how billing works when a Cube is stopped.