A 24/7 AI Assistant on a Raspberry Pi, Reachable from Telegram
A 24/7 AI Assistant on a Raspberry Pi, Reachable from Telegram
I wanted a personal AI assistant that was always on, accessible from my phone, and lived on hardware I owned. Cloud chatbots are great, but they don’t have a persistent home, persistent memory, or the ability to quietly run things in the background while I’m doing something else. So I built one.
The result: a Raspberry Pi 5 sitting on my desk, running OpenClaw with Claude as the model, reachable from anywhere via Telegram. I message it like a friend, and it answers — whether I’m at my laptop, walking around, or away from home.
Here’s how it came together.
The hardware
I started with a Raspberry Pi 5 kit and a SanDisk High Endurance microSD card. High endurance matters here: this thing is going to be powered on 24/7, writing logs, swapping memory, and serving a small but constant workload. A standard consumer SD card would wear out faster than I’d like.
Assembly was straightforward — slot the Pi into the case, attach the cooler, plug in power. Nothing exotic.
The OS
I used the official Raspberry Pi Imager to flash Raspberry Pi OS onto the SD card. The imager has a handy advanced-settings panel where you can preconfigure the hostname, username, Wi-Fi, and enable SSH before the Pi ever boots. That meant the very first boot already had network and SSH ready — no monitor or keyboard needed.
Remote access with Tailscale
For remote access I went with Tailscale instead of opening ports on my router. Tailscale puts the Pi on a private mesh network (a “tailnet”) that I can reach from my laptop or phone as if it were on my LAN, regardless of where I am.
The advantages over port forwarding:
- No exposed services on the public internet.
- Works the same at home, on coffee-shop Wi-Fi, or on cellular.
- Authentication is tied to my identity, not an IP address.
Install was a one-liner on the Pi, then tailscale up and a login from the browser. After that, ssh andrew@andypi from anywhere just works.
The brain: OpenClaw + Claude
The Pi is the body. The brain is OpenClaw, an open-source agent runtime that handles the boring-but-important parts: messaging channels, sessions, memory, scheduled tasks, tool use. I plugged Claude in as the underlying model, so the assistant inherits Claude’s reasoning and writing while OpenClaw handles persistence and connectivity.
A few things I like about this split:
- The assistant has a workspace. A real directory on the Pi with notes, memory files, and project folders. It can read, write, and organize its own context across sessions.
- It can use tools. Run shell commands, read files, browse the web, search the docs — whatever I let it touch.
- It persists. Each session can pick up where the last one left off via memory files. It’s not amnesiac the way a fresh chat is.
The interface: Telegram
The last piece was making it actually usable. Sitting at my laptop is fine, but the point of an always-on assistant is that I can reach it from anywhere. OpenClaw ships with a Telegram channel, so I created a bot via BotFather, dropped the token into the OpenClaw config, and pointed the channel at my session.
Now I message the bot from Telegram and it routes straight to the assistant on the Pi. Replies come back in the same chat. I can ask it questions, kick off tasks, have it remind me of things, or just talk.
What it actually does
Day to day, it’s a mix of:
- Quick questions I’d otherwise google.
- Coding help — it can read my repos on the Pi and suggest changes directly.
- Notes and journaling — it keeps daily memory files and a curated long-term memory.
- Background tasks — scheduled checks, reminders, occasional proactive nudges.
It’s not magic. It’s a Pi, an SD card, a VPN, an agent runtime, and a model. But the combination feels surprisingly close to “an assistant of my own” — and that, to me, was worth building.
What’s next
A few directions I’m exploring:
- Wiring it into more of my stuff (calendar, email, smart home).
- More skills — small modules that teach it how to do specific tasks well.
- Possibly a second channel (WhatsApp or Signal) so I’m not locked into Telegram.
If you’ve been curious about self-hosting an AI assistant, I’d say the bar is lower than it looks. A Pi, a good SD card, Tailscale, OpenClaw, and a model API key will get you most of the way there.