Cursus
Claude Code dekt standaard de meeste ontwikkelingstaken, maar elk team heeft specifieke workflows die niet in de defaults passen. Misschien wil je een aangepaste command die componenten scaffoldt in de voorkeursstructuur van je bedrijf, automatisch linten vóór elke commit, of snel toegang tot documentatie voor een framework dat je voortdurend gebruikt.
Met Claude Code-plugins kun je deze features zelf toevoegen. Je kunt plugins uit de community installeren of je eigen plugins maken.
Als je nieuw bent met Anthropic’s agentische codingtool, raad ik aan te beginnen met de Gids voor Claude Code of de cursus Introductie tot Claude-modellen. Deze tutorial gaat ervan uit dat je Claude Code hebt geïnstalleerd en het voor basistaken hebt gebruikt.
Aan het einde weet je hoe je:
- Plugins vindt en installeert via Anthropic's directory en communitybronnen
- De drie componenttypen begrijpt die plugins kunnen bevatten
- Het juiste type kiest voor verschillende use-cases
- Je eigen plugins bouwt en deelt
Voor een overzicht van de mogelijkheden van Anthropic's nieuwste model, bekijk onze gids over Claude Sonnet 5.
TL;DR
-
Claude Code-plugins bundelen skills, MCP-servers en hooks in deelbare pakketten die je installeert met
claude plugin add -
Skills laden on demand (~100 tokens per stuk); MCP-servers preloaden tooldefinities (verminderd door Tool Search); hooks draaien als shellscripts zonder tokencost
-
Gebruik skills voor kennis en workflows, MCP-servers voor toegang tot externe API’s, en hooks voor regels die elke keer moeten afvuren
-
Bouw een plugin met drie bestanden: een
.claude-plugin/plugin.json-manifest, eenskills/-map en eenSKILL.md-instructiebestand
Wat zijn Claude Code-plugins?
Een plugin is een pakket dat één of meer Claude Code-extensies bundelt voor eenvoudig delen en installeren. In plaats van handmatig configuratiebestanden te kopiëren tussen machines of teamgenoten, kun je alles verpakken in een plugin en die als één geheel distribueren.
Plugins kunnen drie soorten componenten bevatten:
-
Skills: Aangepaste commando’s die je aanroept met
/skill-name, of contextbewuste prompts die Claude automatisch gebruikt wanneer relevant -
MCP-servers: Verbindingen met externe services en API’s die Claude toegang geven tot data die hij anders niet zou hebben
-
Hooks: Shellscripts die automatisch draaien bij specifieke events, zoals vóór een bestand wordt bewerkt of na een commit
Een plugin kan er één bevatten, of meerdere die samenwerken. Een "deployment"-plugin kan bijvoorbeeld een /deploy-skill bevatten voor handmatige deployments, een MCP-server die de status van je stagingomgeving checkt, en een hook die tests draait voordat een deploy-commando wordt uitgevoerd.
Het plugin.json-manifestbestand definieert wat een plugin bevat. Het specificeert welke skills, MCP-servers en hooks geïnstalleerd worden, plus metadata zoals de pluginnaam, versie en auteur. Wanneer je een plugin installeert, leest Claude Code dit manifest en zet elk component op de juiste plek.
Dankzij dit verpakkingsformaat hoef je de interne bestandstructuur van Claude Code-extensies niet te begrijpen. Je installeert de plugin, en alles komt terecht waar het hoort.
Claude Code-plugins zoeken en installeren
De meeste plugins staan op twee plekken. Anthropics officiële directory op claude.com/plugins bevat plugins van Anthropic, geverifieerde communitybijdragen en populaire third-party extensies. Elke vermelding toont welke componenten de plugin bevat, compatibiliteitsinfo en installatie-instructies.
De tweede bron is GitHub:
- anthropics/claude-plugins-official - Het standaard, ingebouwde pluginregister.
- anthropics/claude-plugins-community - Een zorgvuldig samengestelde catalogus met community-ingediende integraties.
- anthropics/knowledge-work-plugins - Plugins die specifiek zijn ontworpen voor kenniswerkers.
Zodra je een gewenste plugin hebt gevonden, hangt het installatiecommando af van waar deze staat:
# From the official directory
claude plugin add @anthropic/deploy-helper
# From a GitHub repository
claude plugin add github:username/repo-name
# From a local directory (useful during development)
claude plugin add ./my-plugin
Na het installeren van een paar plugins wil je ze bijhouden. De plugin-opdracht regelt het weergeven, updaten en verwijderen:
# List all installed plugins
claude plugin list
# Update a specific plugin to the latest version
claude plugin update @anthropic/deploy-helper
# Update all plugins
claude plugin update --all
# Remove a plugin
claude plugin remove @anthropic/deploy-helper
Een keuze die je tijdens de installatie maakt, is de scope. Plugins kunnen op twee plekken leven: userscope installeert naar ~/.claude/plugins/ en werkt in al je projecten, terwijl projectscope installeert naar .claude/plugins/ binnen een specifieke repository.
De default is userscope. Om een plugin alleen voor het huidige project te installeren, voeg je de --project-vlag toe:
claude plugin add @anthropic/deploy-helper --project
Plugins met projectscope zijn logisch wanneer de extensie aan een specifieke codebase is gekoppeld.
Een plugin die het deploymentproces van je bedrijf kent, hoort in dat project. Een plugin die code formatteert volgens jouw persoonlijke voorkeuren hoort op userniveau. Wanneer een plugin op beide scopes bestaat, krijgt de projectversie voorrang, waardoor teams projectspecifieke configuraties kunnen afdwingen terwijl ontwikkelaars hun persoonlijke plugins elders actief houden.
Het juiste Claude Code-plugintype kiezen
De drie componenttypen hebben verschillende doelen en verbruiken contextwindow-tokens op verschillende manieren. Als je deze trade-offs begrijpt, kun je voor elke taak het juiste type kiezen.
Skills vs MCP-servers: de tokentrade-off
MCP-servers preloaden bij het starten van een sessie elke tooldefinitie in je contextwindow. Elke tool heeft zijn naam, beschrijving en volledige parameterschema nodig, wat doorgaans 100–300 tokens per tool kost. Een setup met vijf servers verbruikt ongeveer 55.000 tokens voordat je een teken typt:
- GitHub: 35 tools
- Slack: 11 tools
- Sentry: 5 tools
- Grafana: 5 tools
- Splunk: 2 tools
Eén analyse vond setups met 7+ servers die 67.000+ tokens verbruikten, wat betekent dat een derde van je 200K-contextwindow weg is vóór de conversatie begint.
Skills kiezen een andere aanpak via geleidelijke onthulling. Bij de start van een sessie ziet Claude alleen de naam en eenregelige beschrijving van elke skill uit de YAML-frontmatter, zo’n 100 tokens per skill.
De volledige instructies laden pas wanneer Claude bepaalt dat de skill relevant is voor de huidige taak. Referentiebestanden laden alleen wanneer ze specifiek nodig zijn. En scripts komen nooit de contextwindow in; Claude draait ze extern en alleen de output komt terug.

