Skip to content

Install ZeroClaw v0.7.4: The Rust OpenClaw Runtime

Deploy ZeroClaw v0.7.4, the Rust OpenClaw alternative, in under 10 minutes. Real commands, real gotchas, and the WhatsApp build trap nobody mentions.

8 min readIntermediate

Here’s something most ZeroClaw tutorials skip: there are two active release lines on GitHub right now. The v0.7.x workspace-split line just shipped v0.7.4 – the largest structural overhaul in the project’s history, decomposing the monolith into a proper Cargo workspace with 12+ crates – while older blog posts still link to v0.1.x tags. Pick the wrong one and your config schema won’t match any tutorial you read.

This guide covers installing the current stable ZeroClaw Rust runtime, configuring it without wiping your data, and avoiding the feature-flag trap that catches people the moment they try to plug in WhatsApp. If you came here searching for “OpenClaw Rust” – that’s the broader ecosystem term. ZeroClaw is the runtime people actually deploy.

What you’re actually installing

A single Rust binary. That’s it. Per the official README (as of v0.7.4), it talks to roughly 20 LLM providers – Anthropic, OpenAI, Ollama, and others – and reaches out through 30+ channels: Discord, Telegram, Matrix, email, voice, webhooks, CLI. Everything runs on your machine, with your keys, in your workspace. The minimal build with no default features comes in at 6.6 MB.

Dual-licensed MIT OR Apache 2.0. Anything else claiming the ZeroClaw name is unauthorized – the project is explicit about that.

System requirements (and the honesty disclaimer)

The prebuilt binary is lightweight by design. For a source build – which you’ll need if you want certain channels like WhatsApp Web – budget 15-30 minutes of compile time and 2-4 GB of RAM during compilation, according to the February 2026 migration assessment. Disk and RAM figures for the prebuilt vary by platform; check the release notes for your target.

Resource Prebuilt binary Source build
RAM (compile) N/A 2-4 GB
Compile time seconds ~15-30 min on a small VPS
OS Linux / macOS / Windows Same, plus Rust stable matching MSRV

Pre-1.0 software ships fast – sometimes uncomfortably fast. The same February 2026 audit found 261 .unwrap() calls across 80 files and only 3 integration tests, with releases landing every 1-2 days. The v0.7.x workspace split improves the structural picture, but run it behind a process supervisor (systemd, a Docker restart policy) and don’t treat the memory.db file as durable storage yet.

Is a project that ships daily patches inherently riskier than one that ships quarterly? Not always – fast iteration often means bugs get fixed before you even hit them. But it does mean you should pin to a specific release tag rather than always pulling master.

Install: the one-liner and what it actually does

The official install path, per the README:

curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/master/install.sh | bash

The installer asks whether you want a prebuilt binary (fast, seconds) or a source build (slower, customizable). Both paths end the same way – zeroclaw onboard kicks off automatically unless you stop it.

Turns out the flag list is more useful than the interactive prompts once you know what you want. From the README: --prebuilt forces the prebuilt path; --source always builds from source; --minimal gives you the kernel-only binary (~6.6 MB); --source --features agent-runtime,channel-discord compiles a custom feature set; --skip-onboard installs without running setup; --list-features prints what’s available.

For most setups: ./install.sh --prebuilt --skip-onboard. You get the binary fast, and you run onboard on your own terms – not while the installer is holding your terminal.

macOS note: If Homebrew is installed, the Homebrew tap is usually less fragile than piping curl into bash. The trade-off is that Homebrew typically lags the GitHub release tag by a day or two on fast-moving versions like v0.7.x.

The feature-flag trap nobody warns you about

This is the section that should exist in every tutorial and doesn’t.

The default Cargo.toml features array is empty. CI release builds do not compile with --features whatsapp-web – GitHub issue #1301 is open requesting that this change for Docker and release builds (confirmed in the migration assessment gist). What that means: you install the prebuilt binary, configure WhatsApp Web in config.toml, and get a runtime warning like WARN zeroclaw::channels: WhatsApp Web backend requires 'whatsapp-web' feature. The channel silently does nothing.

The fix is a source build with the right flags:

# Install Rust if you don't have it
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Build with WhatsApp Web support
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
cargo build --release --features whatsapp-web

# Or use the installer directly
./install.sh --source --features agent-runtime,channel-whatsapp-web

Budget 15-30 minutes and 2-4 GB of RAM for that compile step. If you don’t have the headroom right now, check the release notes for whether a pre-compiled WhatsApp-enabled binary has been added – the issue is open and the situation may have changed.

