Werken met Claude Code: Eerste Stappen
Van installatie tot je eerste werkende sessie. Wat Claude Code is, hoe het verschilt van ChatGPT, en waarom het in je project leeft.
Je hebt Claude.ai open in een browsertab. Je kopieert een blok code, plakt het in het chatvenster, beschrijft het probleem, krijgt een antwoord, kopieert het terug naar je editor, test, ziet dat het niet klopt omdat Claude de rest van het bestand niet kent, kopieert méér context, plakt opnieuw, en herhaalt. Na een halfuur heb je een werkende fix. Na een uur weet je niet meer welke versie in je editor staat en welke in de chat.
Dit is de workflow die Claude Code vervangt.
Wat Claude Code is
Claude Code is een command-line tool van Anthropic. Je installeert het als npm-pakket, je opent een terminal in je projectmap, en je start een sessie. Vanaf dat moment heeft Claude toegang tot je bestanden, je directory-structuur, je git-geschiedenis en je terminal. Het leest, schrijft, runt commando’s en navigeert door je code — allemaal vanuit de context van je project.
Het verschil met ChatGPT, Claude.ai, of Gemini in de browser is fundamenteel. Die tools leven in een los venster. Je knipt context uit je project en plakt het in een chatbox. Claude Code leeft in je project. Het ziet je bestanden direct. Het kan grep draaien om iets te zoeken. Het kan een test runnen om te verifiëren dat een aanpassing werkt. Het hoeft niet te gokken naar je projectstructuur — het leest die.
Dat klinkt als een klein verschil. In de praktijk verandert het alles. Een model dat je project kent, maakt andere fouten dan een model dat gokken moet. Het maakt minder fouten over imports, paden, naamconventies en bestaande code. De fouten die overblijven zijn inhoudelijker — en daarmee nuttiger om te debuggen.
Installatie
Claude Code vereist Node.js 18 of hoger. Controleer dat eerst:
node --version
# v18.x of hoger
Installeer Claude Code globaal via npm:
npm install -g @anthropic-ai/claude-code
Na installatie heb je het commando claude beschikbaar. Start het zonder argumenten om te verifiëren:
claude --version
Bij de eerste keer starten vraagt Claude Code om authenticatie. Je hebt een Anthropic-account nodig met een API key, of je logt in via de OAuth-flow die Claude Code zelf aanbiedt:
claude
# → Opent een authenticatie-flow in je browser
# → Na login: sessie is actief
Dat is het. Geen Docker, geen server, geen configuratiebestanden. Eén commando, authenticeren, klaar.
Je eerste sessie
Open een terminal in de root van een bestaand project. Niet in een lege map — Claude Code heeft context nodig om nuttig te zijn. Een project met code, een README, een package.json of pyproject.toml is ideaal.
cd ~/projects/mijn-app
claude
Claude Code start een interactieve sessie. Je ziet een prompt waar je tekst kunt typen. Vanaf dit moment kan Claude je projectbestanden lezen, doorzoeken en aanpassen.
Begin met iets eenvoudigs:
> Lees de README en geef een samenvatting van dit project in drie zinnen.
Claude leest README.md, analyseert de inhoud en antwoordt. Dat lijkt triviaal. Het punt is: je hebt niets gekopieerd. Claude heeft je bestand direct gelezen vanuit het bestandssysteem. Dat is het werkmodel.
Probeer nu iets functioneels:
> Zoek alle bestanden waar een API-call naar /users wordt gemaakt.
Claude gebruikt grep of glob om je project te doorzoeken en rapporteert de resultaten met bestandsnamen en regelnummers. Opnieuw: geen kopiëren, geen plakken. De tool navigeert zelf.
Het projectmodel begrijpen
Claude Code bouwt bij elke sessie een mentaal model van je project. Het leest je directory-structuur, bekijkt configuratiebestanden, en scant de code die relevant is voor je vraag. Dat model is niet perfect — het is gebouwd op wat Claude kiest om te lezen, en soms mist het context. Maar het is structureel beter dan de kopieer-plak-workflow van een browser-chat.
Er zijn drie manieren waarop Claude context verzamelt:
-
Automatisch bij sessiestart. Claude leest bestanden in de root van je project:
README.md,package.json,.env.example,CLAUDE.md(daarover later meer). Dit geeft een basisbegrip van het project. -
Op aanvraag. Wanneer je een vraag stelt, leest Claude relevante bestanden. Vraag je over een functie in
src/api/users.ts, dan leest Claude dat bestand en waarschijnlijk de imports en types die het gebruikt. -
Via tools. Claude kan
grepgebruiken om patronen te zoeken,globom bestanden te vinden, enbashom commando’s te draaien die output produceren. Dit geeft het model informatie die het niet uit passief lezen haalt.
Het belangrijkste inzicht: Claude Code werkt beter naarmate je project beter georganiseerd is. Een duidelijke mapstructuur, beschrijvende bestandsnamen, en een actuele README geven het model meer houvast dan een platte map met vijftig bestanden genaamd utils.js, helpers.ts en temp2.py.
De eerste echte taak
Tijd voor iets concreets. Stel dat je project een Express-API heeft en je wilt een nieuw endpoint toevoegen.
> Voeg een GET /health endpoint toe dat { status: "ok", timestamp: Date.now() } retourneert. Volg de bestaande patronen in src/routes/.
Merk op wat deze prompt doet:
- Het beschrijft wat er moet gebeuren (een endpoint toevoegen).
- Het specificeert de response (concreet, niet vaag).
- Het verwijst naar bestaande patronen (Claude moet eerst kijken hoe de andere routes eruitzien).
Claude zal nu:
- De inhoud van
src/routes/lezen om de bestaande structuur te begrijpen. - Een nieuw bestand aanmaken of een bestaand bestand aanpassen.
- De route registreren in het juiste bestand.
- De aanpassing tonen en om goedkeuring vragen.
Dat laatste punt is cruciaal. Claude Code past standaard geen bestanden aan zonder jouw toestemming. Het toont een diff — de voorgestelde wijziging — en vraagt of je die wilt doorvoeren. Je kunt accepteren, weigeren, of feedback geven.
Dit is het werkritme van Claude Code: voorstel → review → accept/adjust → volgende stap. Het model doet het werk. Jij beslist of het werk klopt.
Wat nu anders is
Na deze eerste sessie is er een concreet verschil met de browser-workflow zichtbaar.
Geen context-verlies. Claude ziet je hele project. Je hoeft niet te kiezen welke bestanden je meestuurt.
Geen kopieer-plak-cyclus. Aanpassingen worden direct in je bestanden geschreven. Je hoeft geen code heen en weer te slepen tussen een chatvenster en je editor.
Directe verificatie. Claude kan een test draaien om te controleren of de aanpassing werkt. In een browser-chat moet je dat zelf doen, terugkomen, en rapporteren.
Patroon-bewust. Omdat Claude je bestaande code leest, volgt het je conventies. Gebruik je camelCase? Dan schrijft Claude camelCase. Heb je een specifieke mapstructuur? Dan plaatst Claude bestanden op de juiste plek.
Het kost een of twee sessies om dit werkritme te internaliseren. Daarna voelt het browser-chatvenster als een achteruitgang — alsof je een collega probeert aan te sturen door printscreens te sturen in plaats van samen achter hetzelfde scherm te zitten.
Eerste valkuilen
Drie dingen die je in de eerste week tegenkomt:
Te weinig context geven. “Fix de bug” is een slechte prompt. Claude weet niet welke bug. “Fix de TypeError in src/api/auth.ts op regel 47 — de functie verwacht een string maar krijgt undefined” is een goede prompt. Specificiteit bespaart iteraties.
Te veel in één keer vragen. “Bouw een compleet authenticatiesysteem met login, registratie, wachtwoord-reset, en OAuth” is te breed voor één interactie. Splits het op. Eén endpoint per stap. Eén feature per sessie. Claude Code werkt het best in gefocuste iteraties.
Niet verifiëren. Claude Code kan tests draaien. Gebruik dat. Vraag na elke aanpassing: “Run de tests en laat me zien of alles slaagt.” Dit voorkomt dat fouten zich opstapelen over meerdere stappen.
CLAUDE.md: het begin van projectgeheugen
Eén bestand verdient een vooruitblik: CLAUDE.md. Dit is een markdown-bestand in de root van je project dat Claude Code automatisch leest bij het starten van een sessie. Je kunt er projectspecifieke instructies in zetten:
# CLAUDE.md
## Project
Dit is een Express API met TypeScript. Database: PostgreSQL via Prisma.
## Conventies
- Gebruik async/await, geen callbacks
- Error handling via custom AppError class in src/errors/
- Alle routes in src/routes/, geregistreerd in src/routes/index.ts
## Tests
- Run tests: npm test
- Run specifieke test: npm test -- --grep "auth"
Dit bestand is het begin van persistent projectgeheugen. Claude Code vergeet je sessie zodra je de terminal sluit. Maar CLAUDE.md blijft bestaan. Het is je manier om context te geven die over sessies heen geldig is.
In deel 2 gaan we dieper in op hoe je Claude Code effectief aanstuurt — het verschil tussen intentie communiceren en stappen dicteren, en waarom dat verschil bepaalt hoe goed je resultaten zijn.
Dit is deel 1 van de serie “Werken met Claude Code”. De volgende delen verschijnen op vicboomer.com.