A personal AI that actually does things, for free or cheap, on hardware you own. No coding required.
I’ve always been fascinated by the idea of having a personal AI assistant. Something that knows my context, can access my files, check my calendar, and actually do things instead of just chatting. The problem? Most AI assistants either live in the cloud (privacy concerns), cost monthly subscriptions, or are locked into specific ecosystems.
So I set one up. It runs on a Raspberry Pi 4, and I can talk to it through Telegram, a web interface, or any messaging platform I want. I didn’t write the software. I used Clawdbot, an open-source AI gateway that does the heavy lifting. The best part? You can run this completely free using Gemini’s generous free tier, or pay for premium models if you want the best experience. Here’s how.
What You’ll Build
By the end of this guide, you’ll have:
- A personal AI assistant running 24/7 on a Raspberry Pi
- Access via Telegram, web chat, or other messaging apps
- Secure remote access from anywhere (no port forwarding needed)
- Full control over your data and privacy
- A system that can actually execute commands, check your calendar, search the web, and more
Hardware Requirements
The essentials:
| Component | What I used | Cost |
|---|---|---|
| Raspberry Pi 4 | 8GB model | ~$75 |
| Power supply | Official USB-C | ~$15 |
| MicroSD card | 64GB (minimum 32GB) | ~$10 |
Minimum total: ~$100
Optional:
| Component | Why | Cost |
|---|---|---|
| Case | Dust protection, tidier setup | ~$5-15 |
| Heatsinks/fan | For heavy sustained load | ~$5-10 |
I use the official red/white case, but honestly a naked Pi works fine for this workload. It barely breaks a sweat running Clawdbot.
You could get away with a 4GB Pi, but 8GB gives you headroom for running other services. I’ve seen this setup run fine on 4GB with careful tuning.
Optional but recommended:
- Ethernet connection (more reliable than WiFi)
- SSD via USB (faster than SD card, more reliable long-term)
Software Stack
Here’s what makes it all work:
- Raspberry Pi OS (64-bit, Lite or Desktop)
- Clawdbot – the gateway that connects everything
- Node.js 22+ – runtime for Clawdbot
- Cloudflare Tunnel – secure remote access without port forwarding
- AI Provider – your choice (see options below)
Choosing Your AI Brain (Including Free Options)
This is where you have choices. Here’s the honest breakdown:
Completely Free Options
| Provider | Free Tier | Catch |
|---|---|---|
| Google Gemini | 1,500 requests/day | Very generous, great for personal use |
| Groq | Fast inference, free tier | Rate limited but usable |
| OpenRouter | Some models free | Limited selection |
| Local models (Ollama) | Unlimited, truly free | Slower on Pi, see note below |
Gemini is my recommendation for zero-cost. The free tier is genuinely usable for daily personal assistant tasks. Clawdbot supports it natively.
Paid Options
| Provider | Cost | Why pay? |
|---|---|---|
| Anthropic API | ~$5-20/month | Claude is excellent at tool use and coding |
| OpenAI API | ~$5-20/month | GPT-4o, good all-rounder |
| Google Gemini API | Pay-per-use after free tier | Upgrade path from free |
I personally use Claude’s API (paid per token), but I started with Gemini’s free tier to validate the setup.
⚠️ Important: API Keys Only!
Claude Max/Pro subscriptions and OAuth tokens are only for official Claude interfaces (claude.ai, Claude Code CLI). Using subscription credentials in third-party tools like Clawdbot violates Anthropic’s ToS and will result in blocked requests.
For third-party tools, you must use an API key (
sk-ant-api...) from console.anthropic.com with pay-per-token billing. This is the officially supported path.Monitoring costs: Check your usage anytime at console.anthropic.com/settings/plans. Set up billing alerts to avoid surprises, especially when testing!
Running Local Models (Actually Free)
Yes, you can run AI models directly on the Pi. No API calls, no monthly costs, complete privacy. The tradeoff is speed.
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Pull a small, fast model
ollama pull phi3:mini # 2.3GB, runs on 4GB Pi
ollama pull llama3.2:1b # 1.3GB, fastest option
Realistic expectations: A 7B model runs at ~2-5 tokens/second on Pi 4. Good enough for simple tasks, painfully slow for long responses. For serious use, stick with cloud APIs or get a beefier machine.
Best of both worlds: Use local models for simple queries, cloud APIs for complex tasks. Clawdbot can be configured with fallbacks.
Step 1: Setting Up the Pi
Start with a fresh Raspberry Pi OS install. I recommend the 64-bit Lite version if you’re comfortable with command line, or Desktop if you want a GUI.
# Update everything first
sudo apt update && sudo apt upgrade -y
# Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# Verify installation
node --version # Should show v22.x.x
Step 2: Installing Clawdbot
Clawdbot is an open-source AI gateway that handles all the heavy lifting: routing messages, managing sessions, connecting to APIs, and exposing tools to the AI.
# Install globally
npm install -g clawdbot
# Run the setup wizard
clawdbot onboard
The wizard walks you through:
- Entering your Anthropic API key
- Choosing a messaging channel (Telegram is easiest to start)
- Setting up authentication
Step 3: Connecting Telegram
Telegram is the simplest way to start chatting with your assistant:
- Message @BotFather on Telegram
- Create a new bot with
/newbot - Copy the bot token
- Add it to your Clawdbot config
Now you can message your bot from anywhere: phone, desktop, or web.
Step 4: Secure Remote Access with Cloudflare Tunnel
Here’s where it gets clever. Instead of exposing ports on your home network (security nightmare), we use Cloudflare Tunnel. It creates an outbound connection from your Pi to Cloudflare, so:
- No port forwarding needed
- No dynamic DNS hassles
- Free SSL certificates
- DDoS protection included
# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/
# Authenticate with Cloudflare
cloudflared tunnel login
# Create a tunnel
cloudflared tunnel create clawdbot
# Configure the tunnel to point to your local Clawdbot port
Point a subdomain (like calwd.yourdomain.com) to your tunnel, and you’ve got a secure web interface accessible from anywhere.
Step 5: Hardening Security
Running an AI assistant means giving it access to things. Here’s how I locked mine down:
SSH hardening:
# Disable password authentication (key-only access)
echo "PasswordAuthentication no" | sudo tee /etc/ssh/sshd_config.d/no-password.conf
sudo systemctl restart sshd
Firewall:
sudo apt install ufw
sudo ufw allow 22 # SSH only
sudo ufw enable
On my setup, ufw status shows only port 22 open. The gateway port (18789) isn’t exposed because it binds to localhost.
Service isolation:
- Clawdbot runs as your user (not root)
- Gateway binds to
127.0.0.1:18789(localhost only, not0.0.0.0) - Cloudflare tunnel handles all external access
- No ports exposed to the internet
You can verify the gateway bind with ss -tlnp | grep 18789. It should show 127.0.0.1, not 0.0.0.0.
What Can It Actually Do?
This isn’t just a chatbot. With the right configuration, your assistant can:
- Execute shell commands on the Pi (with your permission)
- Search the web and fetch content from URLs
- Check your calendar and remind you of events
- Send messages to other platforms
- Read and write files in designated workspaces
- Control a browser for web automation
- Set reminders and scheduled tasks
The key insight: you’re not limited to what the AI “knows.” It has tools that let it interact with the real world.
Multi-User Setup
Want to let family or friends use it too? Clawdbot supports multiple agents with different permission levels:
- Main agent (you): Full access to everything
- Guest agent (others): Chat, web search, and limited tools only
Each user gets isolated sessions, so your personal context stays private.
Running 24/7
Set it up as a systemd service so it survives reboots:
clawdbot service install
clawdbot service enable
The Pi draws about 3-5 watts at idle.
Cost Breakdown
The free route:
| Item | One-time | Monthly |
|---|---|---|
| Raspberry Pi + essentials | ~$100 | – |
| Electricity | – | ~$0.50 |
| AI (Gemini free tier) | – | $0 |
| Cloudflare Tunnel | – | Free |
| Telegram | – | Free |
Total: ~$100 upfront + $0.50/month. Yes, actually free after hardware.
The premium route :
| Item | One-time | Monthly |
|---|---|---|
| Raspberry Pi + essentials | ~$100 | – |
| Electricity | – | ~$0.50 |
| Claude API | – | ~$10-20 |
| Cloudflare Tunnel | – | Free |
| Domain (optional) | ~$12/year | – |
Total: ~$100 upfront + ~$10-20/month (depends on usage)
Why pay? Claude handles complex tool use and coding tasks better. For basic assistant tasks (reminders, calendar, web search), Gemini’s free tier is genuinely sufficient. Start free, upgrade if you need it.
Privacy Wins
Everything runs on hardware you own:
- Conversation history stays on your Pi
- No third-party analytics
- API calls go directly to your provider (Gemini/Claude/OpenAI)
- You control what the AI can and can’t access
Maximum privacy option: Run local models via Ollama. Your queries never leave your network. It’s slower, but if privacy is paramount, it’s the only true solution.
What’s Next?
Once you’ve got the basics running, the rabbit hole goes deep:
- Voice integration – add speech-to-text and TTS for hands-free interaction
- Home automation – connect to Home Assistant or smart devices
- Email monitoring – get alerts for important messages
- Custom skills – write your own tools for the AI to use
The best part? Your assistant learns your context over time. It remembers past conversations, knows your preferences, and gets more useful the longer you use it.
Final Thoughts
Setting this up took an evening, and I’ve been using it daily since. It’s become genuinely useful, not just a novelty. The AI handles tasks I’d otherwise forget, reminds me of commitments, and serves as an always-available assistant.
My assistant (running Claude Opus via API key) checks my calendar during periodic heartbeats, reminds me of upcoming events, drafts emails, and maintains notes across sessions. It remembers context from previous conversations: who I mentioned, what projects I’m working on, preferences I’ve shared. It’s the kind of contextual help that generic chatbots can’t provide.
If you’re comfortable with basic terminal commands, you can do this. The tools have matured to the point where “personal AI assistant” isn’t science fiction. It’s a weekend project that someone else already built for you.