🦞 OpenClaw Setup — From Zero to AI Assistant

Complete decision tree for first-time setup. Every layer, every choice.
Decision Point
Action / Install Step
Choice / Option
Configuration
Use Case / End State
Layer 1: Hardware — What Are You Running On?
%%{init: {'theme': 'dark', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TD
    START([🦞 I want to set up OpenClaw]) --> HW{What hardware do you have?}
    
    HW -->|Desktop/Laptop| HW_DESK{Operating System?}
    HW -->|Server/VPS| HW_SERVER[Linux VPS
DigitalOcean, Hetzner,
AWS, etc.] HW -->|Single Board| HW_SBC{Which SBC?} HW -->|Nothing yet| HW_BUY{Budget?} HW_DESK -->|macOS| MAC[Mac — Apple Silicon
or Intel] HW_DESK -->|Linux| LINUX[Linux Desktop
Ubuntu, Debian, Fedora] HW_DESK -->|Windows| WIN[Windows 11
via WSL2] HW_SBC -->|Raspberry Pi 4/5| PI[Raspberry Pi
ARM64, 4GB+ RAM] HW_SBC -->|Other ARM| ARM[Other ARM SBC
Orange Pi, etc.] HW_BUY -->|Under $100| BUY_PI[Get a Raspberry Pi 5
4GB = $60, 8GB = $80] HW_BUY -->|$100-500| BUY_MINI[Used Mac Mini M1/M2
or Linux mini PC] HW_BUY -->|$500+| BUY_NEW[Mac Mini M4 $499
or MacBook Air $1099] MAC --> NODE_REQ[✅ Requirements Met:
Node.js 22+] LINUX --> NODE_REQ WIN --> WSL[Install WSL2 first
wsl --install] --> NODE_REQ PI --> NODE_REQ ARM --> NODE_REQ HW_SERVER --> NODE_REQ BUY_PI --> PI BUY_MINI --> MAC BUY_NEW --> MAC NODE_REQ --> INSTALL[npm i -g openclaw
openclaw onboard] style START fill:#f0883e,stroke:#f0883e,color:#000 style HW fill:#f0883e,stroke:#f0883e,color:#000 style HW_DESK fill:#f0883e,stroke:#f0883e,color:#000 style HW_BUY fill:#f0883e,stroke:#f0883e,color:#000 style HW_SBC fill:#f0883e,stroke:#f0883e,color:#000 style INSTALL fill:#3fb950,stroke:#3fb950,color:#000 style NODE_REQ fill:#3fb950,stroke:#3fb950,color:#000 style WSL fill:#3fb950,stroke:#3fb950,color:#000 style MAC fill:#58a6ff,stroke:#58a6ff,color:#000 style LINUX fill:#58a6ff,stroke:#58a6ff,color:#000 style WIN fill:#58a6ff,stroke:#58a6ff,color:#000 style PI fill:#58a6ff,stroke:#58a6ff,color:#000 style ARM fill:#58a6ff,stroke:#58a6ff,color:#000 style HW_SERVER fill:#58a6ff,stroke:#58a6ff,color:#000 style BUY_PI fill:#58a6ff,stroke:#58a6ff,color:#000 style BUY_MINI fill:#58a6ff,stroke:#58a6ff,color:#000 style BUY_NEW fill:#58a6ff,stroke:#58a6ff,color:#000
Layer 2: LLM Provider — Where Does the Brain Come From?
%%{init: {'theme': 'dark', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TD
    INSTALL([openclaw onboard]) --> LLM{LLM Provider?}
    
    LLM -->|Cloud API — Best Quality| CLOUD{Which provider?}
    LLM -->|Local LLM — Free & Private| LOCAL{Local setup}
    LLM -->|Free Tier — $0 Cost| FREE{Free options}
    LLM -->|Proxy/Gateway| PROXY{Proxy services}
    
    CLOUD -->|Recommended| ANTH[Anthropic
Claude Opus / Sonnet
Best for agents] CLOUD --> OAI[OpenAI
GPT-5.2 / Codex
Great for coding] CLOUD --> GOOG[Google
Gemini 2.5 Flash
Fast & cheap] CLOUD --> XAI[xAI / Grok
Good for search] LOCAL --> OLLAMA[Ollama
Qwen3, Llama 3.3,
DeepSeek R1] LOCAL --> VLLM[vLLM
Higher performance
needs GPU] FREE --> OR_FREE[OpenRouter Free
Llama 3.3 70B, DeepSeek R1
50 req/day] FREE --> GAIS[Google AI Studio
Gemini Flash free
20 req/day] FREE --> GROQ[Groq / Cerebras
Ultra-fast inference
Free tiers] PROXY --> OR[OpenRouter
100+ models, one API key] PROXY --> VERCEL[Vercel AI Gateway] PROXY --> CF[Cloudflare AI Gateway] PROXY --> VEN[Venice AI
Privacy-first] ANTH --> CONFIG_MODEL[Set in config:
agents.defaults.model.primary] OAI --> CONFIG_MODEL GOOG --> CONFIG_MODEL XAI --> CONFIG_MODEL OLLAMA --> CONFIG_MODEL VLLM --> CONFIG_MODEL OR_FREE --> CONFIG_MODEL GAIS --> CONFIG_MODEL GROQ --> CONFIG_MODEL OR --> CONFIG_MODEL VERCEL --> CONFIG_MODEL CF --> CONFIG_MODEL VEN --> CONFIG_MODEL CONFIG_MODEL --> COST{Monthly budget?} COST -->|$0| COST_FREE[Local LLM or free tiers
Limited quality/speed] COST -->|$5-20| COST_LOW[Sonnet for daily use
Haiku for cron jobs] COST -->|$20-50| COST_MID[Opus for chat
Sonnet for automation] COST -->|$50+| COST_HIGH[Opus everywhere
Multiple agents
Heavy cron] style INSTALL fill:#3fb950,stroke:#3fb950,color:#000 style LLM fill:#f0883e,stroke:#f0883e,color:#000 style CLOUD fill:#f0883e,stroke:#f0883e,color:#000 style LOCAL fill:#f0883e,stroke:#f0883e,color:#000 style FREE fill:#f0883e,stroke:#f0883e,color:#000 style PROXY fill:#f0883e,stroke:#f0883e,color:#000 style COST fill:#f0883e,stroke:#f0883e,color:#000 style ANTH fill:#58a6ff,stroke:#58a6ff,color:#000 style OAI fill:#58a6ff,stroke:#58a6ff,color:#000 style GOOG fill:#58a6ff,stroke:#58a6ff,color:#000 style XAI fill:#58a6ff,stroke:#58a6ff,color:#000 style OLLAMA fill:#58a6ff,stroke:#58a6ff,color:#000 style VLLM fill:#58a6ff,stroke:#58a6ff,color:#000 style OR_FREE fill:#58a6ff,stroke:#58a6ff,color:#000 style GAIS fill:#58a6ff,stroke:#58a6ff,color:#000 style GROQ fill:#58a6ff,stroke:#58a6ff,color:#000 style OR fill:#58a6ff,stroke:#58a6ff,color:#000 style VERCEL fill:#58a6ff,stroke:#58a6ff,color:#000 style CF fill:#58a6ff,stroke:#58a6ff,color:#000 style VEN fill:#58a6ff,stroke:#58a6ff,color:#000 style CONFIG_MODEL fill:#bc8cff,stroke:#bc8cff,color:#000 style COST_FREE fill:#bc8cff,stroke:#bc8cff,color:#000 style COST_LOW fill:#bc8cff,stroke:#bc8cff,color:#000 style COST_MID fill:#bc8cff,stroke:#bc8cff,color:#000 style COST_HIGH fill:#bc8cff,stroke:#bc8cff,color:#000
Layer 3: Channel — How Do You Talk to It?
%%{init: {'theme': 'dark', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TD
    READY([Model configured]) --> CHAN{How do you want
to talk to it?} CHAN -->|Mobile first| MOBILE{Phone messaging} CHAN -->|Desktop first| DESKTOP{Desktop apps} CHAN -->|Team/Group| TEAM{Collaboration} CHAN -->|Just CLI| CLI[Terminal only
No channel needed
Use Control UI] MOBILE -->|Easiest setup| TELE[Telegram ⭐
Create bot via BotFather
Paste token, done] MOBILE -->|Most popular| WA[WhatsApp
QR code pairing
Uses your phone number] MOBILE -->|Privacy focused| SIG[Signal
signal-cli setup
More complex] MOBILE -->|Apple ecosystem| IMSG[iMessage
Requires Mac host
BlueBubbles server] DESKTOP --> DISC[Discord
Create bot in Dev Portal
Servers + DMs] DESKTOP --> SLACK[Slack
Bolt SDK app
Workspace install] DESKTOP --> IRC_C[IRC
Any IRC server
Lightweight] TEAM --> DISC TEAM --> SLACK TEAM --> GCHAT[Google Chat
Workspace app
HTTP webhook] TEAM --> MSTEAMS[Microsoft Teams
Bot Framework
Enterprise] TEAM --> MM[Mattermost
Self-hosted Slack alt] TELE --> SECURITY{DM Security?} WA --> SECURITY SIG --> SECURITY IMSG --> SECURITY DISC --> SECURITY SLACK --> SECURITY CLI --> SECURITY IRC_C --> SECURITY GCHAT --> SECURITY MSTEAMS --> SECURITY MM --> SECURITY SECURITY -->|Just me| SEC_ALLOW[allowFrom: your ID only
Locked to you] SECURITY -->|Me + trusted| SEC_PAIR[Pairing mode
Approve new users] SECURITY -->|Anyone| SEC_OPEN[Open mode
⚠️ Use with caution] SEC_ALLOW --> MULTI_CHAN{Add more channels?} SEC_PAIR --> MULTI_CHAN SEC_OPEN --> MULTI_CHAN MULTI_CHAN -->|Yes| CHAN MULTI_CHAN -->|No| USE_CASES([→ Configure Use Cases]) style READY fill:#3fb950,stroke:#3fb950,color:#000 style CHAN fill:#f0883e,stroke:#f0883e,color:#000 style MOBILE fill:#f0883e,stroke:#f0883e,color:#000 style DESKTOP fill:#f0883e,stroke:#f0883e,color:#000 style TEAM fill:#f0883e,stroke:#f0883e,color:#000 style SECURITY fill:#f0883e,stroke:#f0883e,color:#000 style MULTI_CHAN fill:#f0883e,stroke:#f0883e,color:#000 style TELE fill:#58a6ff,stroke:#58a6ff,color:#000 style WA fill:#58a6ff,stroke:#58a6ff,color:#000 style SIG fill:#58a6ff,stroke:#58a6ff,color:#000 style IMSG fill:#58a6ff,stroke:#58a6ff,color:#000 style DISC fill:#58a6ff,stroke:#58a6ff,color:#000 style SLACK fill:#58a6ff,stroke:#58a6ff,color:#000 style CLI fill:#58a6ff,stroke:#58a6ff,color:#000 style IRC_C fill:#58a6ff,stroke:#58a6ff,color:#000 style GCHAT fill:#58a6ff,stroke:#58a6ff,color:#000 style MSTEAMS fill:#58a6ff,stroke:#58a6ff,color:#000 style MM fill:#58a6ff,stroke:#58a6ff,color:#000 style SEC_ALLOW fill:#bc8cff,stroke:#bc8cff,color:#000 style SEC_PAIR fill:#bc8cff,stroke:#bc8cff,color:#000 style SEC_OPEN fill:#bc8cff,stroke:#bc8cff,color:#000 style USE_CASES fill:#f778ba,stroke:#f778ba,color:#000
Layer 4: Use Cases — What Do You Want It to Do?
%%{init: {'theme': 'dark', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart TD
    UC([Channel connected!
Now what?]) --> GOAL{Primary use case?} GOAL -->|Personal Assistant| PA[Daily briefings
Calendar mgmt
Reminders
Web search] GOAL -->|Coding Agent| CODE[Code generation
Debugging
Git automation
PR reviews] GOAL -->|Business/Research| BIZ[Market research
Data analysis
Report generation
Competitive intel] GOAL -->|Trading/Finance| TRADE[Market scanners
Delta screeners
Earnings tracking
Options flow] GOAL -->|Content/Social| CONTENT[Newsletter digests
Social monitoring
LinkedIn automation
Content pipeline] GOAL -->|Home/Infra| HOME[Server monitoring
Self-healing
Smart home
IoT control] PA --> ENHANCE{Enhance with...} CODE --> ENHANCE BIZ --> ENHANCE TRADE --> ENHANCE CONTENT --> ENHANCE HOME --> ENHANCE ENHANCE --> E_CRON[⏰ Cron Jobs
Scheduled tasks
Automated reports] ENHANCE --> E_MULTI[👥 Multi-Agent
Specialized agents
Different models per role] ENHANCE --> E_BROWSER[🌐 Browser Automation
Scraping, logins
JS-heavy sites] ENHANCE --> E_MEMORY[🧠 Memory & RAG
Long-term recall
Knowledge base] ENHANCE --> E_SKILLS[🔧 Skills
ClawHub marketplace
Custom skills] ENHANCE --> E_NODES[📱 Node Pairing
Phone camera/location
Remote devices] ENHANCE --> E_HOOKS[🪝 Webhooks
Gmail hooks
GitHub events
External triggers] E_CRON --> DONE([🦞 You're Running OpenClaw!]) E_MULTI --> DONE E_BROWSER --> DONE E_MEMORY --> DONE E_SKILLS --> DONE E_NODES --> DONE E_HOOKS --> DONE style UC fill:#3fb950,stroke:#3fb950,color:#000 style GOAL fill:#f0883e,stroke:#f0883e,color:#000 style ENHANCE fill:#f0883e,stroke:#f0883e,color:#000 style PA fill:#f778ba,stroke:#f778ba,color:#000 style CODE fill:#f778ba,stroke:#f778ba,color:#000 style BIZ fill:#f778ba,stroke:#f778ba,color:#000 style TRADE fill:#f778ba,stroke:#f778ba,color:#000 style CONTENT fill:#f778ba,stroke:#f778ba,color:#000 style HOME fill:#f778ba,stroke:#f778ba,color:#000 style E_CRON fill:#bc8cff,stroke:#bc8cff,color:#000 style E_MULTI fill:#bc8cff,stroke:#bc8cff,color:#000 style E_BROWSER fill:#bc8cff,stroke:#bc8cff,color:#000 style E_MEMORY fill:#bc8cff,stroke:#bc8cff,color:#000 style E_SKILLS fill:#bc8cff,stroke:#bc8cff,color:#000 style E_NODES fill:#bc8cff,stroke:#bc8cff,color:#000 style E_HOOKS fill:#bc8cff,stroke:#bc8cff,color:#000 style DONE fill:#3fb950,stroke:#3fb950,color:#000
Complete Path — Quick Reference
%%{init: {'theme': 'dark', 'themeVariables': {'fontSize': '14px'}}}%%
flowchart LR
    A[1. Pick Hardware
Mac/Linux/Pi/VPS] --> B[2. Install Node 22+
npm i -g openclaw] B --> C[3. Pick LLM
Cloud/Local/Free] C --> D[4. openclaw onboard
Enter API key] D --> E[5. Pick Channel
Telegram recommended] E --> F[6. Configure Security
allowFrom / pairing] F --> G[7. openclaw start
Send first message!] G --> H[8. Add Use Cases
Cron, skills, agents] style A fill:#58a6ff,stroke:#58a6ff,color:#000 style B fill:#3fb950,stroke:#3fb950,color:#000 style C fill:#58a6ff,stroke:#58a6ff,color:#000 style D fill:#3fb950,stroke:#3fb950,color:#000 style E fill:#58a6ff,stroke:#58a6ff,color:#000 style F fill:#bc8cff,stroke:#bc8cff,color:#000 style G fill:#3fb950,stroke:#3fb950,color:#000 style H fill:#f778ba,stroke:#f778ba,color:#000