OpenClaw: The Complete Step-by-Step Guide to Your Personal AI Agent
Learn how to set up and use OpenClaw — the open-source personal AI assistant that runs on your machine, connects to any chat app, and autonomously gets things done 24/7. A complete guide with real-world examples.
Sani Mridha
Senior Mobile Developer
OpenClaw: The Complete Step-by-Step Guide to Your Personal AI Agent
Imagine having a senior developer, personal assistant, and research analyst all rolled into one — available 24/7, running on your own machine, and reachable via WhatsApp. That's OpenClaw.
OpenClaw is an open-source personal AI assistant that actually *does* things. Unlike standard chatbots, it has eyes and hands: it can browse the web, read and write files, run shell commands, and proactively work in the background while you sleep.
Let's walk through everything you need to know to set it up and get the most out of it.
What Makes OpenClaw Different?
It's Not Just a Chatbot
Most AI assistants answer questions. OpenClaw takes action:
Local Sovereignty
Your data stays on your machine — not on a tech giant's server. OpenClaw runs on Mac, Windows, or Linux. Your conversation history, personal context, and sensitive files (Gmail, calendar, local documents) never leave your hardware unless you explicitly configure it that way.
Multi-Platform Chat Interface
You don't need a new app. OpenClaw works through the tools you already use:
Just message it like you'd message a coworker.
Prerequisites
Before getting started, make sure you have:
Step 1: Install OpenClaw
OpenClaw provides a one-liner installation script. Open your terminal and run:
curl -fsSL https://open-claw.org/install.sh | bashThis script will:
1. Detect your operating system
2. Pull the required Docker images
3. Set up the OpenClaw daemon
4. Start the gateway service on localhost
Wait for the script to complete. You should see a success message with a local URL for the dashboard.
Verify the Installation
openclaw statusExpected output:
✅ OpenClaw Gateway: Running on localhost:3210
✅ Memory Module: Active
✅ Browser Engine: Ready
✅ Background Worker: OnlineStep 2: Configure Your AI Model
OpenClaw supports multiple AI providers. You can configure your preferred model in the settings file:
openclaw config --editThis opens your config file at ~/.openclaw/config.yml. Here's a sample configuration:
model:
provider: anthropic
name: claude-opus-4-5
api_key: YOUR_API_KEY_HERE
gateway:
port: 3210
bind: localhost
ssh_tunnel: true
memory:
backend: local
path: ~/.openclaw/memoryUsing the Built-in API (No Key Required)
If you subscribe to the Pro plan, you get $60 in built-in API credits with access to 5 flagship models:
Using Local Models via Ollama
For maximum privacy, run fully local models:
brew install ollama
ollama pull llama3.1:8b
openclaw config set model.provider ollama
openclaw config set model.name llama3.1:8b
openclaw config set model.api_base http://localhost:11434Step 3: Connect Your Chat Platform
Option A: Telegram (Recommended for Beginners)
1. Open Telegram and search for @BotFather
2. Send /newbot and follow the prompts
3. Copy the bot token you receive
4. Run the connection command:
openclaw connect telegram --token YOUR_BOT_TOKEN5. Start chatting with your new bot!
Option B: Discord
1. Go to the Discord Developer Portal and create a new application
2. Add a Bot and copy the bot token
3. Add the bot to your server with the right permissions:
openclaw connect discord --token YOUR_DISCORD_BOT_TOKEN --guild-id YOUR_SERVER_IDOption C: WhatsApp
WhatsApp connection requires the gateway to be accessible via a public URL. Use SSH tunneling:
ngrok http 3210
openclaw connect whatsapp --webhook-url https://your-ngrok-url.ngrok.ioStep 4: Your First Conversations
Once connected, let's try some basic commands through Telegram (or your preferred platform).
Basic Assistant Tasks
Get a daily briefing:
You: Morning! Give me a briefing on what I have today.
OpenClaw: Good morning! Here's your briefing:
📅 Calendar: 2 meetings — standup at 10 AM, design review at 3 PM
📧 Email: 12 unread, 3 flagged as urgent
🌤️ Weather: Sunny, 72°F in your area
📋 Tasks: 5 items due today, 2 overdue from yesterdaySearch the web:
You: Find me the latest React Native release notes.
OpenClaw: React Native 0.75 was released on August 12, 2024. Key changes:
- Yoga 3.1 layout engine update
- New Architecture is now stable
- Improved Metro bundler performance
- TypeScript 5.2 supportFile operations:
You: Summarize /Documents/meeting-notes.txt
OpenClaw: Summary: The Q3 planning meeting covered 3 main topics:
1. Product roadmap priorities for mobile app rewrite
2. Budget allocation for the new ML pipeline
3. Hiring plan: 2 senior engineers needed by OctoberStep 5: Setting Up Skills
Skills are the superpower of OpenClaw — repeatable workflows defined in Markdown or TypeScript.
Installing a Community Skill
openclaw skills list
openclaw skills install github-pr-reviewer
openclaw skills install daily-standup-reporter
openclaw skills install expense-trackerWriting Your Own Skill
Create a new file at ~/.openclaw/skills/morning-briefing.md:
---
name: morning-briefing
description: Sends a personalized morning briefing
triggers:
- schedule: "0 8 * * 1-5"
- keyword: "morning briefing"
---
# Morning Briefing Skill
## Instructions
1. Check Google Calendar for today's events
2. Fetch the top 5 important unread emails
3. Get the current weather for the user's location
4. Summarize all open GitHub PRs assigned to the user
5. Format and send a clean briefing via TelegramReload skills to activate:
openclaw skills reloadSkills via TypeScript (Advanced)
import { Skill } from '@openclaw/sdk';
export const expenseTracker: Skill = {
name: 'expense-tracker',
description: 'Tracks and categorizes expenses from email receipts',
async execute(ctx) {
const emails = await ctx.gmail.search(
'subject:(receipt OR invoice) newer_than:7d'
);
const expenses = [];
for (const email of emails) {
const parsed = await ctx.ai.extract(email.body, {
amount: 'number',
vendor: 'string',
category: 'string',
date: 'date'
});
expenses.push(parsed);
}
await ctx.memory.append('expenses.json', expenses);
const total = expenses.reduce((sum, e) => sum + e.amount, 0);
return `Found ${expenses.length} expenses totaling $${total.toFixed(2)}`;
}
};Step 6: Proactive Intelligence and Cron Jobs
Configure heartbeats in ~/.openclaw/heartbeat.yml:
heartbeats:
- name: github-monitor
schedule: "*/15 * * * *"
task: |
Check for new GitHub notifications. If there are any failing CI checks
on my PRs, diagnose the issue and suggest a fix in Telegram.
- name: email-triage
schedule: "0 9,13,17 * * 1-5"
task: |
Check for urgent unread emails. If any require immediate action,
summarize them and send an alert via Telegram.
- name: code-backup
schedule: "0 22 * * *"
task: |
Run git status in ~/Projects. If any repos have uncommitted
changes, send a reminder message.Developer Workflow Automation
You: Set up monitoring for my React Native app's test suite.
OpenClaw: Done! I've set up:
1. ✅ Webhook to receive Sentry error events
2. ✅ Cron job to run 'yarn test' every 4 hours
3. ✅ GitHub Actions notification listener
4. ✅ Auto-issue creation for any failing tests
When tests fail, I'll diagnose the error, suggest a fix, and optionally
open a PR with the fix for your review.Step 7: Memory and Personalization
Integrating with Obsidian
openclaw integrate obsidian --vault-path ~/Documents/ObsidianVaultNow OpenClaw can read and write to your vault:
You: Create a meeting note for today's standup.
OpenClaw: Created: /Meetings/2026-03-20-standup.md ✅
Linked to your Q1 project note and tagged #standup.Teaching OpenClaw Your Preferences
Tell it your preferences directly and it remembers them forever:
You: Remember that I prefer concise responses under 3 bullet points.
My timezone is UTC+6.
OpenClaw: Saved your preferences:
- Response style: Concise, max 3 bullet points
- Timezone: UTC+6 (Bangladesh Standard Time)
I'll apply these to all future interactions.Real-World Examples
Example 1: Developer on a Walk
You: I'm going for a walk. Review my open PRs while I'm gone.
[30 minutes later]
OpenClaw: Walk summary! Reviewed 3 PRs:
- PR #47: Approved ✅ — Clean implementation, left 2 minor suggestions
- PR #48: Changes requested ⚠️ — Missing error handling in fetchUser()
- PR #49: CI failing ❌ — Ran snapshots update, opened fix PR #50Example 2: Personal Finance
You: How much did I spend on food this month?
OpenClaw: Food spending (March 2026):
- Restaurants: $342.50 (18 transactions)
- Groceries: $218.75 (6 transactions)
- Coffee shops: $67.20 (14 transactions)
Total: $628.45
Tip: 23% over your usual average of ~$510/month.
Want me to set up weekly budget alerts?Example 3: Research Assistant
You: Compare the top React Native navigation libraries.
OpenClaw: Here's the comparison:
Library | Stars | Size | TypeScript | Expo
React Navigation | 23k | 180KB | ✅ | ✅
Expo Router | 4.2k | 220KB | ✅ | ✅
RN Router Flux | 9.1k | 95KB | ✅ | ⚠️
Wix Navigation | 13k | 310KB | ✅ | ❌
Solito | 3.8k | 45KB | ✅ | ✅
Recommendation: React Navigation v7 for your stack.
Want me to scaffold a project with it configured?Security Best Practices
1. Always bind the gateway to localhost:
gateway:
bind: localhost2. Use SSH tunneling for remote access:
ssh -L 3210:localhost:3210 user@your-home-ip3. Enable skill sandboxing:
sandbox:
enabled: true
network_access: restricted
filesystem_access: scoped4. Regularly rotate API keys:
openclaw config rotate-key --provider anthropicTroubleshooting Common Issues
Gateway won't start
docker ps
openclaw gateway restart
openclaw logs --tail 50Messages not arriving on Telegram
openclaw connect telegram --verify
openclaw status --verboseHigh memory usage
openclaw memory compact
openclaw config set memory.max_context_messages 50Conclusion
OpenClaw represents a fundamental shift in how we think about AI assistants. It's not a tool you visit — it's a teammate that lives alongside you, learns your preferences, and gets things done proactively.
Key advantages:
Start with the one-liner install, connect your Telegram bot, and see what it does in the first week. You'll never want to go back to a plain chatbot again.
---
*Have questions about setting up OpenClaw or building custom skills? Drop a message below — I'd love to help!*