Introduction
OpenClaw out of the box is a blank canvas. You can stand up a server, point a model at it, and chat — but the difference between an OpenClaw instance that drains your wallet and one that quietly handles real work every day is the configuration. This guide is the full course: install, model routing to keep costs sane, Telegram with voice, groups for context separation, skills that give the bot capabilities, the memory architecture, vector-backed search, identity files, heartbeats for self-improvement, and cron jobs for scheduled tasks.
Everything here is what an OpenClaw setup looks like after roughly 60–70 hours of trial and error — the shape an instance takes once you actually try to get value out of it. Treat it as a base and customize from there.
📚 Table of contents
- Security mindset — treat the bot like an untrusted assistant
- One-click install on a VPS
- Smart model routing: Opus for planning, Codex for grunt work
- Connecting Telegram and enabling voice
- Using groups to organize different jobs
- Skills: what they are and which ones to enable first
- GitHub setup with a separate bot account
- The memory model: persistent, daily, and session
- QMD vector backend for better recall
- Identity, user, soul, and tools files
- Heartbeats: continuous self-improvement
- Cron jobs for scheduled work
- Common mistakes and best practices
- Frequently asked questions
🛡️ Treat OpenClaw like an untrusted assistant
Before any setup, internalize one rule: imagine a real person in another country had the access you’re about to give this bot. Would you hand them your main email, your crypto keys, your personal GitHub? No. Use the same posture with OpenClaw. Make a separate GitHub account for it. Use a fresh API key. Don’t connect it to your primary inbox.
⚠️ Why a VPS, not your laptop
- Data-center physical security, backups, and disaster recovery you won’t replicate locally.
- The bot runs in an isolated environment — if it goes off the rails, your main machine isn’t the blast radius.
- Cheap to spin up, trivial to throw away. No $1,000 hardware commitment.
The more integrations you bolt on, the more attack surface you create. Connect only what you’re comfortable losing.
⚡ One-click install
The fastest way to get an instance running is Hostinger’s KVM2 one-click deploy for OpenClaw. Three or four buttons and you have a Dockerized OpenClaw process running on a managed VPS with the gateway exposed. No manual server config required.
- Pick the KVM2 plan, choose region, complete checkout.
- Paste in at least one provider API key (Anthropic, OpenAI, or similar) when prompted.
- Wait for the Docker container to show up in Docker Manager — that’s your success signal.
- Copy the OpenClaw gateway token from environment variables and open the gateway link.
- Paste the token, log in, start chatting.
If the bot doesn’t respond, go straight to Logs and filter to error or fatal. Nine times out of ten it’s a missing API key, an empty credit balance, or a rate-limit cap. Set a monthly spend cap on the provider side and turn on email alerts at a threshold — OpenClaw can burn money fast if a runaway loop hits.
💸 Model routing that keeps costs sane
Running every task through Opus 4.6 is the fastest path to a $200/day bill. Real users have done it. The pattern that actually works is two-model routing: Opus for planning and high-leverage thinking, a cheaper model for the rest.
🧠 Default: Opus 4.6
The current best Anthropic model for OpenClaw. Use it for kicking off tasks, architecture decisions, and anything requiring real reasoning. Rate limits are tight on new accounts — budget accordingly.
🔧 Worker: Codex (via ChatGPT)
Connect via OAuth to your ChatGPT subscription. If you’re already paying $20–$200/month, you’re reusing that quota at no extra cost. Codex handles coding tasks and lower-stakes work well, freeing Opus for the parts that matter.
Build a custom /model slash command so you can switch on demand, then tell OpenClaw the rule
explicitly: “Default to Opus 4.6. For any coding task or low-complexity work, delegate to Codex
via sub-agents. Always tell me which model you’re using.” Save it as a preference and the
bot will route automatically.
📱 Telegram + voice
Telegram is the easiest front end for OpenClaw — chat from your phone, get answers anywhere. Setup is conversational. Tell OpenClaw “set up Telegram”, then follow its lead:
- Open Telegram, find @BotFather (the one with the checkmark).
- Send
/newbot, pick a name, get a bot token. - Paste the token back into OpenClaw when it asks.
- Tap the link to your new bot, hit Start, send a test message.
- Run the pairing command OpenClaw shows you and confirm with the code.
To enable voice: tell the bot “install Whisper locally for speech-to-text”. The default base model handles most accents fine and runs without an extra API key. Send a voice note and the bot transcribes it, then responds normally.
🗂️ Groups for context separation
One channel for everything is chaos. Telegram groups let you give each job its own room: a startup-ideas group, an accounting group, a coding group. Create a group, add the bot, promote it to admin with permissions.
Then teach the bot the rule once, and it will respect it across sessions:
“I’m adding you to groups where the channel name is the topic. Only discuss the topic that matches the channel name. Reply to every message in those channels, not just when pinged. In direct messages, anything goes. Save this as a rule.”
The result: scoped context per workstream, clean history per topic, and no “wait, what were we talking about?” threads.
🧰 Skills — what they are and which to enable first
A skill is a markdown file. That’s it. The skill.md describes what the bot can do and
optionally references scripts (Python, shell, whatever) that execute the work. The gateway dashboard
ships dozens of built-in skills — voice calling, weather, Spotify, even “create a skill”
as a skill. ClawHub adds more from the community.
✅ Enable these first
- Coding agent — lets OpenClaw write its own Python scripts and skills. Tell it to use Codex when installing.
- GitHub CLI — install the CLI, then authenticate with a separate bot GitHub account. Never your personal one.
- Audio transcription — Whisper local is the cheapest path.
To install community skills, tell the bot “enable this skill” and paste the name or
link. To make your own, just describe what you want: “make a skill that says hello world in five
languages” — the bot creates a folder under skills/ with a
skill.md, and you can trigger it with /skill hello-world-languages. Review the
markdown afterward and tighten it to your taste.
🧠 The memory architecture
OpenClaw forgets between sessions by default. Persistence comes from files the bot reads on every wake-up and writes to as conversations progress. Three layers matter:
📌 memory.md
Persistent long-term memory. Always read before any action. Anything you want the bot to remember forever goes here — either by editing the file or by telling the bot to write it.
📅 Daily memory
Per-day log files of what happened, what’s open, what’s next. By default the bot only reads the last two days — older context falls off unless promoted to persistent memory.
💬 Session memory
What’s in the current conversation. Lost on session end unless saved out. Two settings make this dramatically better.
The two settings worth enabling right away:
compaction.memoryflush.enabled— when the conversation gets too long, OpenClaw writes important context to memory files before compaction drops history.memorysearch.experimental.sessionmemory— recall now spans recent session transcripts, not just files on disk.
Tell the bot “enable these two settings” and paste the names. Done.
🔍 QMD vector backend
Memory search defaults to a basic backend. Swapping it for the QMD vector backend gives noticeably better recall across your memory files — semantic matching instead of keyword lookup. Grab the snippet from the OpenClaw docs, paste it into chat, and say “enable this”. The bot installs the prerequisites and switches the backend.
You don’t need to understand the math. You will notice the difference when you ask “what was that thing I told you last week about the auth migration?” and the bot actually finds it.
👤 Identity, user, soul, and tools
Four files in your workspace shape how OpenClaw behaves:
- user.md — everything about you: name, pronouns, time zone, working hours, goals.
- identity.md — everything about the bot: who it is, how it should present itself.
- soul.md — core operating principles, vibe, boundaries, communication style. The defaults are good; tweak for tone.
- tools.md — device names, SSH hosts, preferred voices — the “equipment” the bot can reach for.
Don’t fill these in manually. Tell the bot:
“Update identity.md and user.md. Interview me with the questions you need answered. In the future, keep updating these files as we learn more about each other.”
The bot runs the interview, writes the files, and refreshes them as your situation evolves. Much faster than YAML by hand.
💓 Heartbeats — continuous self-improvement
The heartbeat file fires on a schedule (default 30 minutes, often off out of the box — turn it on). Each time it wakes, the bot reads the heartbeat instructions and acts. This is where you teach OpenClaw to keep getting better without your involvement.
“On every heartbeat, review recent mistakes and proposed fixes. Spawn sub-agents and parallelise the work. Apply fixes to skills, prompts, and configs.”
Pair heartbeats with sub-agents and the bot starts compounding. Sub-agents are independent OpenClaw sessions you spawn for parallel work — visible under Sessions in the gateway. Keep heartbeats focused on short, repeatable tasks (review email, check error logs, audit yesterday’s outputs). Long jobs belong in cron.
⏰ Cron jobs for scheduled work
A cron runs at a specific time or on a fixed cadence. Remind me to go to the gym at 7am. Back up the database every night at 2am. Summarize yesterday’s work each morning at 9am. Either ask the bot to create one in plain English, or build it in the gateway’s Crons tab.
Crons show up in the gateway with their schedule and run history. A productive setup typically has four or five — a daily review, a digest, a backup, and one or two reminders.
✨ Best practices & common mistakes
✅ Do
- Set a hard monthly spend cap on every provider.
- Route Opus for planning, cheaper models for grunt work.
- Use separate GitHub and provider accounts for the bot.
- Turn on memory flush and session memory before anything serious.
- Read the logs whenever something feels off — the answer is usually there.
❌ Don’t
- Connect the bot to your primary email or crypto keys.
- Run Opus on every interaction — bills compound fast.
- Install every ClawHub skill at once. Add one, use it, then add the next.
- Skip the heartbeat enable step — it’s off by default for many setups.
- Leave the bot in one giant Telegram channel for every topic.
Related reading: OpenClaw professional developer setup — AI coding tools worth learning in 2026