Extensions
Kubb registry
The list of Kubb extensions that the Kubb CLI, Kubb Studio and kubb.dev read. It is a set of static JSON documents under one base URL.
Endpoints
Documents are JSON, served with CORS, never through a redirect. An unknown id answers 404. Extension Markdown is untrusted, so clients render it without raw HTML.
| Address | Serves |
|---|---|
| /registry/index.json | Every listed extension, with its manifest and stats. |
| /registry/<owner>/<slug>.json | One extension, with its overview, options page and how-to guides. |
| /registry/categories.json | The categories an extension may use. |
| /schemas/kubb-extension.json | The JSON Schema of the manifest each package ships. |
| /schemas/registry-record.json | The JSON Schema of a registry record. |
An entry from index.json, trimmed
{
"id": "kubb-labs/plugin-ts",
"kind": "plugin",
"type": "official",
"artifact": {
"kind": "npm",
"package": "@kubb/plugin-ts",
"version": "5.0.9"
},
"manifest": {
"kind": "plugin",
"export": "pluginTs",
"displayName": "TypeScript",
"description": "Generates TypeScript types and interfaces from your OpenAPI spec, the typed foundation the other Kubb plugins build on.",
"category": "types"
}
}Install from the registry
kubb add installs an extension at the version the registry pins and adds it to kubb.config.ts:
kubb add plugin-ts
Point the CLI at another registry, such as your company's own, with KUBB_REGISTRY:
KUBB_REGISTRY=https://registry.example.com kubb add acme/plugin-x
Submit an extension
- Publish the package to npm with a kubb-extension.json and a docs/ folder: docs/overview.md, and optionally docs/options.md and docs/guides/<id>.md.
- Open a submission issue on kubb-labs/registry and paste the package name.
- A bot opens a review pull request. After a maintainer merges it, the extension shows up here and in Studio.
Host your own
Fork kubb-labs/registry, replace extensions/ with your records, run pnpm build and serve dist/ from any static host.