Thrijith's blog

Just another Software Developer

Running Your Own AI Assistant on a Raspberry Pi: A Complete Setup Guide


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:

ComponentWhat I usedCost
Raspberry Pi 48GB model~$75
Power supplyOfficial USB-C~$15
MicroSD card64GB (minimum 32GB)~$10

Minimum total: ~$100

Optional:

ComponentWhyCost
CaseDust protection, tidier setup~$5-15
Heatsinks/fanFor 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

ProviderFree TierCatch
Google Gemini1,500 requests/dayVery generous, great for personal use
GroqFast inference, free tierRate limited but usable
OpenRouterSome models freeLimited selection
Local models (Ollama)Unlimited, truly freeSlower 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

ProviderCostWhy pay?
Anthropic API~$5-20/monthClaude is excellent at tool use and coding
OpenAI API~$5-20/monthGPT-4o, good all-rounder
Google Gemini APIPay-per-use after free tierUpgrade 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:

  1. Entering your Anthropic API key
  2. Choosing a messaging channel (Telegram is easiest to start)
  3. Setting up authentication

Step 3: Connecting Telegram

Telegram is the simplest way to start chatting with your assistant:

  1. Message @BotFather on Telegram
  2. Create a new bot with /newbot
  3. Copy the bot token
  4. 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, not 0.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:

ItemOne-timeMonthly
Raspberry Pi + essentials~$100
Electricity~$0.50
AI (Gemini free tier)$0
Cloudflare TunnelFree
TelegramFree

Total: ~$100 upfront + $0.50/month. Yes, actually free after hardware.

The premium route :

ItemOne-timeMonthly
Raspberry Pi + essentials~$100
Electricity~$0.50
Claude API~$10-20
Cloudflare TunnelFree
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.