Een programmer-agent met undo-mogelijkheid.
  • C 59.8%
  • PHP 13.3%
  • JavaScript 10.8%
  • CSS 6.8%
  • Python 6.6%
  • Other 2.7%
Find a file
2026-08-21 15:49:34 +00:00
assets Assets 2026-08-21 17:39:50 +02:00
pet Terminalcommando's synchroon uitgevoerd tijdens pet crush 2026-08-21 17:15:18 +02:00
php Schildereijen 2026-08-21 17:41:16 +02:00
py Implementatie interactieve zalenlijst en dynamische dataweergave 2026-08-20 15:09:55 +02:00
retropc Terminalcommando's synchroon uitgevoerd tijdens pet crush 2026-08-21 17:15:18 +02:00
.gitignore Schildereijen 2026-08-21 17:41:16 +02:00
LICENSE Implementeer ping herstellogica voor GPU-server 2026-08-19 04:28:25 +02:00
README.md README.md bijwerken 2026-08-21 15:49:34 +00:00
start Terminalcommando's synchroon uitgevoerd tijdens pet crush 2026-08-21 17:15:18 +02:00
terminal.sh Terminalcommando's synchroon uitgevoerd tijdens pet crush 2026-08-21 17:15:18 +02:00

De Programmeur

De Programmeur is een lokale webinterface voor Crush. Je kiest een van je bestaande projecten, typt wat je wilt dat hij gaat programmeren en volgt live wat de coding agent doet. Je kunt na afloop zien wat hij heeft geprogrammeerd en in geval van nood teruggaan naar de vorige versie (of naar een nog oudere versie).

De app is gemaakt voor Linux Mint en werkt met lokale of zelf gehoste Ollama-modellen. Vraag mij gerust om hulp bij installatie onder Mac of Windows.

Schermafdruk

Mogelijkheden

  • Projecten kiezen uit één of meer ingestelde hoofdmappen;
  • Prompts uitbreiden met vaste extra instructies zoals bijvoorbeld 'Geef alleen antwoord op de vraag' of 'Maak alleen UI, geen functionaliteit ';
  • Een bestaande sessie voortzetten of een nieuwe sessie starten;
  • De uitvoer van de codign agent live volgen in de devlog;
  • Gewijzigde bestanden en recente Git-commits bekijken met een samenvatting van wat er is geprogrammeerd en je prompts;
  • Een commit met één handeling ongedaan maken;
  • Automatisch een Nederlandstalig commitbericht laten maken door lokale AI;
  • Release-informatie laten samenstellen uit commits en Git notes sinds de laatste release (tag);
  • Wijzigingen bekijken, naar Git pushen;
  • Het geselecteerde project starten (uitvoeren) - of het nu een web-app of een desktop-app is, dat maakt niet uit;
  • De status van je Ollama-server en actief geladen modellen tonen;
  • Tijdens een programmeeropdracht een verplaatsbare desktop-pet tonen - die een live typende programmeur voorstelt.

Speciale features

Museum van Mislukte Pogingen

Coding agents maken fouten. Maar wel minder dan je denkt. Alle gemaakte fouten slaat De Programmeur op in het Museum van Mislukte Pogingen. Dit is een pagina (onderdeel van De Programmeur) die met AI alle klachten van de mens (vanuit prompts, git commits) analyseert en aangeeft waar de agent ontspoorde met als doel om er als mens van te leren.

Fysieke progammeur

De Programmeur kan een fysiek apparaat (via Philips Hue bijvoorbeeld maar mag van alles zijn) aansturen als hij bezig is. Ik gebruik een kleine ge-3d-printte retro terminal die met The Matrix-achtige patronen elke keer bezig blijft zolang de De Programmeur op de achtergrond (of op de voorgrond) bezig is.

Vereisten

  • Linux met xdg-open;
  • PHP met de cURL-extensie;
  • Git;
  • Python 3;
  • Crush;
  • unbuffer uit het pakket expect;
  • toegang tot een Ollama API;
  • ffplay voor het gereed-geluid;
  • voor de desktop-pet: PySide6 en Pillow.

