Skip to main content

ZeroClaw – Getting started guide

Complete setup, connect messaging channels and manage your ZeroClaw AI assistant on your VPS.

A
Written by Alexandru Stan
Updated yesterday

ZeroClaw is a lightweight, Rust-based personal AI assistant that runs on your own server. It connects to messaging apps you already use — Telegram, WhatsApp, Discord, Slack and others — and acts as your always-on AI assistant. Your data stays on your server and never passes through a third-party service.

​ ​

What's on your server

  • ZeroClaw binary (pre-installed, single Rust binary)

  • Supported AI providers: Anthropic, OpenAI, OpenRouter and 20+ others

  • Channels: Telegram, WhatsApp, Discord, Slack, Signal, iMessage, Matrix, Email and more

  • Gateway API: REST API and WebSocket at 127.0.0.1:42617

  • Persistent long-term memory across conversations

  • Built-in cron scheduler for automated tasks

​ ​

Complete the setup wizard

When you SSH into your VPS for the first time, the ZeroClaw setup wizard starts automatically:

ssh root@YOUR_IP_ADDRESS

The wizard guides you through choosing your AI provider, entering your API key, connecting your first messaging channel and configuring your workspace. Setup takes around 2-5 minutes.

If you close the SSH session before finishing, reconnect and run:

zeroclaw onboard

The wizard picks up where it left off and skips steps already completed.

​ ​

Connect messaging channels

After initial setup, add more channels at any time:

zeroclaw channel bind-telegram YOUR_BOT_TOKEN zeroclaw channel list zeroclaw channel doctor

For WhatsApp, Discord, Slack and other channels, refer to the ZeroClaw documentation at https://github.com/zeroclaw-labs/zeroclaw/blob/master/docs/reference/api/channels-reference.md

​ ​

Talk to your assistant

Single message:

zeroclaw agent -m "What's the weather in London today?"

Interactive chat mode:

zeroclaw agent

Type your messages and press Enter. Type exit to quit.

​ ​

Run ZeroClaw as a background service

To keep your assistant running 24/7, install it as a systemd service:

zeroclaw service install zeroclaw service start

Check status, stop or restart:

zeroclaw service status zeroclaw service stop zeroclaw service restart

​ ​

The gateway

The gateway is ZeroClaw's control plane. It exposes a REST API, WebSocket chat and a webhook endpoint for messaging channel integrations.

zeroclaw gateway              # Start on default port 42617 zeroclaw gateway --port 8080  # Start on a specific port zeroclaw gateway --port 0     # Start on a random port

When the gateway starts it displays a one-time pairing code. Use this to authenticate your first API client or webhook integration.

Available endpoints:

# Health check curl http://127.0.0.1:42617/health  # Send a message via webhook (after pairing) curl -X POST http://127.0.0.1:42617/webhook \   -H "Content-Type: application/json" \   -d '{"message": "Hello ZeroClaw"}'  # Prometheus metrics curl http://127.0.0.1:42617/metrics

WebSocket chat is at ws://127.0.0.1:42617/ws/chat and the full REST API at http://127.0.0.1:42617/api/* (bearer token required after pairing).

​ ​

Enable the web dashboard

The web dashboard is not active by default. To enable it, add the config line and restart the gateway:

sed -i '/^\[gateway\]/a web_dist_dir = "/root/.zeroclaw/web"' /root/.zeroclaw/config.toml

Verify it was added correctly:

grep -A3 '^\[gateway\]' /root/.zeroclaw/config.toml

Then re-run zeroclaw gateway and open an SSH tunnel from your local machine:

ssh -L 42617:127.0.0.1:42617 root@YOUR_VPS_PUBLIC_IP

Open http://localhost:42617 in your browser to access the dashboard.

Do not bind the gateway to your public IP without a firewall rule. Doing so exposes the dashboard to the internet.

​ ​

Full autonomous runtime

The daemon starts everything at once: gateway, channels, scheduler and the agent runtime. This is the recommended way to run ZeroClaw in production if you are not using the systemd service.

zeroclaw daemon

​ ​

Status and diagnostics

zeroclaw status    # Check if ZeroClaw is running and show active channels zeroclaw doctor    # Full system diagnostics

Run zeroclaw doctor after any update or if something stops working. It checks your configuration, provider connectivity, channel health and system resources.

​ ​

Scheduled tasks

zeroclaw cron add "0 9 * * *" --prompt "Send me a morning briefing" zeroclaw cron list zeroclaw cron remove TASK_ID zeroclaw cron run TASK_ID

​ ​

Memory

zeroclaw memory list zeroclaw memory get KEY zeroclaw memory stats

​ ​

Update ZeroClaw

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

Always run zeroclaw doctor after updating.

​ ​

Configuration

The config file is at ~/.zeroclaw/config.toml. Minimal example:

default_provider = "anthropic" api_key = "sk-ant-..."

Edit with:

nano ~/.zeroclaw/config.toml

​ ​

Full CLI reference

zeroclaw onboard              # Run setup wizard zeroclaw status               # Show runtime status zeroclaw doctor               # System diagnostics  zeroclaw agent                # Interactive chat zeroclaw agent -m "message"   # Single message  zeroclaw gateway              # Start control plane zeroclaw daemon               # Start full autonomous runtime  zeroclaw service install zeroclaw service start zeroclaw service stop zeroclaw service restart zeroclaw service status  zeroclaw channel list zeroclaw channel doctor zeroclaw channel bind-telegram TOKEN  zeroclaw cron list zeroclaw cron add "*/5 * * * *" --prompt "Check system health" zeroclaw cron remove ID zeroclaw cron run ID  zeroclaw memory list zeroclaw memory get KEY zeroclaw memory stats  zeroclaw auth login --provider anthropic zeroclaw auth status zeroclaw auth use --provider openai --profile work

​ ​

Common issues

zeroclaw: command not found

The binary is not in your PATH. Run:

export PATH="/root/.cargo/bin:$PATH"

To make this permanent, add it to /root/.bashrc.

Channel not receiving messages

Run zeroclaw channel doctor to check connectivity. Make sure your bot token is correct and that you've sent /start to your Telegram bot.

Provider API errors

Run zeroclaw doctor and check the provider section. Verify your API key is correct and your account has available credits.

Assistant not responding after reboot

If installed as a service:

zeroclaw service status

If running manually:

zeroclaw daemon
Did this answer your question?