Anthropic pakte deze onbalans eind 2025 aan met Tool Search, een feature die lazy loading naar MCP-servers brengt.
In plaats van elke tooldefinitie te preloaden, detecteert Claude Code nu wanneer toolbeschrijvingen meer dan 10% van de beschikbare context zouden verbruiken en schakelt dan over op on-demand laden.
Interne tests lieten zien dat het contextgebruik daalde van ~134.000 tokens naar ~5.000 tokens voor grote toolbibliotheken. De nauwkeurigheid van toolselectie verbeterde ook, met Opus 4 van 49% naar 74% en Opus 4.5 van 79,5% naar 88,1% bij MCP-evaluaties.
Zo beslis je tussen beide.
Skills passen het best wanneer je wilt dat Claude toegang heeft tot kennis of workflows die het met beoordelingsvermogen kan toepassen. Een skill die de code-reviewchecklist van je team beschrijft, wordt geladen wanneer Claude code reviewt, maar Claude beslist nog steeds hoe elk item wordt toegepast op basis van de context.
Skills zijn ook logisch voor operaties die scripts nodig hebben voor zware berekeningen, omdat de scriptcode buiten het contextwindow blijft.
MCP-servers passen het best wanneer Claude realtime data nodig heeft van externe services zoals Slack-berichten, GitHub-PR’s of databasequeries. Ze zijn ook de juiste keuze wanneer meerdere AI-agents dezelfde tools nodig hebben, of wanneer je enterprisefeatures zoals auditlogs en expliciete permissies nodig hebt.
Veel setups combineren beide: skills leveren het "hoe" en "wanneer" via natuurlijke taal, terwijl MCP-servers de daadwerkelijke API-calls afhandelen.
| Skills | MCP-servers | Hooks | |
|---|---|---|---|
| Trigger | /skill-name of automatisch |
Beschikbaar als tools in sessie | Automatisch bij lifecycle-events |
| Tokencost | ~100 per skill (lazy load) | 100–300 per tool (preload; verminderd door Tool Search) | Nul |
| Beslist Claude? | Ja | Ja | Nee (deterministisch) |
| Beste voor | Kennis, workflows, teamstandaarden | Externe API’s, realtime data, multi-agent setups | Linting, testgates, beschermde paden |
| Voorbeeld | Code-reviewchecklist | GitHub PR-management | Commits blokkeren tot tests slagen |
Populaire Claude Code-skills die de moeite waard zijn
- Superpowers (onze tutorial): 20+ production-geteste workflows voor TDD, debuggen en gestructureerde planning
- frontend-design: Instrueert Claude om generieke esthetiek te vermijden en gedurfde ontwerpkeuzes te maken
- mcp-builder: Gids voor het maken van MCP-servers om externe API’s te integreren
- webapp-testing: Test lokale webapplicaties met Playwright voor UI-verificatie
- skill-creator: Interactieve tool die je stap voor stap helpt nieuwe skills te bouwen
Populaire MCP-servers die de moeite waard zijn
- Context7: Realtime, versiespecifieke documentatie-opzoeking
- GitHub: Repository-zoekopdracht, PR-management, issuetracking
- Playwright: Browserautomatisering met toegankelijkheidsbomen in plaats van screenshots
- Supabase: Databasequeries met Row Level Security-awareness
- Sentry: Fouttracking en performancemonitoring direct in je editor
Lees ook onze gids met de beste remote MCP-servers.
Hooks: de deterministische laag
Hooks staan volledig buiten de skills-versus-MCP-discussie. Terwijl zowel skills als MCP-servers naar Claude gericht zijn (Claude beslist wanneer hij ze gebruikt), zijn hooks naar het systeem gericht. Ze vuren bij events zoals PreToolUse of PostToolUse en draaien shellscripts vóór of na specifieke acties van Claude. Claude heeft geen inspraak in het al dan niet draaien van een hook.
Daardoor zijn Hooks de juiste keuze wanneer iets zonder uitzondering moet gebeuren: linten vóór elke commit, writes blokkeren naar beschermde mappen, elke bashopdracht loggen, of tests draaien vóór elke deployment.
Deze ontwikkelaar raadt "block-at-submit"-hooks aan boven "block-at-write"-hooks. Claude halverwege een taak blokkeren verwart de agent en levert slechtere resultaten op. Haar team gebruikt een PreToolUse-hook die Bash(git commit) omhult en checkt op een tijdelijke file die alleen bestaat als tests slagen. Geen file, geen commit. De agent rondt z’n werk af, daarna vindt de validatie plaats.
Hooks voegen geen tokencost toe omdat ze als shellscripts buiten het contextwindow draaien.
Handige Claude-hooks om in te stellen
- ESLint/Prettier bij edit: Bestanden automatisch formatteren nadat Claude ze schrijft
- Testgate bij commit: Commits blokkeren tenzij tests slagen
- Beschermde paden: Writes naar migrations, configs of vendor-mappen voorkomen
- Notificatie bij afronden: Slack- of desktopalerts sturen wanneer lange taken klaar zijn
- Transcriptback-up: Gespreksgeschiedenis opslaan voordat compaction draait
Je eigen Claude Code-plugins bouwen
Als een skill in je persoonlijke .claude/-map staat, kan alleen jij die gebruiken. Door ’m als plugin te verpakken kun je ’m delen met teamgenoten of hergebruiken over projecten heen.
We bouwen een plugin genaamd session-logger die een /session-logger:summarize-commando toevoegt. Wanneer aangeroepen, bekijkt Claude het gesprek en voegt een gestructureerde samenvatting toe aan SESSION_LOG.md.
Maak de pluginstructuur
Plugins kunnen overal op je bestandssysteem leven. Voor deze tutorial maken we er één in je homedirectory:
cd ~
mkdir -p session-logger/.claude-plugin
mkdir -p session-logger/skills/summarize
Dit maakt:
~/session-logger/
├── .claude-plugin/
│ └── plugin.json # manifest goes here, nowhere else
└── skills/
└── summarize/ # folder name becomes the command name
└── SKILL.md # must be named exactly this
Schrijf het manifest
Maak ~/session-logger/.claude-plugin/plugin.json aan:
{
"name": "session-logger",
"description": "Log session summaries to a markdown file",
"version": "1.0.0"
}
Het name-veld wordt het namespaceprefix. Alle commando’s in deze plugin beginnen met /session-logger:.
Schrijf de skill
Maak ~/session-logger/skills/summarize/SKILL.md aan:
---
description: Log a summary of the current session to SESSION_LOG.md
disable-model-invocation: true
---
When invoked, review the conversation and create a summary with these sections:
- **Date/time**: Current timestamp
- **Tasks completed**: What was accomplished
- **Files modified**: List of files created or changed
- **Decisions made**: Architectural or implementation choices
- **Open questions**: Unresolved items for future sessions
Append the summary to SESSION_LOG.md in the project root. Create the file if it doesn't exist.
De regel disable-model-invocation: true vertelt Claude dat alleen jij deze skill kunt triggeren. Zonder deze vlag kan Claude autonoom besluiten het commando te draaien als hij denkt dat het helpt bij het gesprek. Voor een logger of deploymenttool wil je meestal handmatige controle.
Lokaal testen
Navigeer naar een project waar je de plugin wilt gebruiken en start Claude Code met de --plugin-dir-vlag die naar je plugin wijst:
cd ~/your-project
claude --plugin-dir ~/session-logger
Typ /session-logger:summarize om het commando aan te roepen. Let op dat plugincommando’s niet in de autosuggestie verschijnen totdat je de volledige naam typt. De tekst wordt blauw zodra Claude Code het als een geldig commando herkent.
Voer na wat werk in de sessie het commando uit. Claude bekijkt het gesprek en voegt een entry toe aan SESSION_LOG.md in je huidige projectdirectory.
Delen met anderen
Push je plugin naar GitHub. Voeg ’m, om te distribueren voorbij handmatig clonen, toe aan een pluginmarktplaats. De marktplaatsgids behandelt het maken van je eigen marktplaats of het indienen bij bestaande.
Tot slot
Plugins maken van Claude Code een assistent die is afgestemd op jouw specifieke workflow. De sessielogger die we bouwden kostte ongeveer vijf minuten en drie bestanden. De meeste nuttige plugins zijn niet veel ingewikkelder dan dat.
Als je hebt meegebouwd, heb je nu een werkende plugin op je machine. Probeer te tweaken: verander het samenvattingsformaat, voeg nieuwe secties toe, of vervang ’m door iets wat je team écht nodig heeft. De structuur blijft hetzelfde, of je nu een snelle persoonlijke tool bouwt of iets dat je aan honderden developers gaat verspreiden.
Blader daarnaast eens door de communityrepositories wanneer je de kans hebt. Door te zien hoe anderen hun plugins structureren, leer je patronen die documentatie niet kan overbrengen.
Wil je dieper in Claude Code duiken? Bekijk onze tutorials over best practices voor Claude Code, het Superpowers-skillsframework, slashcommando’s voor langere sessies en security en permissies. Wil je meer leren over Claude-modellen, dan raad ik de cursus Introductie tot Claude-modellen aan.
Claude Code-plugins: veelgestelde vragen
Wat zijn plugins in Claude Code?
Plugins zijn deelbare pakketten die Claude Code-extensies bundelen. Ze kunnen skills (aangepaste commando’s en contextbewuste prompts), MCP-servers (verbindingen met externe API’s) en hooks (shellscripts die bij specifieke events draaien) bevatten. Met plugins kun je workflows delen met teamgenoten of hergebruiken in meerdere projecten.
Hoe installeer ik een Claude Code-plugin?
Gebruik het commando claude plugin add <plugin-name> voor marketplace-plugins. Voor lokale ontwikkeling start je Claude Code met claude --plugin-dir ./your-plugin om te testen zonder installatie.
Wat is de juiste bestandstructuur voor een Claude Code-plugin?
Plugins hebben een .claude-plugin/-map nodig met plugin.json in de root. Skills gaan in skills/<skill-name>/SKILL.md. Het manifest hoort alleen in .claude-plugin/, terwijl alle andere mappen (skills, hooks, agents) in de pluginroot blijven.
Waarom verschijnt mijn aangepaste slashcommando niet in autocomplete?
Plugincommando’s verschijnen niet in autosuggesties totdat je de volledige naam typt. De tekst wordt blauw zodra Claude Code het herkent. Zorg er ook voor dat je SKILL.md disable-model-invocation: true in de frontmatter bevat om ’m door de gebruiker aanroepbaar te maken.
Wanneer moet ik Claude-hooks gebruiken in plaats van skills?
Gebruik hooks wanneer iets elke keer zonder uitzondering moet gebeuren, zoals linten bij elke edit of commits blokkeren totdat tests slagen. Hooks zijn deterministisch en systeemgericht, terwijl skills contextbewust zijn en Claude beslist wanneer hij ze toepast.
Wat is het verschil tussen Claude Code-skills en MCP-servers?
Skills zijn instructiebestanden in natuurlijke taal die Claude on demand laadt en ~100 tokens per stuk kosten bij sessiestart. Ze werken het best voor kennis, workflows en teamstandaarden. MCP-servers verbinden Claude met externe API’s en preloaden tooldefinities (100–300 tokens per tool), al vermindert Anthropics Tool Search deze overhead nu. Gebruik skills wanneer Claude beoordelingsvermogen moet toepassen; gebruik MCP-servers wanneer Claude realtime externe data nodig heeft.
Hoe bouw ik vanaf nul een Claude Code-plugin?
Maak een map met een .claude-plugin/plugin.json-manifestbestand met de pluginnaam, beschrijving en versie. Voeg een skills/<skill-name>/SKILL.md-bestand toe met YAML-frontmatter en instructies. Test lokaal met claude --plugin-dir ./your-plugin, push vervolgens naar GitHub en installeer met claude plugin add github:username/repo-name.
Ik ben een contentmaker op het gebied van data science met meer dan 2 jaar ervaring en een van de grootste achterbannen op Medium. Ik schrijf graag diepgaande artikelen over AI en ML met een vleugje sarcasme, want je moet íets doen om ze wat minder droog te maken. Ik heb meer dan 130 artikelen en een DataCamp-cursus gemaakt, met nog een in de maak. Mijn content is door meer dan 5 miljoen ogen bekeken, van wie 20k mij is gaan volgen op zowel Medium als LinkedIn.

