Self-host NanoClaw on a Cube
Run NanoClaw on a Krova Cube — the lightweight open-source personal AI agent (MIT) that runs every active session in an isolated Docker container with 18+ chat-app channels.
NanoClaw is a lightweight, open-source personal AI agent that runs every active session in an isolated Docker container. It is MIT-licensed and ships 18+ chat-app channels — WhatsApp, Telegram, Discord, Slack, Microsoft Teams, Mattermost, iMessage, Signal, Matrix, Google Chat, Webex, Linear, GitHub, WeChat, Delta Chat, Emacs, and email via Resend. Channels are added on demand as skills, so the install carries only what you use. A Cube is a good place to run it: real resources, per-cube isolation, no public IP needed for the agent itself.
The install is one shell script. The part worth reading carefully is Step 4 — NanoClaw needs Docker (it runs every session inside one), and the Cube image you start from matters.
Before you start
NanoClaw runs locally on macOS, Linux, or Windows (WSL2). On a Cube it expects Docker. The agent layer is small; the heavy resource is the LLM it drives. NanoClaw 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 + Docker image. NanoClaw runs every session inside a Docker container, and starting from the Docker image skips the apt-install step. If your Cube image picker does not have a Docker image, plain Ubuntu 24.04 works — NanoClaw's installer pulls Docker in.
Size it at 2 vCPU / 4 GB / 40 GB if you are pointing NanoClaw 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
NanoClaw publishes a single shell script. Clone the repo, look at the script, then run it:
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
less nanoclaw.sh
bash nanoclaw.shThe script installs dependencies (including Docker if it is not yet present) and pairs your first channel. On first run it asks for an LLM provider and key.
Step 4 — Pick the model backend
NanoClaw 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 installer asks, point it at OpenAI, Anthropic, or any other provider. Paste the key and NanoClaw 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 NanoClaw at it. Ollama exposes an OpenAI-compatible API on http://localhost:11434:
curl -fsSL https://ollama.com/install.sh | shPull a model — llama3.1:8b is a good first choice on 16 GB of RAM:
ollama pull llama3.1:8bWhen NanoClaw 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. Each session still runs in its own Docker container, so an agent that goes off the rails cannot touch the rest of the Cube.
Step 5 — Add a chat app
NanoClaw adds channels on demand as skills, so the install carries only what you use. To add a channel after first run, use the corresponding /add-<channel> command — /add-telegram, /add-discord, /add-slack, and so on. Each skill asks a few setup questions (a bot token, a webhook URL) and then activates the channel.
Full list of supported channels and the per-channel setup steps live at nanoclaw.dev.
Step 6 — Decide where credentials live
NanoClaw routes credentials through OneCLI's Agent Vault by default. If you would rather keep every secret on the Cube, the installer accepts a flag to disable that integration — credentials then live in the project file on disk rather than in a remote vault. The same switch is available per-channel after install.
A Cube runs an SSH-protected environment with no public IP, so keeping credentials on the Cube is the safer default for a self- hosted install. OneCLI is the right call when you run the same agent across many machines and want a single source of truth.
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. NanoClaw is fully open source (MIT) with no paid tier.
Cleaning up
Deleting the Cube removes NanoClaw, every chat-app bridge, every session container, and any local model weights along with the disk. If the agent's persistent memory matters, snapshot the Cube first.
Next steps
- Self-host ZeroClaw on a Cube — the same shape, with a single Rust binary instead of a container-per-session.
- Custom domains — required if you want any web UI reachable at your own address.
- Cubes — resizing, snapshots, and how billing works when a Cube is stopped.
