The OpenClaw 30-minute setup guide.
A calm, Raspberry Pi + OpenCode walk-through — no Ollama. Written by Lisa @ SnerdSystems for people who do not want a lecture about Linux.
IntroBefore we start
OpenClaw is useful, but setup can be fussy. This guide is for people who do not want a lecture about Linux. You are going to copy, paste, check a few things, and stop when the screen says it worked.
You have two good beginner paths:
| Path | Pick this if… |
|---|---|
| VPS | You want OpenClaw online all the time with the least hardware drama. |
| Raspberry Pi | You want a little local AI lab at home and you are okay with slower results. |
This version uses OpenCode for local agent work. It does not use Ollama because Ollama can be heavier than we want on a Raspberry Pi.
A Raspberry Pi can run small local models. It will not feel like Claude, ChatGPT, or Gemini. Think small helpful assistant for simple tasks, not genius in a lunchbox.
KitWhat you need
The easiest setup looks like:
- Raspberry Pi 5 with 8GB RAM
- Official power supply
- Case with cooling
- SSD storage if possible
- Raspberry Pi OS 64-bit
- Ethernet or reliable Wi-Fi
- A laptop/desktop to SSH into the Pi
If you only have a Pi 4 with 8GB RAM, you can experiment, but expect more waiting.
Step 1Prepare the Pi
Translation: we’re just going to update the Pi and give it a little extra memory to breathe. You don’t have to understand every line — just paste it in.
Open a terminal on the Pi, or SSH in from your laptop.
Update the system
sudo apt update sudo apt upgrade -y sudo reboot
After it reboots, reconnect. Then install basic tools:
sudo apt install -y git curl build-essential cmake pkg-config
Add some breathing room (swap)
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Check memory to make sure swap is on:
free -h
Step 2Install OpenCode
OpenCode is a friendly AI helper you run in the terminal. Think of it as your assistant who lives in the Pi.
curl -fsSL https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | bash
Then check it installed:
opencode --help
OpenCode is installed. Nice. Move on.
Step 3Pick a model provider
A model provider is just “who the AI actually is.” We’re starting with a cloud one because it’s easier to tell what’s working.
Fast beginner plan:
Use OpenCode with a cloud model first.
Add local Raspberry Pi models second.
Why? Because if both OpenClaw and the local model are broken at the same time, it’s harder to know what failed. One thing at a time.
Use whatever provider you already have. OpenCode supports many, and it can also use local models through a custom provider (we’ll set that up in a minute).
Step 4Install a lightweight local model server
This sets up the part that actually runs a tiny AI model on your Pi. We use llama.cpp because it’s lighter than Ollama and the Pi will thank you.
Download and build llama.cpp
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build --config Release -j 4
Make a folder for your models
mkdir -p ~/models
Download a small GGUF model from Hugging Face. For a Pi, start tiny: 0.5B to 1.5B parameters, Q4 quantized GGUF. Avoid giant 7B/14B models at first. Put the .gguf file in ~/models/.
Start the local server
cd ~/llama.cpp
./build/bin/llama-server \
-m ~/models/YOUR_MODEL_FILE.gguf \
--host 127.0.0.1 \
--port 8080 \
-c 2048
Leave that terminal open. In a second terminal window, test it:
curl http://127.0.0.1:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "local-pi", "messages": [ {"role": "user", "content": "Say hello in one short sentence."} ] }'
If it answers, your Pi is serving a local model. That’s the hard part. Really.
Step 5Point OpenCode at the local server
We’re telling OpenCode: “hey, your AI lives at this address on this Pi.” That’s it.
mkdir -p ~/.config/opencode nano ~/.config/opencode/opencode.json
Paste this in and save (in nano, that’s Ctrl+O, Enter, then Ctrl+X):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"local-pi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Local Raspberry Pi",
"options": {
"baseURL": "http://127.0.0.1:8080/v1"
},
"models": {
"local-pi": {
"name": "Local Pi Model"
}
}
}
},
"model": "local-pi/local-pi"
}
Start OpenCode:
opencode
Ask something small:
write a 3-line checklist for testing a Raspberry Pi service
That is normal — you are running AI on a tiny computer. If it crashes, use a smaller model or shorter context. That’s almost always the fix.
Step 6Install OpenClaw
Now we install OpenClaw itself — the control room that uses all of this.
If you are installing OpenClaw on the same Pi, keep expectations modest.
curl -fsSL https://openclaw.ai/install.sh | bash
Then run the doctor to check everything is okay:
openclaw doctor
If everything is green, open the OpenClaw web page using the address shown by the installer.
Step 7Connect a real AI provider first
Before connecting your shiny new Pi model, let’s make sure OpenClaw itself works. Using a cloud model is like plugging in a known-working lamp to check the outlet.
For your first OpenClaw test, use one cloud provider first:
OpenAI
Gemini
Claude
Another provider OpenClaw supports
After OpenClaw works, add the local Pi endpoint as an experiment if your version of OpenClaw supports a custom OpenAI-compatible provider:
Base URL: http://127.0.0.1:8080/v1 API key: anything-local Model: local-pi
If OpenClaw is on a different machine than the Pi, replace
127.0.0.1 with the Pi’s local network IP, and bind
llama-server to your LAN:
--host 0.0.0.0
Only do this on a private home network. Do not put the local model server on the public internet. If you want help locking it down safely, email us — seriously, that’s the kind of question we love.
Step 8Connect Telegram
Last bit: give OpenClaw a way to talk to you. Telegram is the easiest.
In Telegram:
- Search for
@BotFather. - Send
/newbot. - Copy the token it gives you.
In OpenClaw:
- Go to Channels.
- Add Telegram.
- Paste the token.
- Send your bot a test message.
If it replies, celebrate. That counts as done.
Fix itIf something breaks
This is normal. Here are the usual ones:
The Pi is painfully slow
Use a smaller model, lower context, SSD storage, and active cooling. A Pi is not a cloud GPU. That is a feature, not a bug — you are meeting the hardware where it lives.
The model server crashes
Use a smaller GGUF file. Start with 0.5B to 1.5B before trying anything bigger. If 1.5B crashes, drop to 0.5B. Small + working beats big + broken.
OpenCode cannot see the local model
Check that llama-server is still running in its terminal window. Run the curl test again. If that fails, OpenCode will fail too — fix the server first.
OpenClaw works with cloud models but not the local Pi model
That means OpenClaw is okay and the custom local endpoint is the issue. Keep cloud models as the working fallback while you debug the local path. Do not tear everything down — you’re closer than you think.
Everything is confusing now
Stop. Write down the last command that worked. That is your checkpoint. Come back to it tomorrow, or email us. Sleep is an underrated troubleshooting tool.
ShortEasiest setup, if you just want it to work
Run OpenClaw on a VPS.
Run OpenCode on your laptop or Pi.
Run tiny local models only for experiments.
Use cloud models for serious OpenClaw tasks.
Move one piece at a time.
That is not failure. That is how you keep the machine from becoming soup.
SnerdSystems helps with OpenClaw, OpenCode, Raspberry Pi experiments, VPS setup, and the part where the instructions assume you already know twelve other things.
We will not rest until you understand.
Stuck, or bored of DIY?
We’ll do the fussy parts with you on a screen share and leave you with notes you can read later.