- C 59.8%
- PHP 13.3%
- JavaScript 10.8%
- CSS 6.8%
- Python 6.6%
- Other 2.7%
| assets | ||
| pet | ||
| php | ||
| py | ||
| retropc | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| start | ||
| terminal.sh | ||
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.
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;
unbufferuit het pakketexpect;- toegang tot een Ollama API;
ffplayvoor 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
- Kies je bestaande project in de keuzelijst.
- Prompt wat je wilt laten maken of aanpassen.
- Vink eventueel extra instructies aan.
- Kies Nieuwe sessie als De Programmeur niet op de vorige sessie moet voortbouwen.
- Klik op Programmeren!.
- 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.


