Dev & Open Source

Een Claude Code-plugin maken in 2026 (praktische gids)

Maak in 2026 een Claude Code-plugin: bouw het plugin.json-manifest, voeg skills, hooks en MCP toe, test met --plugin-dir en deel de plugin via een marketplace.

Waqas Ahmed Waseer
Waqas Ahmed Waseer 20 jul 2026 7 min leestijd
Een Claude Code-plugin maken in 2026 (praktische gids)

Om een Claude Code-plugin te maken, zet je je skills, agents, hooks of MCP-configuratie in één directory met een .claude-plugin/plugin.json-manifest, test je die met claude --plugin-dir ./my-plugin en verspreid je hem vervolgens via een marketplace zodat teamgenoten hem kunnen installeren. Dat is de hele cyclus, en je hebt binnen ongeveer vijf minuten een werkende plugin. De rest draait om weten welke onderdelen je moet meenemen, hoe je de ene directoryfout vermijdt die de meeste eerste pogingen breekt, en hoe je hem versiebeheert en deelt zodra hij werkt.

Wij draaien de TechRiseUps-contentengine op Claude Code, en de snelste manier om een workflow van één machine naar het hele team te tillen is hem als plugin te verpakken in plaats van .claude/-mappen rond te kopiëren. Deze gids laat precies zien hoe je in 2026 een Claude Code-plugin maakt, gebaseerd op de actuele officiële plugin-documentatie.

Wat is een Claude Code-plugin?

Een Claude Code-plugin is een op zichzelf staande directory die één of meer uitbreidingen bundelt — skills, subagents, hooks, MCP-servers, LSP-servers of achtergrondmonitors — achter één manifestbestand. Het manifest, .claude-plugin/plugin.json, geeft de plugin een naam, beschrijving en versie. Na installatie krijgt alles wat de plugin meelevert een namespace onder die naam: een skill genaamd hello binnen een plugin genaamd my-first-plugin roep je aan als /my-first-plugin:hello, waardoor twee plugins niet botsen als ze allebei een skill met dezelfde naam definiëren. Het nut van een plugin, tegenover losse config in je .claude/-map, is portabiliteit: hij komt als één geheel onder versiebeheer, werkt netjes bij en installeert op iemand anders zijn machine met één commando in plaats van een kopieer-plakritueel.

Plugin versus standalone config: wat moet je gebruiken?

Met Claude Code kun je op twee manieren skills, agents en hooks toevoegen, en de verkeerde kiezen kost tijd. Standalone config in een .claude/-directory is de juiste keuze voor persoonlijke, projectspecifieke aanpassingen en snelle experimenten — je krijgt korte namen als /deploy en nul verpakkingsoverhead. Een plugin is de juiste keuze op het moment dat je de workflow wilt delen, hem over meerdere projecten wilt hergebruiken of versiebeheerde updates wilt uitleveren. Het criterium is simpel: als alleen jij hem ooit in één repo draait, houd hem standalone; als iemand anders hem nodig heeft, maak er een plugin van.

Standalone (.claude/)Plugin
Aanroepnaam/hello/my-plugin:hello
BereikÉén projectElk project, elke machine
DelenHandmatig kopiëren/plugin install vanuit een marketplace
VersiebeheerGeenExpliciete version of git-SHA
Geschikt voorPersoonlijke experimentenTeam- en community-distributie

De aanbevolen aanpak is prototypen in .claude/ voor snelle iteratie, en pas omzetten naar een plugin wanneer het delen ervan de moeite waard is.

Stap voor stap: maak je eerste plugin

Hier is de minimale end-to-end build. Hij maakt een plugin met één skill en test die lokaal, zonder marketplace.

1. Maak de plugindirectory aan.

mkdir my-first-plugin

2. Voeg het manifest toe op my-first-plugin/.claude-plugin/plugin.json:

{
  "name": "my-first-plugin",
  "description": "A greeting plugin to learn the basics",
  "version": "1.0.0",
  "author": { "name": "Your Name" }
}

Alleen name is echt verplicht; version en author zijn optioneel maar de moeite waard om in te stellen (meer over versiebeheer hieronder).

3. Voeg een skill toe. Skills staan in skills/<name>/SKILL.md. Maak my-first-plugin/skills/hello/SKILL.md:

---
description: Greet the user with a friendly message
---

Greet the user warmly and ask how you can help them today.

4. Test hem lokaal met de vlag --plugin-dir — geen installatiestap nodig:

claude --plugin-dir ./my-first-plugin

Voer daarna /my-first-plugin:hello uit binnen de sessie. Terwijl je bestanden bewerkt, draai je /reload-plugins om wijzigingen op te pikken zonder Claude Code te herstarten. Als je liever niet bij elke start de vlag meegeeft: claude plugin init my-tool zet een plugin op in je skills-directory die bij de volgende sessie automatisch geladen wordt.

Dat is een echte, werkende plugin. Alles voorbij dit punt is meer componenten toevoegen en hem uitleveren.

Wat gaat er in een plugin

Een plugin kan veel meer bevatten dan één skill. Elk componenttype leeft in zijn eigen directory in de pluginroot (niet binnen .claude-plugin/), en Claude Code ontdekt ze op basis van conventie:

Directory / bestandBevat
.claude-plugin/plugin.jsonHet manifest (naam, versie, metadata)
skills/<name>/SKILL.mdDoor het model aangeroepen skills
agents/Definities van eigen subagents
hooks/hooks.jsonEvent-handlers (bijv. linten bij elke edit)
.mcp.jsonMCP-serverconfiguraties voor externe tools
.lsp.jsonLanguage servers voor code-intelligentie
monitors/monitors.jsonAchtergrondwatchers die Claude notificeren
bin/Executables die aan de Bash-PATH worden toegevoegd zolang de plugin actief is
settings.jsonStandaardinstellingen die bij activering worden toegepast