First-time configuration

After install, one config file: ~/.zeroclaw/config.toml. Run the wizard:

# Interactive - picks a provider, wires channels
zeroclaw onboard

# Non-interactive - if you already have an API key
zeroclaw onboard --api-key sk-... --provider openrouter

# Channels-only - useful if you're adding Discord or Telegram after the fact
zeroclaw onboard --channels-only

Back up ~/.zeroclaw/config.toml before running onboard a second time. Reruns protect the existing config only if you explicitly confirm or pass --force – per the octopusbuilds deployment guide, many people rerun setup casually and accidentally wipe a working configuration. It’s a flat TOML file; keep it in git.

Verify it actually works

The recommended sequence: install → onboard → status → doctor → gateway → daemon → service. Don’t skip steps.

  1. Check version: zeroclaw --version
  2. Check config health: zeroclaw doctor – this checks your configuration file, provider connectivity, channel health, and system resources, reporting problems in plain language. About half the time it tells you exactly what’s wrong before you even know something is broken.
  3. Send a test message: zeroclaw agent -m "Hello, ZeroClaw!"
  4. Start the gateway: zeroclaw gateway and open http://127.0.0.1:42617/metrics – you should see Prometheus-format output.
  5. If everything responds, install as a background service: zeroclaw service install && zeroclaw service start

Common errors and what they actually mean

“command not found: zeroclaw” right after install. The binary isn’t in your shell’s PATH. Add ~/.cargo/bin (source build) or ~/.local/bin (prebuilt) and re-source your shell rc file. Per the LumaDock troubleshooting guide, this is the single most common post-install report.

Discord “Invalid Session” reconnect loop. Enable the Message Content Intent in the Discord Developer Portal under your application’s Bot settings. Without it, ZeroClaw’s Discord channel connects, fails to read messages, disconnects, reconnects, and repeats – forever. It’s a Discord-side toggle, not a ZeroClaw bug.

Streaming failures from the provider. If you see “provider streaming failed, falling back to non-streaming chat,” ZeroClaw retries the same request in non-streaming mode – usually harmless. If it happens on every request, run zeroclaw auth status to check token expiry.

Telegram bot is silent but CLI agent works. The agent loop is fine; the channel binding isn’t. Confirm you sent /start to your bot, check the docs for channel-specific diagnostics, and verify the service is actually running – not just a foreground zeroclaw agent session.

Upgrade and uninstall

To move between v0.7.x patches: re-run install.sh --prebuilt --skip-onboard, then run zeroclaw doctor to catch any config issues the new version surfaces.

Hard reset: stop the service with zeroclaw service stop, then delete or rename ~/.zeroclaw. Rerunning zeroclaw onboard starts fresh. Back up config.toml and memory.db first – this deletes conversation memory and all channel bindings.

zeroclaw service stop
zeroclaw service uninstall
rm -rf ~/.zeroclaw
rm $(which zeroclaw)

Migrating from Node.js OpenClaw? The zeroclaw migrate openclaw command imports your existing workspace files (SOUL.md, AGENTS.md, and similar), per the migration assessment gist.

FAQ

Which version should I install – v0.1.x or v0.7.x?

v0.7.4. The v0.1.x line is a maintenance branch with an older config schema – most current docs won’t match it.

Can I run ZeroClaw in Docker?

The bootstrap script supports a --docker flag, but community reports (as of early 2026) suggest the official Docker documentation has accuracy issues. The more reliable pattern for now: run the prebuilt binary inside a minimal Debian container, mount ~/.zeroclaw as a named volume, and skip zeroclaw service install inside the container – use the container’s own restart policy instead. Read install.sh source before assuming the --docker path does what you expect.

Is it production-ready?

Honestly? Not in the way Postgres is production-ready. The architecture is sound – the v0.7.x workspace split is a serious engineering investment – but the February 2026 audit found 261 .unwrap() calls and only 3 integration tests across a codebase shipping new releases every 1-2 days. Pin to a specific tag. Run it behind a process supervisor. Don’t trust the memory layer with anything you can’t reconstruct. For personal automation and homelab agents, it’s already excellent. For customer-facing infrastructure, wait for v1.0.

Next step: run ./install.sh --prebuilt --skip-onboard, then come back and run zeroclaw onboard --channels-only once you’ve decided which single channel you want to test first. Trying to wire all 30+ at once is how people end up with a broken setup and no idea which config line caused it.