This page defines the fastest supported path to install and initialize ZeroClaw.
Last verified: February 20, 2026.
brew install zeroclawgit clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
./bootstrap.shWhat it does by default:
cargo build --release --lockedcargo install --path . --force --locked
Source builds typically require at least:
- 2 GB RAM + swap
- 6 GB free disk
When resources are constrained, bootstrap now attempts a pre-built binary first.
./bootstrap.sh --prefer-prebuiltTo require binary-only installation and fail if no compatible release asset exists:
./bootstrap.sh --prebuilt-onlyTo bypass pre-built flow and force source compilation:
./bootstrap.sh --force-source-buildDefault behavior is app-only (build/install ZeroClaw) and expects existing Rust toolchain.
For fresh machines, enable environment bootstrap explicitly:
./bootstrap.sh --install-system-deps --install-rustNotes:
--install-system-depsinstalls compiler/build prerequisites (may requiresudo).--install-rustinstalls Rust viarustupwhen missing.--prefer-prebuilttries release binary download first, then falls back to source build.--prebuilt-onlydisables source fallback.--force-source-builddisables pre-built flow entirely.
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/bootstrap.sh | bashFor high-security environments, prefer Option A so you can review the script before execution.
Legacy compatibility:
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bashThis legacy endpoint prefers forwarding to scripts/bootstrap.sh and falls back to legacy source install if unavailable in that revision.
If you run Option B outside a repository checkout, the bootstrap script automatically clones a temporary workspace, builds, installs, and then cleans it up.
./bootstrap.sh --dockerThis builds a local ZeroClaw image and launches onboarding inside a container while
persisting config/workspace to ./.zeroclaw-docker.
Container CLI defaults to docker. If Docker CLI is unavailable and podman exists,
bootstrap auto-falls back to podman. You can also set ZEROCLAW_CONTAINER_CLI
explicitly (for example: ZEROCLAW_CONTAINER_CLI=podman ./bootstrap.sh --docker).
For Podman, bootstrap runs with --userns keep-id and :Z volume labels so
workspace/config mounts remain writable inside the container.
If you add --skip-build, bootstrap skips local image build. It first tries the local
Docker tag (ZEROCLAW_DOCKER_IMAGE, default: zeroclaw-bootstrap:local); if missing,
it pulls ghcr.io/zeroclaw-labs/zeroclaw:latest and tags it locally before running.
./bootstrap.sh --onboard --api-key "sk-..." --provider openrouterOr with environment variables:
ZEROCLAW_API_KEY="sk-..." ZEROCLAW_PROVIDER="openrouter" ./bootstrap.sh --onboard./bootstrap.sh --interactive-onboard--install-system-deps--install-rust--skip-build(in--dockermode: use local image if present, otherwise pullghcr.io/zeroclaw-labs/zeroclaw:latest)--skip-install--provider <id>
See all options:
./bootstrap.sh --help