2026-01-06 19:56:22 +00:00
---
2026-01-08 09:59:10 +01:00
summary: "Beginner guide: from zero to first message (wizard, auth, providers, pairing)"
2026-01-06 19:56:22 +00:00
read_when:
- First time setup from zero
2026-01-08 09:59:10 +01:00
- You want the fastest path from install → onboarding → first message
2026-01-06 19:56:22 +00:00
---
# Getting Started
Goal: go from **zero** → **first working chat** (with sane defaults) as quickly as possible.
Recommended path: use the **CLI onboarding wizard** (`clawdbot onboard` ). It sets up:
- model/auth (OAuth recommended)
- gateway settings
- providers (WhatsApp/Telegram/Discord/…)
- pairing defaults (secure DMs)
- workspace bootstrap + skills
- optional background daemon
2026-01-07 02:04:02 +01:00
If you want the deeper reference pages, jump to: [Wizard ](/start/wizard ), [Setup ](/start/setup ), [Pairing ](/start/pairing ), [Security ](/gateway/security ).
2026-01-06 19:56:22 +00:00
2026-01-09 12:44:23 +00:00
Sandboxing note: `agents.defaults.sandbox.mode: "non-main"` uses `session.mainKey` (default `"main"` ),
2026-01-09 03:23:36 +01:00
so group/channel sessions are sandboxed. If you want the main agent to always
run on host, set an explicit per-agent override:
```json
{
"routing": {
"agents": {
"main": {
"workspace": "~/clawd",
"sandbox": { "mode": "off" }
}
}
}
}
```
2026-01-06 19:56:22 +00:00
## 0) Prereqs
- Node `>=22`
2026-01-08 09:59:10 +01:00
- `pnpm` (optional; recommended if you build from source)
2026-01-06 19:56:22 +00:00
macOS: if you plan to build the apps, install Xcode / CLT. For the CLI + gateway only, Node is enough.
2026-01-07 02:04:02 +01:00
Windows: use **WSL2** (Ubuntu recommended). WSL2 is strongly recommended; native Windows is untested and more problematic. Install WSL2 first, then run the Linux steps inside WSL. See [Windows (WSL2) ](/platforms/windows ).
2026-01-06 19:56:22 +00:00
2026-01-08 09:59:10 +01:00
## 1) Install the CLI (recommended)
2026-01-06 19:56:22 +00:00
```bash
2026-01-08 10:07:13 +01:00
npm install -g clawdbot@latest
# or: pnpm add -g clawdbot@latest
2026-01-06 19:56:22 +00:00
```
2026-01-08 09:59:10 +01:00
## 2) Run the onboarding wizard (and install the daemon)
2026-01-06 19:56:22 +00:00
```bash
2026-01-08 09:59:10 +01:00
clawdbot onboard --install-daemon
2026-01-06 19:56:22 +00:00
```
What you’ ll choose:
- **Local vs Remote** gateway
- **Auth**: Anthropic OAuth or OpenAI OAuth (recommended), API key (optional), or skip for now
2026-01-08 00:13:10 +00:00
- **Providers**: WhatsApp QR login, Telegram/Discord bot tokens, etc.
2026-01-08 09:59:10 +01:00
- **Daemon**: background install (launchd/systemd; WSL2 uses systemd)
2026-01-06 23:27:58 +01:00
- **Runtime**: Node (recommended; required for WhatsApp) or Bun (faster, but incompatible with WhatsApp)
2026-01-06 19:56:22 +00:00
2026-01-07 02:04:02 +01:00
Wizard doc: [Wizard ](/start/wizard )
2026-01-06 19:56:22 +00:00
### Auth: where it lives (important)
2026-01-06 21:29:41 +00:00
- OAuth credentials (legacy import): `~/.clawdbot/credentials/oauth.json`
- Auth profiles (OAuth + API keys): `~/.clawdbot/agents/<agentId>/agent/auth-profiles.json`
2026-01-06 19:56:22 +00:00
Headless/server tip: do OAuth on a normal machine first, then copy `oauth.json` to the gateway host.
2026-01-08 09:59:10 +01:00
## 3) Start the Gateway
If you installed the daemon during onboarding, the Gateway should already be running:
```bash
clawdbot daemon status
```
2026-01-06 19:56:22 +00:00
2026-01-08 09:59:10 +01:00
Manual run (foreground):
2026-01-06 19:56:22 +00:00
```bash
2026-01-06 23:27:58 +01:00
clawdbot gateway --port 18789 --verbose
2026-01-06 19:56:22 +00:00
```
Dashboard (local loopback): `http://127.0.0.1:18789/`
2026-01-06 23:27:58 +01:00
⚠️ **WhatsApp + Bun warning:** Baileys (WhatsApp Web library) uses a WebSocket
path that is currently incompatible with Bun and can cause memory corruption on
reconnect. If you use WhatsApp, run the Gateway with **Node** until this is
2026-01-06 23:28:42 +01:00
resolved. Baileys: https://github.com/WhiskeySockets/Baileys · Bun issue:
https://github.com/oven-sh/bun/issues/5951
2026-01-08 09:59:10 +01:00
## 4) Pair + connect your first chat surface
2026-01-06 19:56:22 +00:00
### WhatsApp (QR login)
```bash
2026-01-08 09:59:10 +01:00
clawdbot providers login
2026-01-06 19:56:22 +00:00
```
Scan via WhatsApp → Settings → Linked Devices.
2026-01-07 02:04:02 +01:00
WhatsApp doc: [WhatsApp ](/providers/whatsapp )
2026-01-06 19:56:22 +00:00
### Telegram / Discord / others
The wizard can write tokens/config for you. If you prefer manual config, start with:
2026-01-07 02:04:02 +01:00
- Telegram: [Telegram ](/providers/telegram )
- Discord: [Discord ](/providers/discord )
2026-01-06 19:56:22 +00:00
2026-01-08 00:13:10 +00:00
**Telegram DM tip:** your first DM returns a pairing code. Approve it (see next step) or the bot won’ t respond.
2026-01-08 09:59:10 +01:00
## 5) DM safety (pairing approvals)
2026-01-06 19:56:22 +00:00
Default posture: unknown DMs get a short code and messages are not processed until approved.
2026-01-08 00:13:10 +00:00
If your first DM gets no reply, approve the pairing:
2026-01-06 19:56:22 +00:00
```bash
2026-01-08 09:59:10 +01:00
clawdbot pairing list --provider whatsapp
clawdbot pairing approve --provider whatsapp < code >
2026-01-06 19:56:22 +00:00
```
2026-01-07 02:04:02 +01:00
Pairing doc: [Pairing ](/start/pairing )
2026-01-06 19:56:22 +00:00
2026-01-08 09:59:10 +01:00
## From source (development)
If you’ re hacking on Clawdbot itself, run from source:
```bash
git clone https://github.com/clawdbot/clawdbot.git
cd clawdbot
pnpm install
2026-01-09 07:02:42 +00:00
pnpm ui:build # auto-installs UI deps on first run
2026-01-08 09:59:10 +01:00
pnpm build
pnpm clawdbot onboard --install-daemon
```
Gateway (from this repo):
```bash
node dist/entry.js gateway --port 18789 --verbose
```
2026-01-06 19:56:22 +00:00
## 7) Verify end-to-end
In a new terminal:
```bash
2026-01-08 09:59:10 +01:00
clawdbot health
2026-01-09 08:59:54 +01:00
clawdbot message send --to +15555550123 --message "Hello from Clawdbot"
2026-01-06 19:56:22 +00:00
```
If `health` shows “no auth configured”, go back to the wizard and set OAuth/key auth — the agent won’ t be able to respond without it.
2026-01-08 09:59:10 +01:00
Local probe tip: `clawdbot status --deep` runs provider checks without needing a gateway connection.
Gateway snapshot: `clawdbot providers status` shows what the gateway reports (use `status --deep` for local-only probes).
2026-01-08 05:20:11 +01:00
2026-01-06 19:56:22 +00:00
## Next steps (optional, but great)
2026-01-07 02:04:02 +01:00
- macOS menu bar app + voice wake: [macOS app ](/platforms/macos )
2026-01-06 23:32:12 +00:00
- iOS/Android nodes (Canvas/camera/voice): [Nodes ](/nodes )
2026-01-07 02:04:02 +01:00
- Remote access (SSH tunnel / Tailscale Serve): [Remote access ](/gateway/remote ) and [Tailscale ](/gateway/tailscale )