
OpenClaw is wildly popular and kind of confusing. From what I can tell before starting, other than being a first-class security concern, it's meant to be a tool that lets you connect to your ai agents over chat tools like WhatsApp.
It runs locally, you bring your own API key (Anthropic, OpenAI, DeepSeek), and your data stays on your machine (until you screw up). The gateway connects to messaging platforms like Telegram, Signal, WhatsApp, Discord, and apparently about 20 others.
Prerequisites: Node.js 22+ and an API key for your chosen model provider (more on that next).
The recommended install uses their script:
curl -fsSL https://openclaw.ai/install.sh | bash
That handles Node detection and installs the openclaw CLI.
If you want to skip the wizard and install the binary only:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
Then run the onboarding wizard separately:
openclaw onboard
The wizard walks through gateway setup, workspace directory,
and API key config. Everything lives in ~/.openclaw/.
The onboard wizard asks which model to use. OpenClaw supports a long list of providers, but here are the ones that matter for a personal assistant:
| Model | Input / Output (per 1M tokens) | Good for |
|---|---|---|
| Claude Haiku 4.5 | $1 / $5 | Cheap daily driver |
| Claude Sonnet 4.6 | $3 / $15 | Solid middle ground |
| Claude Opus 4.6 | $5 / $25 | Best reasoning |
| GPT-5 | $1.25 / $10 | Strong alternative |
| GPT-4o Mini | $0.15 / $0.60 | Budget OpenAI |
| Gemini 2.5 Flash | Free (250 req/day) / ~$0.30 paid | Free option |
| Gemini 3 Pro | $2 / $12 | Strong reasoning |
| DeepSeek (via Ollama) | Free (local) | Fully offline |
ChatGPT Plus/Pro: No. The subscription doesn't include API access. You need a separate OpenAI API key with pay-as-you-go billing.
Claude Pro ($20/mo): Not anymore. Early on, people found a workaround using OAuth tokens from the Claude Code CLI. Anthropic shut that down in January 2026. You need a separate Anthropic API key.
Claude Max ($200/mo) and Claude Code subscription: Same story. The setup-token auth path existed briefly but Anthropic scoped the tokens so they only work with the official Claude Code client.
Apparently Google's Gemini API has a free tier, I tried it out. Gemini 2.5 Flash gets 250 requests/day free. For texting a bot a few times a day to manage issues, that's ok.
Annoyingly there are a bunch of 2.5 options. No idea if they all have free tiers.
I initially picked google/gemini-2.5-flash-preview-09-2025 during the wizard and
gave it my api key using the Paste API key now option. Sadly that had an error
models/gemini-2.5-flash-preview-09-2025 is not found for API version v1beta,
Fixing it was a pain in the ass, their /model and /models tools TUI setup was jank
af and just didnt work.
/exit
openclaw configure
I tried to switch the model up to google/gemini-2.5-flash.
Note that this thing stays running in the background
➜ ~ ps aux | grep openclaw
kp 39009 0.1 1.0 444980720 173456 ?? R 11:03AM 0:07.97 openclaw-gateway
Re-open the TUI with openclaw tui if you end up out of it.
I paused here to install Telegram on my MacBook. It's pretty easy if you already have it on your phone, you just scan a QR code.
During the quick start it recommends you use Telegram. I chose to use
Telegram (Bot API). Then I followed the instructions:
◇ Telegram bot token ───────────────────────────────────────────────────────────────────╮
│ │
│ 1) Open Telegram and chat with @BotFather │
│ 2) Run /newbot (or /mybots) │
│ 3) Copy the token (looks like 123456:ABC...) │
│ Tip: you can also set TELEGRAM_BOT_TOKEN in your env. │
│ Docs: https://docs.openclaw.ai/telegram │
│ Website: https://openclaw.ai │
│ │
├────────────────────────────────────────────────────────────────────────────────────────╯
The /newbot prompt had me name it. Then I got the key to give OpenClaw.
I chose to use Gemini since I'm giving it that API key anyways. Plus, Google's gotta be
the best at search, right? It's like, their thing. Suprisingly it asked again for
Gemini (Google Search) API key. I just gave it the same key as before.
Then I got to here and just proceeed. There was some news about malware in the skills.
◇ Skills status ─────────────╮
│ │
│ Eligible: 8 │
│ Missing requirements: 43 │
│ Unsupported on this OS: 0 │
│ Blocked by allowlist: 0 │
│ │
├─────────────────────────────╯
What, why?
◆ Set GOOGLE_PLACES_API_KEY for goplaces?
│ ○ Yes / ● No
I mean yeah but I already gave it this key twice, kinda annoying.
◆ Set GEMINI_API_KEY for nano-banana-pro?
│ ● Yes / ○ No
... It wants a lot of keys, just start saying no.
I don't trust boot-md yet.
◆ Enable hooks?
│ ◻ Skip for now
│ ◻ 🚀 boot-md
│ ◼ 📎 bootstrap-extra-files (Inject additional workspace bootstrap files via glob/path patterns)
│ ◼ 📝 command-logger (Log all command events to a centralized audit file)
│ ◼ 💾 session-memory (Save session context to memory when /new or /reset command is issued)
MacOS popup. Yeah, nah. This is already probably the least secure thing I've ever done on purpose.
I love a good TUI.
◆ How do you want to hatch your bot?
│ ● Hatch in TUI (recommended)
│ ○ Open the Web UI
│ ○ Do this later
The BotFather sends you a link to your bot account. I clicked it, hit start, and that sent /start to it. It immediately told me OpenClaw: access not configured. Love it. I copied its whole message and just dumped it into the TUI for OC to sort it out.
Aand, it's that error again:
LLM error: {
"error": {
"code": 404,
"message": "models/gemini-2.5-flash-preview-09-2025 is not found for API version v1beta, or is not supported for generateContent. Call ListModels to see the list of available models and their supported methods.",
"status": "NOT_FOUND"
}
}
Turns out changing the model doesn't stick unless you restart the gateway. Entertainingly I asked it to restart the gateway in the TUI. It killed the gateway and then immediately went unresponsive, not having a gateway to work with.
Restarting it... openclaw gateway: Conveniently that opens it in the foreground, it
looks great in tmux.
When the messaging finally works on Telegram it'll ask you for an identity and tone. It's kind of fun.
Don't wanna leave this thing running until it's secured.
# Stop the gateway
openclaw gateway stop
# Verify nothing is still running
ps aux | grep openclaw
pkill -f openclaw-gateway
I wanted to set this up with Linear, but honestly I don't love it runing flat on my Macbook. I'm gonna put it in K8s and producitonize this now that I've got the MVP figured out.