Installeer de Linux-pakketten op Ubuntu of Linux Mint bijvoorbeeld met:

sudo apt install php-cli php-curl git python3 python3-venv expect ffmpeg

Maak voor de Python-afhankelijkheden bij voorkeur een virtuele omgeving:

python3 -m venv .venv
source .venv/bin/activate
pip install pillow pyside6

Installeer Crush volgens de officiële installatie-instructies.

Configuratie

Kopieer eerst het voorbeeldbestand:

cp php/.env-example php/.env

Vul daarna php/.env in:

OLLAMA_API_URL=https://jouw-ollama-server/ollama/api
OLLAMA_MODEL=qwen3.6:27b
OLLAMA_MODEL_COMMIT=gemma4:e2b
OLLAMA_USER=gebruiker
OLLAMA_WACHTWOORD=wachtwoord
PROJFOLDERS=/home/gebruiker/Projecten|/home/gebruiker/AndereProjectmap
CRUSH_MODEL=ollama/qwen3.6:27b

De instellingen hebben de volgende functie:

Instelling Gebruik
OLLAMA_API_URL Basis-URL van de Ollama API.
OLLAMA_MODEL Model voor release-informatie.
OLLAMA_MODEL_COMMIT Snel model voor commitberichten en kleine Crush-taken.
OLLAMA_USER Gebruikersnaam voor HTTP Basic Authentication.
OLLAMA_WACHTWOORD Wachtwoord voor HTTP Basic Authentication.
PROJFOLDERS Hoofdmappen met projecten, gescheiden door |. Alleen submappen met een .crush-map verschijnen in de keuzelijst.
CRUSH_MODEL Model waarmee Crush programmeert. Gebruik crush models om geldige namen te bekijken.

Je kunt deze waarden later ook via Instellingen in de webinterface aanpassen.

Starten

Start De Programmeur vanuit de projectmap:

./start

De browser opent automatisch op http://localhost:8076. Laat het terminalvenster open zolang je de app gebruikt. Stop de PHP-server met Ctrl+C.

Gebruik

  1. Kies je bestaande project in de keuzelijst.
  2. Prompt wat je wilt laten maken of aanpassen.
  3. Vink eventueel extra instructies aan.
  4. Kies Nieuwe sessie als De Programmeur niet op de vorige sessie moet voortbouwen.
  5. Klik op Programmeren!.
  6. Volg de voortgang in de devlog en controleer de gewijzigde bestanden en nieuwe commit.

De Programmeur start Crush buiten het HTTP-request om, zodat de interface beschikbaar blijft terwijl de opdracht draait. Als bestanden zijn gewijzigd, wordt na afloop een commitbericht via Ollama gemaakt, de wijziging gecommit en de prompt als Git note opgeslagen. Tijdens het programmeren zie je dat hij bezig is aan de titel van de browsertab (toont een zandloper) of aan de pet natuurlijk.

Projectstructuur

programmeur/
 php/                 webinterface en PHP-API
  api/                acties voor Crush, Git, Ollama en projectscripts
  client/             JavaScript, CSS en geluiden
 py/                  helpers voor commit- en releaseberichten
 pet/                 geanimeerde PySide6-desktop-pet
 assets/              schermafbeeldingen voor documentatie
 start                start de lokale PHP-server en opent de browser
 LICENSE              Marcel Commons License

Veiligheid

De Programmeur is bedoeld als lokale ontwikkeltool. De PHP-server wordt zonder authenticatie op localhost gestart, maar verschillende API-acties kunnen wel opdrachten uitvoeren, bestanden openen, Git-history wijzigen en configuratie opslaan. Publiceer deze webinterface daarom niet rechtstreeks op een netwerk of het internet.

Bewaar php/.env buiten versiebeheer. Het bestand kan toegangsgegevens voor de Ollama-server bevatten en staat daarom in .gitignore.

Download

Kant-en-klare versies zijn beschikbaar op de downloadpagina.

Licentie

Dit project valt onder de Marcel Commons License (MCL) v0.1. Zie LICENSE voor de volledige voorwaarden.

Download

Vanaf de downloadpagina