OpenClaw lets you host AI agents that connect to Telegram, Discord, and more. No data leaks. No subscriptions. Full control.
In one sentence: OpenClaw lets you run your own AI assistant that connects to Telegram, Discord, and other apps — without sending your conversations to big tech companies.
Option A: Your laptop (for testing)
Any machine with 2GB+ RAM. Linux, macOS, or Windows (WSL2). You already have this — start here.
Option B: A VPS (for 24/7 operation)
2GB+ RAM, any Linux distro (Ubuntu 22.04+ recommended). Costs $5-10/month (SumoPod, Hetzner, DigitalOcean, etc.).
→ Deploy OpenClaw to any VPS in 5 minutes (one command)
OpenClaw doesn't include AI models — it connects to providers. You need at least one:
| Provider | Free Tier | Pay-As-You-Go | Best For |
|---|---|---|---|
| Google (Gemini) | ✅ Yes (limited) | ✅ Yes | Beginners, cheap |
| Anthropic (Claude) | ❌ No | ✅ Yes | Best quality |
| OpenAI (GPT) | ❌ No | ✅ Yes | Compatibility |
| Z.ai (GLM) | ✅ Yes | ✅ Yes | Budget option |
| Ollama (Local) | ✅ Yes | ✅ Free | Privacy, offline |
How to get a Google API key:
AIza...)You need to be comfortable with: opening a terminal, running commands like cd, ls, nano, and copying/pasting multi-line commands.
OpenClaw runs on Node.js. Most systems don't have it by default.
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejsVerify it worked:
node --version # Should show v20.x.x
npm --version # Should show 10.x.xnpm install -g openclawThis downloads OpenClaw and makes the openclaw command available everywhere.
Verify:
openclaw --versionopenclawOn first run, OpenClaw will create ~/.openclaw/, generate a default config, and start the gateway. You should see:
🦞 OpenClaw 2026.3.13
🧠 Gateway started on port 18789
✅ Ready for connectionsPress Ctrl+C to stop it for now.
nano ~/.openclaw/.envAdd your Google API key:
GOOGLE_API_KEY=AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXSave (Ctrl+O, Enter) and exit (Ctrl+X).
openclawYou should see your model listed as available.
Telegram is the easiest first connection. Works on phone and desktop, no approval needed, free.
@BotFather/newbotMyTestAIBot)123456789:ABCdefGHIjklMNOpqrsTUVwxyz)Save this token. You'll need it in a second.
nano ~/.openclaw/openclaw.jsonFind the channels.telegram section and add your bot token:
"telegram": {
"enabled": true,
"botToken": "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
}Save and exit.
openclawIn Telegram: search for your bot username, click "Start", send Hello, what can you do?
Your bot should respond!
What it is: The main OpenClaw process that runs 24/7.
Analogy: Like a phone switchboard. Messages come in, gateway routes them to the right AI model, sends responses back.
What it is: The AI brains. OpenClaw connects to providers (Google, Anthropic, etc.) and exposes their models.
Analogy: Like having multiple translators. Some are fast and cheap (Gemini Flash), some are slow and expensive (Claude Opus), some work offline (Ollama).
What it is: Plugins that add capabilities.
Analogy: Like smartphone apps. Base OpenClaw does chat. Skills add: transcribe voice, generate images, search the web, control your calendar.
What it is: A conversation thread. Each chat with a user is a session.
Analogy: Like browser tabs. Each tab has its own history. Closing a tab doesn't affect other tabs.
What it is: The main config file.
Analogy: Like your phone's settings. Everything is configurable: models, channels, skills, behavior.
What it is: Backup models when the primary fails.
Analogy: Like having a spare tire. When your main tire (model) goes flat (rate limit), you switch to the spare (fallback).
Cause: Node.js not installed or not in PATH.
Fix: Install Node.js, then npm install -g openclaw
Cause: Missing API key in .env file.
Fix: Add GOOGLE_API_KEY=your-key-here to ~/.openclaw/.env
Debug steps:
# Check gateway is running
openclaw gateway status
# Check logs for errors
tail -f ~/.openclaw/logs/gateway.log
# Test model directly
openclaw ask "Hello" --model google/gemini-2.5-flashCause: You hit the API provider's limit.
Fix: Add a fallback model in openclaw.json, or wait for limit to reset.
Cause: Running on a small VPS (<2GB RAM).
Fix: Upgrade VPS to 2GB+ RAM, or reduce maxConcurrent in config.
This guide covers the basics. For advanced topics, see these resources: