---
title: "Ik zette een 24/7 assistent op een Raspberry Pi"
description: "Een build-log over OpenClaw op een Raspberry Pi 5: Slack als interface, GPT-5.5 als model, en de Pi als always-on agent-laag naast de DGX Spark."
canonical: "https://djangodevreng.nl/blog/openclaw-op-raspberry-pi/"
pubDate: "2026-05-01T00:00:00.000Z"
updatedDate: "2026-05-05T00:00:00.000Z"
category: "on-prem"
---
Ik wilde geen betere chatbot. Ik wilde een agent die uit zichzelf werk kan oppakken: het internet op, tickets lezen, een repo induiken, een eerste voorstel voor code-wijzigingen maken en daarna terugrapporteren waar mijn team toch al werkt.

De ingang moest Slack zijn. Daar zitten de vragen, threads, bestanden en half afgemaakte ideeën. De agent moest tools kunnen gebruiken, bestanden kunnen lezen, branches kunnen klaarzetten en blijven draaien als mijn laptop dichtgaat.

Daarom draait er nu een Raspberry Pi 5 met 4 GB RAM in mijn netwerk. Daarop draait [OpenClaw](https://openclaw.ai/). Slack ervoor, GPT-5.5 erachter, [Tailscale](https://tailscale.com/) als toegangspoort wanneer ik niet thuis ben.

Dat klinkt groter dan het is. De Pi draait geen lokaal taalmodel. OpenClaw gebruikt de Pi als always-on Gateway: de laag die Slack-berichten ontvangt, sessies en workspace-context beheert, een agent-run start, tools beschikbaar maakt en het antwoord weer terugstuurt naar dezelfde thread. Het model draait in deze setup via OpenAI.

Dat onderscheid is belangrijk. Voor volledig lokale inference gebruik ik [de DGX Spark](/dgx-spark/), en daar schreef ik eerder over in [de quantization-post](/blog/quantization-lokale-llms/). Deze Pi is de agent-laag ernaast: altijd aan, bereikbaar in Slack, dicht bij mijn bestanden en workflows.

## Het ding dat ik miste

Ik gebruik al genoeg AI-tools. Claude Code voor bouwen. ChatGPT voor losse vragen. Voor klantprojecten werk ik met model-API’s of lokale modellen, afhankelijk van wat de data en infrastructuur toelaten.

De ontbrekende laag zat tussen die tools in: een agent die werk ziet binnenkomen en alvast begint. In Slack kan dat klein starten. Ik typ een rommelige opdracht, de agent leest de repo, pakt de juiste tone-of-voice-regels erbij en komt terug met iets dat ik kan beoordelen.

Publiceren blijft handwerk. Vertrouwen ook. Het eerste voorwerk mag wel automatisch gebeuren.

De richting is groter dan drafts schrijven. Ik wil uiteindelijk een ticket kunnen aanwijzen en zeggen: zoek uit wat hier nodig is. De agent leest de context, checkt documentatie, kijkt in de codebase, stelt een aanpak voor en zet eventueel alvast een branch klaar.

Dat werk blijft vaak liggen omdat het nergens netjes past. Te klein voor een sprint. Te groot om “even tussendoor” te doen. Voor je het weet staat zo’n ticket een week later nog open met dezelfde drie vage opmerkingen eronder.

## Wat er op de Pi draait

De basis is klein:

- Raspberry Pi 5, 4 GB RAM
- OpenClaw Gateway lokaal op de Pi
- OpenAI GPT-5.5 als model in deze setup
- Slack als interface
- Tailscale voor remote toegang

De Pi is hier vooral beschikbaar. Dat is zijn talent.

OpenClaw knoopt de lagen aan elkaar: channel, sessie, agent-runtime, model-provider en tools. Een Slack-bericht komt binnen via de channel-laag. OpenClaw zet daar een agent-turn van klaar, met de juiste context en tools. De runtime voert die turn uit met het gekozen model. Daarna bezorgt OpenClaw het antwoord weer terug via Slack.

Op die manier kan dezelfde agent files lezen, shell-commands draaien, webpagina’s ophalen, git-status bekijken of een PR voorbereiden, afhankelijk van welke tools je toestaat. De Pi is dus geen mini-GPU. Hij is de lokale controle-laag.

Tailscale houdt het praktisch. Ik kan bij de Pi als ik onderweg ben. Een publieke poort openzetten voor een build-log zou wat veel eer zijn.

## Slack als werkvloer

Slack was de makkelijkste keuze omdat ik er al de hele dag in zit. Mijn bedrijven hebben workspaces, channels, threads, bestanden en notificaties. Een extra dashboard zou vooral extra tabblad-stof verzamelen.

Voor mij is dit de kern: de agent moet beschikbaar zijn waar het team werkt. Als hij iets uitzoekt op basis van een ticket, wil ik het antwoord terug in dezelfde flow. De analyse hoort naast de vraag, in dezelfde thread.

OpenClaw ondersteunt meer ingangen dan Slack. Het werkt ook via onder meer Telegram, Microsoft Teams, Google Chat, WhatsApp, Discord en iMessage. Slack is mijn ingang. Het bredere idee is agents op bestaande communicatiekanalen, met tools en geheugen erachter.

## De installatie was minder spannend dan gehoopt

De installatie was minder dramatisch dan ik had verwacht. Dat is prettig voor mij en slecht voor het genre “build-log met vuur”.

De meeste tijd zat in lezen. OpenClaw heeft veel documentatie, en je moet even uitzoeken welk deel bij jouw setup hoort. Slack, Gateway, agents, runtimes, channels, tools: het zijn losse lagen die uiteindelijk samen één assistent vormen.

Slack instellen kostte ook aandacht. Je bepaalt welke gebruikers de bot mogen DM’en, in welke channels hij mag praten en of hij in groepschannels op elk bericht reageert of alleen bij een @mention. Dat zijn geen details voor later. Je moet die regels vooraf kiezen en met je team delen, anders snapt niemand wanneer de agent wel of niet mee gaat doen.

Na ongeveer twee uur werkte het. Ik typte in Slack, de Pi ving het bericht op, OpenClaw startte een run, GPT-5.5 dacht mee en het antwoord kwam terug in dezelfde thread.

Een hoop plumbing voor een tekstbericht. Alleen kan dat tekstbericht nu wel tools gebruiken.

## Eerste test: deze site

De eerste plek waar ik dit voor gebruik is djangodevreng.nl.

De inhoud moet uit echt werk komen: wat we bouwden, wat brak, welke keuzes bleven staan, waar een tool mooi leek tot hij onder load begon te zweten. De agent mag helpen met vorm en uitvoering.

Zodra die ruwe input er is, kan hij veel doen. Een dump structureren. Een eerste outline maken. Een draft herschrijven in mijn toon. Marketing-taal eruit halen. Checken of een post klinkt alsof hij uit een generieke LinkedIn-carrousel is gevallen.

De workflow voor deze site begint meestal rommelig. Ik dump in Slack wat ik wil zeggen: een paar observaties, een half idee, soms alleen feedback op een bestaande post. De agent zoekt daarna de juiste repo erbij, leest de relevante files en pakt de schrijfgids uit de workspace.

Daarna vraag ik hem om een concrete wijziging: “herschrijf de intro”, “haal de marketing-taal eruit” of “maak deze technische uitleg preciezer”. Hoe scherper de opdracht, hoe bruikbaarder de diff. Hij past de markdown aan op een branch, draait de checks en pusht de wijziging naar een PR.

Daar begint mijn deel weer. Ik lees de diff, geef feedback in Slack en laat hem de volgende ronde verwerken. Pas als de post klopt, merge ik zelf. De agent doet het voorbereidende werk. Ik blijf verantwoordelijk voor wat er live gaat.

Een agent die publiceert zonder dat ik kijk, is geen workflow. Dat is een gokautomaat met commit-rechten.

## Waarom dit anders voelt dan chat

Veel AI-tools voelen alsof je je werk naar een chatvenster moet brengen. Je kopieert context, plakt logs, legt voor de derde keer uit waar het repo-pad staat en hoopt dat het model doet alsof het erbij was.

Deze setup draait dichter op de context. De agent kan zelfstandig beginnen omdat hij de workspace ziet, de branch kent, de regels voor de site kan lezen en weet welke checks gedraaid moeten worden.

Dat maakt hem nog geen autonome developer. Hij schuift vooral het eerste saaie stuk naar voren.

Voor mij is dat de interessante agent-laag: alvast meelezen, een eerste versie maken, aanwijzen waar het wringt. Een junior collega met oneindig geduld, geen agenda en soms een verontrustend vertrouwen in zijn eigen zinnen.

Ik ga hier nog een losse post over schrijven, want OpenClaw verdient eigenlijk meer uitleg dan in deze build-log past. Welke kanalen het ondersteunt. Welke tools je eraan hangt. En vooral: waarom dit interessant wordt.

We schuiven langzaam van AI als sparringpartner naar AI als uitvoerende laag. De afgelopen jaren praatten we vooral met modellen: brainstormen, samenvatten, herschrijven, meedenken. Dat blijft nuttig, maar het echte verschil zit in agents die werk kunnen uitvoeren in bestaande systemen.

Agents nemen het werk van mensen niet één-op-één over. Zo simpel is het niet, gelukkig. De verschuiving zit in workflows: tickets uitzoeken, context verzamelen, drafts voorbereiden, code-wijzigingen voorstellen, checks draaien, terugrapporteren. Werk waar je normaal iemand voor vraagt omdat het tijd kost, terwijl het weinig diepe menselijke oordeelskracht nodig heeft.

## Volgende stap: tickets en MCP

De volgende stap is [MCP](https://modelcontextprotocol.io/). Ik wil tools netjes aan deze workflow hangen, te beginnen met Linear.

Het scenario is simpel: er komt een ticket binnen, de agent leest de relevante repo-context, zoekt de waarschijnlijke files, schrijft een korte analyse en komt terug met een voorstel of een lijst vragen.

Autonoom mergen sla ik over. Eerst wil ik weten waar de grens ligt tussen nuttige voorbereiding en gevaarlijke dadendrang.

Daarna komen GitHub, repo-context en misschien een lokale knowledge base. Sommige context hoort gewoon beschikbaar te zijn, zonder dat ik hem steeds opnieuw in een prompt plak.

## Workflow voor workflow

Deze Pi-setup is klein. Dat is precies waarom ik hem prettig vind.

Klein genoeg om te begrijpen. Echt genoeg om iets van te leren. Goedkoop genoeg om altijd aan te laten. Lokaal genoeg om dichtbij mijn werk te staan, zonder te doen alsof het model zelf lokaal draait.

Voor productie-AI bij klanten is dit hooguit één laag in de architectuur. Voor mijn eigen workflow werkt hij al prima: Slack als ingang, OpenClaw als Gateway, OpenAI als model-provider, GitHub als plek waar werk klaar komt te staan.

De komende tijd ga ik hier lekker mee rommelen. Eerst deze site. Daarna tickets. Daarna MCP-tools. Daarna waarschijnlijk iets waarvan ik nu nog denk dat het te specifiek is om te automatiseren.

Dat is de interessante route: workflow voor workflow vervangen door een agent die voorwerk doet, context verzamelt en voorstellen klaarzet. Stap voor stap bouw ik mijn OpenClaw-setup uit. Gewoon als praktische assistent die steeds iets meer werk uit mijn handen haalt.

En als het stukloopt, staat hij dichtbij genoeg om de stekker eruit te trekken.