campaign Announcements
We are not affiliated with openagen/zeroclaw or zeroclaw.org. Use only the official repository and verified ZeroClaw social accounts as the source of truth.
No official fundraising/investment program has launched. Ignore impersonation attempts and unofficial claims.
Anthropic OAuth terms changed (2026-02-19). Avoid Claude Code OAuth integrations temporarily until policy risk is clarified.
info Introduction
ZeroClaw is a fast, small, fully autonomous AI assistant infrastructure built in Rust. A single static binary runs on $10 hardware with <5MB RAM — 99% less memory than Node-based alternatives. Every subsystem is a trait: swap providers, channels, tools, memory backends, and tunnels with a config change.
download Installation
ZeroClaw ships as a single Rust binary. Install via Homebrew, bootstrap script, or manual source build.
Homebrew (macOS / Linuxbrew)
# macOS / Linuxbrew
brew install zeroclaw One-Click Bootstrap (Recommended)
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
./bootstrap.sh
# With system deps + Rust install on fresh machines
./bootstrap.sh --install-system-deps --install-rust
# With onboarding in the same flow
./bootstrap.sh --onboard --api-key "sk-..." --provider openrouter
# Remote one-liner
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/bootstrap.sh | bash Manual Build & Install
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
cargo build --release --locked
cargo install --path . --force --locked
# Ensure ~/.cargo/bin is in PATH
export PATH="$HOME/.cargo/bin:$PATH" Dev fallback: prefix commands with cargo run --release -- to skip global install.
rocket_launch Quick Start
Run onboarding once to set up your config, then start chatting.
# Interactive onboarding wizard
zeroclaw onboard --interactive
# Or quick setup (no prompts)
zeroclaw onboard --api-key sk-... --provider openrouter --model "openrouter/auto"
# Quickly repair channels/allowlists only
zeroclaw onboard --channels-only
# Chat with the agent
zeroclaw agent -m "Hello, ZeroClaw!"
# Interactive mode
zeroclaw agent
# Start gateway + daemon
zeroclaw gateway
zeroclaw daemon
# Check status
zeroclaw status
zeroclaw doctor
zeroclaw channel doctor
# Bind Telegram identity into allowlist
zeroclaw channel bind-telegram 123456789
# Service + migration helpers
zeroclaw service install
zeroclaw config schema
zeroclaw migrate openclaw --dry-run
zeroclaw migrate openclaw Config location: ~/.zeroclaw/config.toml — created automatically by zeroclaw onboard.
terminal Commands
ZeroClaw is a single binary with subcommands for every workflow.
| Command | Description |
|---|---|
zeroclaw onboard | Interactive or quick setup — creates config, sets API key |
zeroclaw onboard --channels-only | Reconfigure channel credentials/allowlists only |
zeroclaw agent | Chat mode (interactive REPL or single -m message) |
zeroclaw gateway | Start webhook server (default 127.0.0.1:3000) |
zeroclaw daemon | Start full autonomous long-running runtime |
zeroclaw status | Show full system status |
zeroclaw auth status | Inspect active auth profile and token state |
zeroclaw doctor | Diagnose daemon/scheduler/channel freshness |
zeroclaw channel list | List configured channels and status |
zeroclaw channel doctor | Check channel health and readiness |
zeroclaw channel bind-telegram <id> | Authorize a Telegram user ID into allowlist |
zeroclaw service install | Install user-level background service |
zeroclaw service start/stop/status | Manage background service lifecycle |
zeroclaw cron | Manage scheduled tasks (list/add/remove/pause/resume) |
zeroclaw providers | List supported providers and aliases |
zeroclaw models | Refresh provider model catalogs |
zeroclaw auth login | Login with subscription auth profiles |
zeroclaw skills | List/install/remove skills |
zeroclaw config schema | Print full config contract JSON Schema |
zeroclaw migrate openclaw | Import data from OpenClaw runtime |
zeroclaw integrations info <name> | Get integration setup guidance |
zeroclaw hardware | USB discover/introspect/info commands |
zeroclaw peripheral | Manage and flash hardware peripherals |
smart_toy Agent Mode
The zeroclaw agent command runs an AI assistant that can use tools, recall memory, and execute tasks.
# Single message
zeroclaw agent -m "List files in the current directory"
# Interactive REPL
zeroclaw agent
# Use a specific provider/model
zeroclaw agent --provider anthropic --model claude-sonnet-4-6 -m "Hello"
# Use a subscription auth profile
zeroclaw agent --provider openai-codex --auth-profile openai-codex:work -m "Hello" dns Gateway & Daemon
The gateway exposes a webhook server for channel integrations. The daemon runs the full autonomous runtime including heartbeat, cron, and channels.
# Start the gateway (webhook server, default 127.0.0.1:3000)
zeroclaw gateway
zeroclaw gateway --port 0 # random port (security hardened)
# Start full autonomous runtime
zeroclaw daemon
# Manage as a background service
zeroclaw service install
zeroclaw service status forum Channels
Channels let ZeroClaw receive and reply to messages from Telegram, Discord, Slack, Mattermost, iMessage, Matrix, Signal, WhatsApp, Email, IRC, Lark, DingTalk, and more. All channels use a deny-by-default allowlist.
# Telegram
[channels_config.telegram]
bot_token = "123456:ABC..."
allowed_users = ["your_username"] # or ["*"] for all
# Discord
[channels_config.discord]
bot_token = "..."
allowed_users = ["your-discord-id"]
# Slack
[channels_config.slack]
bot_token = "xoxb-..."
allowed_users = ["UMEMBERID"]
# Start channels via daemon
zeroclaw daemon Tip: Run zeroclaw onboard --channels-only to reconfigure channels without touching other settings.
build Tools
Tools are capabilities the agent can invoke during a conversation. All built-in tools are sandboxed and workspace-scoped by default.
# Built-in tools:
# shell, file_read, file_write, memory, cron,
# git, http_request, browser (opt-in), composio (opt-in),
# delegate, hardware, screenshot, pushover
# Enable browser tools
[browser]
enabled = true
allowed_domains = ["docs.rs", "github.com"]
# Enable Composio (1000+ OAuth integrations)
[composio]
enabled = true
api_key = "cmp_..." database Memory System
Full-stack search engine with zero external dependencies — no Pinecone, no Elasticsearch, no LangChain.
[memory]
backend = "sqlite" # sqlite | lucid | postgres | markdown | none
auto_save = true
embedding_provider = "none" # none | openai | custom:https://...
vector_weight = 0.7
keyword_weight = 0.3
# PostgreSQL remote backend
# [storage.provider.config]
# provider = "postgres"
# db_url = "postgres://user:pass@host:5432/zeroclaw" settings Config File
Config lives at ~/.zeroclaw/config.toml — created by zeroclaw onboard.
api_key = "sk-..."
default_provider = "openrouter"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7
[memory]
backend = "sqlite"
auto_save = true
[gateway]
port = 3000
host = "127.0.0.1"
require_pairing = true
allow_public_bind = false
[autonomy]
level = "supervised"
workspace_only = true
allowed_commands = ["git", "npm", "cargo", "ls", "cat", "grep"]
[runtime]
kind = "native"
[tunnel]
provider = "none"
[secrets]
encrypt = true model_training AI Providers
ZeroClaw supports 28+ built-in providers plus any OpenAI-compatible or Anthropic-compatible custom endpoint.
| Provider | Description |
|---|---|
openrouter | Multi-model router (recommended) |
anthropic | Claude models |
openai | GPT models |
ollama | Local or remote Ollama |
gemini | Google Gemini |
custom:https://... | Any OpenAI-compatible endpoint |
Run zeroclaw providers to list all available providers and aliases.
key Environment Variables
Provider API keys and optional overrides.
# Provider API keys
OPENROUTER_API_KEY=sk-or-v1-...
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
# Lucid memory backend
ZEROCLAW_LUCID_CMD=/usr/local/bin/lucid
ZEROCLAW_LUCID_BUDGET=200
# Ollama remote endpoint
OLLAMA_API_KEY=your-key | Variable | Description |
|---|---|
OPENROUTER_API_KEY | OpenRouter API key |
ANTHROPIC_API_KEY | Anthropic API key |
OPENAI_API_KEY | OpenAI API key |
OLLAMA_API_KEY | Ollama remote endpoint key |
ZEROCLAW_LUCID_CMD | Path to lucid binary |
ZEROCLAW_LUCID_BUDGET | Lucid memory budget (default 200) |
shield Security
ZeroClaw enforces security at every layer and passes all items from the community security checklist.
[gateway]
require_pairing = true
allow_public_bind = false # refuse 0.0.0.0 without tunnel
[autonomy]
workspace_only = true # scoped to workspace by default account_tree Architecture
Every subsystem is a Rust trait — swap implementations with a config change, zero code changes.
| Subsystem | Trait | Ships with |
|---|---|---|
| AI Models | Provider | 28 built-ins + custom endpoints |
| Channels | Channel | CLI, Telegram, Discord, Slack, WhatsApp, iMessage, Matrix, Signal, Email, IRC, Lark, DingTalk, QQ, Webhook |
| Memory System | Memory | SQLite hybrid, PostgreSQL, Lucid, Markdown, none |
| Tools | Tool | shell, file, memory, cron, git, browser, http, composio, delegate, hardware |
| Observability | Observer | Noop, Log, Multi |
| Runtime | RuntimeAdapter | Native, Docker (sandboxed) |
| Security | SecurityPolicy | Pairing, sandbox, allowlists, rate limits, filesystem scoping |
| Identity | IdentityConfig | OpenClaw (markdown), AIEOS v1.1 (JSON) |
| Tunnel | Tunnel | None, Cloudflare, Tailscale, ngrok, Custom |
| Heartbeat | Engine | HEARTBEAT.md periodic tasks |
| List/install/remove skills | Loader | TOML manifests + SKILL.md instructions |
| Integrations | Registry | 70+ integrations across 9 categories |
runtime.kind = "native" and "docker" are supported today. WASM/edge runtimes are planned.
api Gateway API
Minimal HTTP API for channel integrations and health checks.
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Health check (always public, no secrets leaked) |
POST | /pair | Exchange OTP (X-Pairing-Code header) for bearer token |
POST | /webhook | Send message to agent (Authorization: Bearer) |
GET/POST | WhatsApp webhook verification + incoming messages |
# Health check (no auth required)
curl http://127.0.0.1:3000/health
# Exchange pairing code for bearer token
curl -X POST http://127.0.0.1:3000/pair \
-H "X-Pairing-Code: 847291"
# Send a message (requires bearer token)
curl -X POST http://127.0.0.1:3000/webhook \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"message": "Hello, ZeroClaw!"}' lock Auth & Pairing
Subscription-native auth profiles (multi-account, encrypted at rest) for OpenAI Codex and Anthropic.
# OpenAI Codex (device code — recommended for servers)
zeroclaw auth login --provider openai-codex --device-code
# Browser/callback flow
zeroclaw auth login --provider openai-codex --profile default
# Anthropic setup token
zeroclaw auth paste-token --provider anthropic --profile default
# Check / refresh / switch profile
zeroclaw auth status
zeroclaw auth refresh --provider openai-codex --profile default
zeroclaw auth use --provider openai-codex --profile work code Development
Standard Rust workflow. A pre-push git hook runs fmt + clippy + test automatically.
# Dev build
cargo build
# Release build (works on all devices including Raspberry Pi)
cargo build --release
# Run tests
cargo test
# Lint
cargo clippy --locked --all-targets -- -D clippy::correctness
# Format
cargo fmt
# Enable pre-push hook (fmt + clippy + test)
git config core.hooksPath .githooks menu_book Docs Hub
For task-oriented documentation, start from the docs hub in the official repository.
| Document | Path |
|---|---|
| Documentation hub | docs/README.md |
| Unified docs TOC | docs/SUMMARY.md |
| Commands reference | docs/commands-reference.md |
| Config reference | docs/config-reference.md |
| Providers reference | docs/providers-reference.md |
| Channels reference | docs/channels-reference.md |
| Operations runbook | docs/operations-runbook.md |
| Troubleshooting | docs/troubleshooting.md |
Ready to run the stack?
brew install zeroclaw && zeroclaw onboard --interactive