CLI tools zijn de shit (met Claude Code)
GUIs zijn voor mensen, CLIs zijn voor iedereen. Met 12+ CLI tools en Claude Code heb ik een ecosysteem waar elke nieuwe integratie een kwestie van uren is. De Unix-filosofie is vijftig jaar oud en relevanter dan ooit.
Elke developer kent het gevoel. Je hebt een GUI open, je klikt door menus, je kopieert data van het ene scherm naar het andere. Het werkt. Maar het schaalt niet. En het is precies het soort werk dat een AI agent niet kan doen, want die heeft geen muis.
CLI tools lossen dit op. Ze zijn de brug tussen AI en de buitenwereld. In deze blog leg ik uit waarom ik een hele suite CLI tools heb gebouwd, hoe simpel ze in elkaar zitten, en waarom dit de meest schaalbare manier is om AI met externe services te laten praten.
GUI's zijn voor mensen, CLI's zijn voor iedereen
Een grafische interface is ontworpen voor menselijke interactie. Knoppen, dropdowns, drag-and-drop. Prima als jij de gebruiker bent. Maar zodra je een AI agent wilt laten samenwerken met Sentry, Linear, of Outlook, loop je vast. Een agent kan niet klikken.
CLI tools werken anders. Input erin, output eruit. Geen visuele laag, geen browser, geen muis. Puur tekst. En tekst is precies wat een LLM begrijpt.
Dit is geen nieuwe observatie. De Unix-filosofie bestaat al vijftig jaar: schrijf programma's die een ding doen en dat goed doen. Maak ze composable via pipes. Laat tekst de universele interface zijn.
Wat wel nieuw is: AI agents kunnen die filosofie nu direct gebruiken. Claude Code, OpenAI Codex, en andere AI coding agents hebben toegang tot een shell. Ze kunnen elk commando uitvoeren dat jij ook kunt uitvoeren. Dat betekent dat elke CLI tool automatisch een AI tool is.
CLI tools zijn gewoon API's
In James, mijn AI assistant framework, heb ik een groeiende collectie CLI tools gebouwd voor alles van issue tracking en error monitoring tot mail, agenda, en web scraping. Maar het principe is altijd hetzelfde: elke tool wrapt een API.
Denk er zo over na. Een REST API verwacht gestructureerde input (JSON, query parameters) en geeft gestructureerde output terug. Een CLI tool doet exact hetzelfde, maar dan via argumenten en stdout. tool issues --project sia --status open is functioneel identiek aan GET /issues?project=sia&status=open. Het verschil is dat een CLI tool direct werkt in de terminal, zonder HTTP client, zonder headers, zonder token management.
Dat maakt CLI tools ideaal voor AI agents. Claude Code begrijpt tekst. Een CLI tool is tekst in, tekst uit. De tool handelt authenticatie af, parst de argumenten, roept de onderliggende API aan, en geeft output terug die Claude direct kan verwerken. Geen SDK nodig, geen library, geen dependencies. Met goede --help output en consistente patronen snapt Claude binnen een zin hoe een tool werkt.
Dit is het verschil met iemand een Swagger spec geven versus een simpel commando. De Swagger spec is compleet maar overweldigend. Het CLI commando is zelfverklarend. En met een paar regels documentatie in je CLAUDE.md weet Claude precies wanneer welke tool te gebruiken.
Hoe een CLI tool eruitziet
Het mooie van CLI tools is hoe simpel ze zijn. Het patroon is altijd hetzelfde:
- Argumenten parsen (wat wil de gebruiker?)
- API aanroepen (met opgeslagen credentials)
- Output formatteren (JSON of leesbare tekst)
Dat is het. Geen UI framework, geen state management, geen routing. Gewoon een script dat input verwerkt en output geeft.
Neem een error tracking CLI. Het commando errors list --project myapp --unresolved haalt alle onopgeloste errors op. Het commando errors show 12345 geeft de volledige stacktrace. Simpele subcommando's, voorspelbare output. Elk AI agent framework dat shell access heeft, kan hier direct mee werken.
Dit maakt ze ook makkelijk te bouwen. Een nieuwe integratie toevoegen kost meestal een uur of twee. API docs lezen, authenticatie regelen, drie of vier subcommando's implementeren, klaar. Geen boilerplate, geen framework overhead.
MCP: de bridge tussen CLI en AI
Anthropic's Model Context Protocol (MCP) is ontworpen om AI agents toegang te geven tot externe tools. Je definieert een server, registreert tools, en het model kan ze aanroepen. Het is een elegant systeem.
Maar voor veel use cases is het overkill. Een MCP server draait constant, neemt context in beslag, en voegt overhead toe. Voor mijn situatie, waar ik al CLI tools heb die precies doen wat ik nodig heb, is er een simpeler alternatief.
AI agents met shell access, of dat nu Claude Code, OpenAI Codex, of iets anders is, kunnen CLI tools direct aanroepen. Geen MCP server nodig. Beschrijf de tool in je configuratie, en de agent weet hoe het te gebruiken.
Waar MCP wel zinvol is: voor tools die complexere interactie vereisen. Een lokale zoekengine met meerdere zoekstrategieen en gestructureerde parameters is een goede MCP kandidaat. Voor simpelere tools die gewoon een API wrappen, is een CLI meer dan voldoende.
Concrete voorbeelden
Theorie is leuk, maar het gaat om de praktijk. Hier zijn workflows die dagelijks voorkomen.
Error tracking naar fix naar commit. Ik zeg: "Check de errors voor project X." De agent draait de error tracking CLI, ziet een TypeError, haalt de stacktrace op, leest de relevante code, fixt de bug, draait de tests, en rapporteert wat er gedaan is. Ik review de fix en commit. Wat normaal vijf minuten klikken in een GUI kost, is nu een conversatie van dertig seconden.
Issue tracking doorwerken. Een feature workflow begint met het ophalen van een story via de CLI. De agent leest de requirements, doet research, begint met bouwen. Halverwege update het de status. Na afronding voegt het een comment toe met een samenvatting. Alles via dezelfde CLI, geen browser nodig.
Mail beantwoorden met context. "Wat stuurde die klant vorige week over het project?" De agent zoekt via een mail CLI de relevante berichten, combineert dat met projectcontext, en geeft een samenvatting. Als ik wil reageren, stelt het een antwoord voor dat ik kan goedkeuren.
Website research. "Crawl de documentatie van die nieuwe library." De agent gebruikt een crawl CLI om de site naar markdown te converteren, leest het resultaat, en vat samen wat relevant is. Geen browser openen, geen kopieren en plakken.
Waarom dit schaalt
Het patroon is altijd hetzelfde: nieuwe service, nieuwe CLI tool. De investering per integratie is minimaal, en het rendement is direct.
- Composable. Tools combineren met pipes en scripts.
- Testbaar. Elke CLI tool is onafhankelijk testbaar. Geen complexe integratietests nodig.
- Versionbaar. Het is gewoon code. Git tracked alles. Rollback is een commit terug.
- Overdraagbaar. Een collega kan dezelfde tools gebruiken met eigen credentials. Geen magic, geen vendor lock-in.
- AI-native. Elke tool die werkt in de terminal werkt automatisch met Claude Code. Geen extra aanpassingen nodig.
Vergelijk dit met GUI-gebaseerde workflows. Elke integratie vereist een browser extensie, een Zapier connectie, of een custom MCP server. CLI tools zijn een fractie van die complexiteit.
Begin klein
Je hoeft niet met twaalf tools tegelijk te starten. Pak de service waar je het meeste tijd aan kwijt bent. Bouw een CLI tool die de drie meest voorkomende acties automatiseert. Voeg het toe aan de configuratie van je AI agent, en kijk hoe het opgepakt wordt.
Na een week heb je een workflow die sneller is dan elke GUI. Na een maand heb je een toolkit die je niet meer kwijt wilt. Na een jaar heb je een ecosysteem waar elke nieuwe integratie een kwestie van uren is, niet dagen.
De Unix-filosofie is vijftig jaar oud. Het feit dat die filosofie nu de beste manier blijkt om AI agents met de wereld te verbinden, zegt iets over de kracht van simpele, composable tools. Niet alles hoeft complex te zijn. Soms is een script met args in en output uit precies genoeg.
Wil je weten hoe CLI tools en AI-gedreven development jouw workflow kunnen versnellen? Neem contact op, ik denk graag mee.