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

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?