Installation
Prerequisites
| Requirement | Minimum | Notes |
|---|---|---|
| OS | Ubuntu 22.04+ / macOS 13+ | Debian also supported |
| RAM | 2 GB | 4 GB+ recommended |
| Disk | 5 GB free | |
| API access | Anthropic API key or Claude Max subscription |
Quick Install (One-liner)
The installer detects your environment and asks which mode you want:
curl -fsSL https://clawhalla.xyz/install.sh | bashTo skip the mode prompt, pass a flag directly:
# Force bare metal (VPS, hackathons, no Docker required)curl -fsSL https://clawhalla.xyz/install.sh | bash -s -- --bare
# Force Docker (isolated container)curl -fsSL https://clawhalla.xyz/install.sh | bash -s -- --dockerThe installer will:
- Detect your OS
- Ask which install mode you want (Docker or bare metal)
- Ask for your model preference and API key
- Configure OpenClaw automatically — no interactive
openclaw onboardneeded - Copy 15 pre-trained agents to your workspace
- Start the gateway and Mission Control
- Print access URLs
Install Modes
Best for: VPS, cloud servers, hackathons, machines without Docker.
The installer:
- Installs Node 24 via nvm (if not present)
- Installs pnpm + OpenClaw CLI globally
- Writes
~/.openclaw/openclaw.jsonwith your credentials (no interactive wizard) - Copies the workspace template with 15 pre-trained agents
- Installs and starts Mission Control on port 3000
- Starts the gateway on port 18789
Access after install:
Mission Control → http://your-ip:3000Gateway → ws://127.0.0.1:18789 (loopback only)Manage services:
# Restart gatewaynohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 &
# Start Mission Control (dev)cd ~/clawhalla/apps/mission-control && pnpm dev
# View logstail -f /tmp/openclaw-gateway.logtail -f /tmp/mission-control.logBest for: local machines, production servers, isolated environments.
Requires Docker 20.10+ and Docker Compose v2. The installer will offer to install Docker automatically on Ubuntu/Debian if it is not present.
Access after install:
Mission Control → http://localhost:3333Gateway → ws://localhost:18789 (forwarded from container)Manage services:
cd ~/clawhalla
docker compose logs -f # Stream logsdocker compose stop # Stop all servicesdocker compose start # Start all servicesdocker compose exec clawhalla bash # Enter container shellManual Installation
If you prefer full control, follow these steps.
-
Clone the repository
Terminal window git clone https://github.com/deegalabs/clawhalla.gitcd clawhalla -
Generate a gateway token
Terminal window GATEWAY_TOKEN=$(openssl rand -hex 32)echo $GATEWAY_TOKEN # save this -
Configure OpenClaw
Create
~/.openclaw/openclaw.json:{"auth": {"profiles": {"anthropic:manual": { "provider": "anthropic", "mode": "api_key" }}},"gateway": {"port": 18789, "mode": "local", "bind": "loopback","auth": { "mode": "token", "token": "YOUR_GATEWAY_TOKEN" }}}Create
~/.openclaw/agents/main/agent/auth-profiles.json:{"version": 1,"profiles": {"anthropic:manual": {"type": "api_key","provider": "anthropic","key": "sk-ant-..."}},"lastGood": { "anthropic": "anthropic:manual" }} -
Copy the workspace template
Terminal window cp -r workspace-template/. ~/.openclaw/workspace/ -
Set up Mission Control
Terminal window cd apps/mission-controlpnpm installmkdir -p datapnpm drizzle-kit generatepnpm drizzle-kit migratecat > .env.local << EOFGATEWAY_URL=http://127.0.0.1:18789GATEWAY_TOKEN=YOUR_GATEWAY_TOKENDB_PATH=./data/mission-control.dbEOF -
Start the gateway
Terminal window nohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 &sleep 5curl -s http://127.0.0.1:18789/health # should return {"ok":true} -
Start Mission Control
Terminal window pnpm dev --hostname 0.0.0.0 --port 3000Open
http://localhost:3000in your browser.
Troubleshooting
Gateway shows as offline in Mission Control
The most common cause: GATEWAY_TOKEN in .env.local is empty or wrong.
Check apps/mission-control/.env.local and verify the token matches ~/.openclaw/openclaw.json → gateway.auth.token.
Restart Mission Control after editing .env.local.
”openclaw: command not found”
Source your shell profile and try again:
source ~/.bashrc # or ~/.zshrcIf using nvm, make sure Node is active:
nvm use 24Gateway does not start
Check if port 18789 is already in use:
lsof -i :18789Kill the existing process and restart:
kill $(ps aux | grep openclaw-gateway | grep -v grep | awk '{print $2}')nohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 &Mission Control blank page or DB error
The data/ directory is missing or the migration was not run:
cd ~/clawhalla/apps/mission-controlmkdir -p datapnpm drizzle-kit migrateDocker: container fails to start
docker compose logs clawhallaCommon causes: port conflict (18789 or 3000 already in use), missing .env file, Docker daemon not running.
Models show as unavailable
Verify your credentials file:
cat ~/.openclaw/agents/main/agent/auth-profiles.jsonFor API key, the key field must be your Anthropic API key.
For Claude Max, the token field must be your OAuth token.
Check gateway logs for auth errors:
tail -50 /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log