[{"data":1,"prerenderedAt":272},["ShallowReactive",2],{"page:\u002Fblog\u002Fkubb-registry":3},{"id":4,"title":5,"body":6,"description":255,"extension":256,"frontmatter":257,"heading":261,"meta":262,"navigation":263,"order":261,"path":264,"seo":265,"sitemap":266,"source":269,"stem":270,"__hash__":271},"site\u002Fblog\u002Fkubb-registry.md","Introducing the Kubb registry",{"type":7,"value":8,"toc":245},"minimark",[9,16,20,28,51,60,65,77,85,89,109,115,131,135,144,168,181,187,191,214,218,233],[10,11,12],"p",{},[13,14],"img",{"src":15,"alt":5},"\u002Fblog\u002Fkubb-registry\u002Fcover.svg",[17,18,5],"h1",{"id":19},"introducing-the-kubb-registry",[10,21,22,23,27],{},"Adding a plugin used to take three steps: find the package, install it, and add it to ",[24,25,26],"code",{},"kubb.config.ts",". Now one command does all three:",[29,30,35],"pre",{"language":31,"filename":32,"code":33,"class":34},"shell","Terminal","kubb add plugin-zod","highlights",[24,36,38],{"class":37},"language-shell",[39,40,43,47],"span",{"class":41,"style":42},"line","display: inline",[39,44,46],{"style":45},"color:#6f42c1;--hls-dark:#b392f0","kubb ",[39,48,50],{"style":49},"color:#24292e;--hls-dark:#e1e4e8","add plugin-zod",[10,52,53,54,59],{},"The command reads the ",[55,56,58],"a",{"href":57},"\u002Fdocs\u002F5.x\u002Freference\u002Fregistry","Kubb registry",", a reviewed list of plugins, adapters, and parsers.",[61,62,64],"h2",{"id":63},"one-reviewed-version-per-extension","One reviewed version per extension",[10,66,67,68,72,73,76],{},"The registry lives in ",[55,69,71],{"href":70},"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fregistry","kubb-labs\u002Fregistry",". Each record pins one version of an extension: an npm version, or the commit of a GitHub release. A maintainer reviews every version before ",[24,74,75],{},"kubb add"," installs it, so a new release reaches your project only after someone has looked at it.",[10,78,79,80,84],{},"You can browse the registry at ",[55,81,83],{"href":82},"\u002Fextensions","kubb.dev\u002Fextensions",". Each page shows the docs the package ships: an overview, its options, and how-to guides. Kubb Studio reads the same registry.",[61,86,88],{"id":87},"add-an-extension","Add an extension",[10,90,91,96,97,100,101,104,105,108],{},[55,92,94],{"href":93},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Fadd",[24,95,75],{}," takes a registry id. Official extensions use their short name, such as ",[24,98,99],{},"plugin-zod",". Community extensions use ",[24,102,103],{},"\u003Cowner>\u002F\u003Cslug>",", such as ",[24,106,107],{},"acme\u002Fplugin-graphql",".",[10,110,111,112,114],{},"Then ",[24,113,75],{},":",[116,117,118,122,125],"ol",{},[119,120,121],"li",{},"Checks that it supports your Kubb and Node.js versions.",[119,123,124],{},"Installs the pinned version as a dev dependency, with the package manager your project uses: npm, pnpm, Yarn, or Bun.",[119,126,127,128,130],{},"Adds the plugin's import and call to ",[24,129,26],{},". For an adapter or parser, it prints the code to add.",[61,132,134],{"id":133},"keep-extensions-current","Keep extensions current",[10,136,137,143],{},[55,138,140],{"href":139},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Flist",[24,141,142],{},"kubb list"," shows what you have installed and what the registry pins:",[29,145,149],{"language":146,"filename":147,"code":148,"class":34},"text","Output","ID                    PACKAGE           INSTALLED  REGISTRY  UPDATE\nkubb-labs\u002Fplugin-ts   @kubb\u002Fplugin-ts   5.4.2      5.4.4     yes\nkubb-labs\u002Fplugin-zod  @kubb\u002Fplugin-zod  5.4.4      5.4.4     no",[24,150,152,157,158,157,163],{"class":151},"language-text",[39,153,154],{"class":41,"style":42},[39,155,156],{"style":49},"ID                    PACKAGE           INSTALLED  REGISTRY  UPDATE","\n",[39,159,160],{"class":41,"style":42},[39,161,162],{"style":49},"kubb-labs\u002Fplugin-ts   @kubb\u002Fplugin-ts   5.4.2      5.4.4     yes",[39,164,165],{"class":41,"style":42},[39,166,167],{"style":49},"kubb-labs\u002Fplugin-zod  @kubb\u002Fplugin-zod  5.4.4      5.4.4     no",[10,169,170,176,177,180],{},[55,171,173],{"href":172},"\u002Fdocs\u002F5.x\u002Freference\u002Fcommands\u002Fupdate",[24,174,175],{},"kubb update"," installs the pinned versions. Pass ",[24,178,179],{},"--check"," to only list them. It never downgrades a package.",[10,182,183,184,186],{},"Every Monday, a workflow opens a pull request that moves each pin to the latest release. Once a maintainer merges it, your next ",[24,185,175],{}," installs the new versions.",[61,188,190],{"id":189},"list-your-own-extension","List your own extension",[10,192,193,194,200,201,208,209,213],{},"Ship a ",[55,195,197],{"href":196},"\u002Fdocs\u002F5.x\u002Freference\u002Fkit\u002Fmanifest",[24,198,199],{},"kubb-extension.json"," and a ",[55,202,204,207],{"href":203},"\u002Fdocs\u002F5.x\u002Freference\u002Fkit\u002Fextension-docs",[24,205,206],{},"docs\u002F"," folder"," with your package. Publish it to npm, or tag a GitHub release. Then open a submission issue. ",[55,210,212],{"href":211},"\u002Fdocs\u002F5.x\u002Fhow-to\u002Fsubmit-to-the-registry","Submit to the registry"," walks through each step.",[61,215,217],{"id":216},"try-it","Try it",[10,219,220,222,223,225,226,228,229,108],{},[24,221,75],{},", ",[24,224,142],{},", and ",[24,227,175],{}," ship with Kubb 5.8.1. Update to 5.8.4 or later to also install extensions pinned to a GitHub release. To run your own registry, see ",[55,230,232],{"href":231},"\u002Fdocs\u002F5.x\u002Freference\u002Fregistry#host-your-own-registry","Host your own registry",[10,234,235,236,240,241,108],{},"Feedback goes to ",[55,237,239],{"href":238},"https:\u002F\u002Fgithub.com\u002Fkubb-labs\u002Fkubb\u002Fissues","GitHub"," or ",[55,242,244],{"href":243},"https:\u002F\u002Fdiscord.gg\u002FshfBFeczrm","Discord",{"title":246,"searchDepth":247,"depth":247,"links":248},"",5,[249,251,252,253,254],{"id":63,"depth":250,"text":64},2,{"id":87,"depth":250,"text":88},{"id":133,"depth":250,"text":134},{"id":189,"depth":250,"text":190},{"id":216,"depth":250,"text":217},"The Kubb registry lists reviewed plugins, adapters, and parsers. kubb add installs one and adds it to your config, and kubb update keeps it current.","md",{"layout":258,"title":5,"description":255,"outline":259,"image":15,"date":260},"doc","deep","2026-10-13",null,{"layout":258,"outline":259,"image":15,"date":260},true,"\u002Fblog\u002Fkubb-registry",{"title":5,"description":255},{"loc":264,"images":267,"lastmod":260},[268],{"loc":15},"platform\u002Fapps\u002Fkubb.dev\u002Fcontent\u002Fblog\u002Fkubb-registry.md","blog\u002Fkubb-registry","kKNwyvWcSr-zUqoClkKuVyM4MWSm700jHLCjf2oHqcQ",1792931638238]