Daarom zijn plugins de natuurlijke thuisbasis voor een complete workflow: één plugin kan een skill, een lint-hook en een MCP-server toevoegen die allemaal samen worden uitgeleverd en bijgewerkt.

De fout die de meeste eerste plugins breekt

Als je skill of hook stilletjes niet laadt, is de oorzaak vrijwel altijd dezelfde: bestanden op de verkeerde plek gezet. Alleen plugin.json hoort binnen .claude-plugin/. Elke andere directory — skills/, agents/, hooks/, commands/ — moet in de pluginroot staan, één niveau hoger. skills/ nesten binnen .claude-plugin/ is de veruit meest voorkomende beginnersfout, en Claude Code geeft geen luide waarschuwing; de componenten verschijnen gewoon nooit.

De pluginroot is de eigen map van de individuele plugin — die je aan --plugin-dir meegeeft — nooit je globale ~/.claude/. Als er iets niet werkt, debug dan in deze volgorde: bevestig dat de directorystructuur in de root staat, test elk component afzonderlijk, draai /reload-plugins, en controleer of agents opduiken in /context onder Custom Agents. Draai claude plugin validate om manifest- en structuurproblemen op te sporen voordat ze je een debugsessie kosten.

Je plugin verspreiden: marketplaces en versiebeheer

--plugin-dir is voor jou; een marketplace is voor iedereen anders. Een marketplace is gewoon een git-repository met een .claude-plugin/marketplace.json-bestand in de root die je plugins opsomt en aangeeft waar elke plugin te halen is. Je pusht hem naar GitHub of een willekeurige git-host, en gebruikers voegen hem toe met /plugin marketplace add <owner/repo> en installeren er vervolgens afzonderlijke plugins uit. Om een plugin intern te houden, host je de marketplace in een privé-repo; om een breder publiek te bereiken, draait Anthropic twee openbare catalogi — een gecureerde claude-plugins-official en de community-catalogus claude-community, die na review inzendingen van derden accepteert.

Versiebeheer is het onderdeel dat mensen overslaan en waar ze spijt van krijgen. Als je een expliciete version instelt in plugin.json, krijgen gebruikers pas updates wanneer je die ophoogt — voorspelbaar en aanbevolen voor alles wat gedeeld wordt. Laat je die weg en verspreid je via git, dan wordt de commit-SHA de versie, zodat elke commit als een nieuwe release telt. Kies expliciete versies voor alles waar een team van afhankelijk is. Voordat je publiceert of inzendt, draai je altijd claude plugin validate, voeg je een README.md toe met installatie- en gebruiksnotities, en laat je iemand anders hem vers installeren — dezelfde discipline die je zou toepassen op Claude Code draaien in automatisering.

Veelgestelde vragen

Heb ik een marketplace nodig om een plugin te gebruiken?

Nee. claude --plugin-dir ./my-plugin laadt een plugin rechtstreeks uit een lokale map voor die sessie, en claude plugin init kan er een opzetten die automatisch laadt vanuit je skills-directory. Marketplaces zijn alleen van belang wanneer je een plugin naar andere mensen of machines wilt verspreiden.

Wat is het verschil tussen een plugin en een skill?

Een skill is één capaciteit — een SKILL.md-bestand met instructies. Een plugin is een pakket dat veel skills plus agents, hooks en MCP-servers achter één versiebeheerd manifest kan bundelen. Een plugin met één skill is prima; je kunt SKILL.md zelfs in de pluginroot plaatsen in plaats van in een skills/-map.

Waarom laadt mijn plugin niet?

De gebruikelijke boosdoener is de plaatsing van directory's: skills/, agents/ en hooks/ moeten in de pluginroot staan, en alleen plugin.json gaat binnen .claude-plugin/. Draai /reload-plugins en daarna claude plugin validate om structuur- en manifestfouten aan het licht te brengen.

Hoe krijgen gebruikers updates voor mijn plugin?

Dat hangt af van je manifest. Met een expliciete version worden updates alleen uitgeleverd wanneer je het nummer ophoogt. Zonder versie behandelt een via git verspreide plugin elke nieuwe commit als een nieuwe versie. Stel een expliciete version in voor alles waar een team op steunt, zodat updates weloverwogen zijn.

Bronnen

Waqas Ahmed Waseer

Waqas Ahmed Waseer

Waqas Ahmed Waseer is ontwikkelaar en automation-builder met meer dan 8 jaar ervaring in het bouwen van productiesystemen die door 100.000+ mensen worden gebruikt. Hij bouwt custom multi-tenant SaaS, AI-automatisering (n8n, LLM-workflows, WhatsApp-bots) en hostinginfrastructuur (WHM/cPanel, CloudLinux) — en is de maker van WaSphere, FlowMaticX en het hostingmerk WaseerHost. 100+ projecten opgeleverd voor mkb, bureaus en gefinancierde startups.

Gerelateerd

Meer in Dev & Open Source

Bekijk alles

Discussie · 0

Wees vriendelijk. Reacties zijn openbaar.

    Nieuwsbrief · Maandageditie

    De maandagbriefing.

    Eén e-mail elke maandagochtend. De week vooruit in AI, startups, hosting en devtools — geen onzin, geen gesponsorde lokkertjes.

    Gratis. Met één klik uitschrijven.