Raspberry Pi
OpenClaw on Raspberry Pi (budget self-hosted setup)
Goal
Run a persistent, always-on OpenClaw Gateway on a Raspberry Pi for ~$35-80 one-time cost (no monthly fees).
Perfect for:
- 24/7 personal AI assistant
- Home automation hub
- Low-power, always-available Telegram/WhatsApp bot
Hardware Requirements
| Pi Model | RAM | Works? | Notes |
| - |
| Pi 5 | 4GB/8GB | β Best | Fastest, recommended |
| Pi 4 | 4GB | β Good | Sweet spot for most users |
| Pi 4 | 2GB | β OK | Works, add swap |
| Pi 4 | 1GB | β οΈ Tight | Possible with swap, minimal config |
| Pi 3B+ | 1GB | β οΈ Slow | Works but sluggish |
| Pi Zero 2 W | 512MB | β | Not recommended |
Minimum specs: 1GB RAM, 1 core, 500MB disk
Recommended: 2GB+ RAM, 64-bit OS, 16GB+ SD card (or USB SSD)
What You'll Need
- Raspberry Pi 4 or 5 (2GB+ recommended)
- MicroSD card (16GB+) or USB SSD (better performance)
- Power supply (official Pi PSU recommended)
- Network connection (Ethernet or WiFi)
- ~30 minutes
1) Flash the OS
Use Raspberry Pi OS Lite (64-bit) β no desktop needed for a headless server.
1. Download ''Raspberry Pi Imager''
2. Choose OS: Raspberry Pi OS Lite (64-bit)
3. Click the gear icon (βοΈ) to pre-configure:
- Set hostname: ''gateway-host''
- Enable SSH
- Set username/password
- Configure WiFi (if not using Ethernet)
4. Flash to your SD card / USB drive
5. Insert and boot the Pi
2) Connect via SSH
ssh user@gateway-host ssh [email protected]
3) System Setup
sudo apt update && sudo apt upgrade -y sudo apt install -y git curl build-essential sudo timedatectl set-timezone America/Chicago # Change to your timezone
4) Install Node.js 22 (ARM64)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs node --version # Should show v22.x.x npm --version
5) Add Swap (Important for 2GB or less)
Swap prevents out-of-memory crashes:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
6) Install OpenClaw
Option A: Standard Install (Recommended)
curl -fsSL https://openclaw.ai/install.sh | bash
Option B: Hackable Install (For tinkering)
git clone https://github.com/openclaw/openclaw.git cd openclaw npm install npm run build npm link
The hackable install gives you direct access to logs and code β useful for debugging ARM-specific issues.
7) Run Onboarding
openclaw onboard --install-daemon
Follow the wizard:
1. Gateway mode: Local
2. Auth: API keys recommended (OAuth can be finicky on headless Pi)
3. Channels: Telegram is easiest to start with
4. Daemon: Yes (systemd)
8) Verify Installation
openclaw status sudo systemctl status openclaw journalctl -u openclaw -f
9) Access the Dashboard
Since the Pi is headless, use an SSH tunnel:
ssh -L 18789:localhost:18789 user@gateway-host open http://localhost:18789
Or use Tailscale for always-on access:
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up openclaw config set gateway.bind tailnet sudo systemctl restart openclaw
ARM-Specific Notes
Binary Compatibility
Most OpenClaw features work on ARM64, but some external binaries may need ARM builds:
| Tool | ARM64 Status | Notes |
| | |
Recommended Model Setup
Since the Pi is just the Gateway (models run in the cloud), use API-based models:
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-sonnet-4-20250514",
"fallbacks": ["openai/gpt-4o-mini"]
}
}
}
}Don't try to run local LLMs on a Pi β even small models are too slow. Let Claude/GPT do the heavy lifting.
Troubleshooting
Out of Memory (OOM)
free -h
Slow Performance
- Use USB SSD instead of SD card
- Disable unused services: ''sudo systemctl disable cups bluetooth avahi-daemon''
- Check CPU throttling: ''vcgencmd get_throttled'' (should return ''0x0'')
Service Won't Start
journalctl -u openclaw --no-pager -n 100 cd ~/openclaw # if using hackable install npm run build sudo systemctl restart openclaw
ARM Binary Issues
If a skill fails with "exec format error":
1. Check if the binary has an ARM64 build
2. Try building from source
3. Or use a Docker container with ARM support
WiFi Drops
For headless Pis on WiFi:
sudo iwconfig wlan0 power off echo 'wireless-power off' | sudo tee -a /etc/network/interfaces
See Also
- ''Linux guide'' β general Linux setup
- ''DigitalOcean guide'' β cloud alternative
- ''Hetzner guide'' β Docker setup
- ''Tailscale'' β remote access
- ''Nodes'' β pair your laptop/phone with the Pi gateway