# Kubb Documentation for the Kubb code generation ecosystem. - [](https://kubb.dev/index.md): - [About Kubb - The Meta Framework for Code Generation](https://kubb.dev/about.md): Learn about Kubb's origin, philosophy, and plugin-based architecture. Discover why it's the meta framework for code generation and why it's named after the Swedish lawn game Kubb. - [Adapters - Explore the Ecosystem](https://kubb.dev/adapters.md): Discover official and community adapters for Kubb. Parse OpenAPI, GraphQL, and other specifications into Kubb's universal Abstract Syntax Tree. - [Kubb OpenAPI Adapter](https://kubb.dev/adapters/adapter-oas.md): Reads an OpenAPI 2.0, 3.0, or 3.1 spec and converts every schema and operation into the AST that Kubb plugins generate from, so one adapter feeds the whole build. - [Options](https://kubb.dev/adapters/adapter-oas/reference/options.md): Configuration options for @kubb/adapter-oas covering spec validation, content type, the server base URL, discriminators, enums, and how OpenAPI types map to TypeScript. - [Blog - OpenAPI Code Generator Updates & Tutorials](https://kubb.dev/blog.md): Latest updates, release notes, and tutorials for Kubb - the TypeScript code generator for OpenAPI specifications. Learn about new features and best practices. - [Kubb as a Claude Code plugin](https://kubb.dev/blog/claude-code-plugin.md): Install Kubb inside Claude Code and turn an OpenAPI spec into TypeScript types, Zod schemas, clients and React Query hooks without leaving the editor. Ships slash commands, a config skill, an expert agent and the Kubb MCP server. - [Release of Kubb 3.0](https://kubb.dev/blog/v3.md): Release notes for Kubb 3.0 covering the new plugin system, breaking changes and migration guide. - [Release of Kubb 4.0](https://kubb.dev/blog/v4.md): Release notes for Kubb 4.0 covering new features, breaking changes and upgrade instructions. - [Release of Kubb 5.0](https://kubb.dev/blog/v5.md): Kubb 5.0 rebuilds code generation around adapters, a universal AST, parsers, and storage, and generates code up to 5.4x faster than v4. - [Contributors - OpenAPI Generator Community](https://kubb.dev/contributors.md): Meet the developers and contributors building Kubb, the TypeScript code generator for OpenAPI specifications. Join our open-source community. - [Set up the Claude Code plugin](https://kubb.dev/docs/5.x/ai/claude.md): The Kubb Claude Code plugin adds slash commands and an agent that run Kubb code generation from inside Claude Code. - [Use Kubb with Context7](https://kubb.dev/docs/5.x/ai/context7.md): Connect Context7 to your AI assistant and use current Kubb documentation when generating code or configuring Kubb. - [LLMS.txt - AI](https://kubb.dev/docs/5.x/ai/llmstxt.md): Kubb publishes llms.txt and llms-full.txt so LLMs can consume the full documentation in a single request. Learn how to point your AI assistant at these files. - [Set up the MCP server](https://kubb.dev/docs/5.x/ai/mcp.md): Connect AI editors and agents to Kubb's local MCP server. Configure Claude Desktop, Cursor, VS Code, and other MCP-capable clients to run Kubb tools directly. - [Changelog](https://kubb.dev/docs/5.x/changelog.md): Track all updates, features, and improvements to Kubb - [Contributing](https://kubb.dev/docs/5.x/community/contributing.md): A concise guide to contributing to Kubb core and Kubb plugins. - [FAQ](https://kubb.dev/docs/5.x/community/faq.md): Frequently asked questions about Kubb, covering compatibility, generated code, customization, and plugins. - [Basic Usage](https://kubb.dev/docs/5.x/getting-started/basic-usage.md): Write your first kubb.config.ts, pick a few plugins, run kubb generate and import the generated types, client and hooks in your app. - [Installation](https://kubb.dev/docs/5.x/getting-started/installation.md): Install Kubb in any Node.js project. Use the interactive kubb init wizard or set up manually with the kubb package and a handful of plugins. - [Introduction](https://kubb.dev/docs/5.x/getting-started/introduction.md): Kubb is the meta framework for code generation. A plugin-based system that turns any API specification into TypeScript types, API clients, hooks, validators, and mocks. - [Kubb vs orval, HeyAPI, and openapi-typescript](https://kubb.dev/docs/5.x/guide/comparison.md): Feature-by-feature comparison of Kubb against orval, HeyAPI, and openapi-typescript. - [Adapters - How Kubb Reads Any Specification](https://kubb.dev/docs/5.x/guide/concepts/adapters.md): An adapter is the only part of Kubb that understands the input format. It converts a spec like OpenAPI into the universal AST, so every plugin works regardless of the source. - [Architecture](https://kubb.dev/docs/5.x/guide/concepts/architecture.md): How Kubb generates code. The adapter, AST, plugins, parsers, and storage form one layered pipeline from spec to output files. - [AST - Why Kubb Uses a Universal Tree](https://kubb.dev/docs/5.x/guide/concepts/ast.md): How Kubb's universal Abstract Syntax Tree decouples input formats like OpenAPI from the generators that emit code, so one plugin works against any spec. - [Generators - How a Plugin Turns the AST Into Files](https://kubb.dev/docs/5.x/guide/concepts/generators.md): A generator is the piece of a plugin that walks the AST and emits files. One plugin can register several, each handling schemas, single operations, or the whole operation set. - [Kit - The Plugin Authoring Toolkit](https://kubb.dev/docs/5.x/guide/concepts/kit.md): kubb/kit is the authoring layer of Kubb. It is the one import a developer uses to build plugins, generators, resolvers, adapters, parsers, renderers, and storage backends, with the ast and core helpers those pieces lean on. - [Parsers - How Kubb Turns the AST into Source Code](https://kubb.dev/docs/5.x/guide/concepts/parsers.md): Parsers are Kubb's output layer. They convert the universal AST into language-specific source code, so the same plugins can target TypeScript, Python, or any other language. - [Plugins - Build Custom Generators for Any Spec](https://kubb.dev/docs/5.x/guide/concepts/plugins.md): Build Kubb plugins that hook into the lifecycle, register generators, declare resolvers, and emit files. The hook-style definePlugin API mirrors Astro integrations. - [Renderers - How Generators Emit Files](https://kubb.dev/docs/5.x/guide/concepts/renderers.md): A renderer turns what a generator returns into FileNodes. Kubb ships a JSX renderer, and you build your own only when you emit through a different templating format. - [Resolvers - How Kubb Names Generated Files](https://kubb.dev/docs/5.x/guide/concepts/resolvers.md): A resolver is the single source of truth for a plugin's file names and output paths. Other plugins read it by name so they can import each other's output without hard-coding paths. - [Storage - How Kubb Decides Where Files Land](https://kubb.dev/docs/5.x/guide/concepts/storage.md): Understand Kubb's storage layer. The driver decouples code generation from its destination, so the same build can target disk, memory, or any backend you write. - [Add barrel files support](https://kubb.dev/docs/5.x/guide/going-further/barrel-files.md): Generate index.ts barrel files for every plugin output directory with @kubb/plugin-barrel, the post-enforced plugin built into Kubb. - [Use Kubb with Claude AI - AI Integration Guide](https://kubb.dev/docs/5.x/guide/going-further/claude-mcp-plugin.md): Integrate Kubb with Claude AI for enhanced code generation. AI-powered OpenAPI analysis and code suggestions. - [Create your first plugin](https://kubb.dev/docs/5.x/guide/going-further/creating-plugins.md): Learn how to build a Kubb plugin from scratch. Step-by-step guide covering setup, lifecycle hooks, generators, and publishing. - [Write a macro](https://kubb.dev/docs/5.x/guide/going-further/macros.md): A macro is a named, composable transform over Kubb's AST. Macros rewrite schema and operation nodes before generators print code, and the same macro works across every adapter and every output target. - [Override a printer](https://kubb.dev/docs/5.x/guide/going-further/printers.md): Printers turn Kubb's AST schema nodes into generated code. The printer option on plugin-ts, plugin-zod, and plugin-faker replaces the handler for a single schema type, so you change what one plugin emits without forking it. - [Override a resolver](https://kubb.dev/docs/5.x/guide/going-further/resolvers.md): Resolvers name every symbol and file Kubb generates. The resolver option on each code-generating plugin patches a single naming rule, so you change what things are called or where files land without forking the plugin. - [Integrations](https://kubb.dev/docs/5.x/guide/integrations.md): Run Kubb from somewhere other than the CLI. Generate inside your bundler with Vite, Rollup, Rolldown, webpack, Rspack, esbuild, Farm, Nuxt or Astro, from the browser with Kubb Studio, or on CI. - [Run Kubb with Astro](https://kubb.dev/docs/5.x/guide/integrations/astro.md): Run Kubb as part of your Astro project with the kubb/astro integration. - [Run Kubb with esbuild](https://kubb.dev/docs/5.x/guide/integrations/esbuild.md): Run Kubb as part of your esbuild build with kubb/esbuild. - [Run Kubb with Farm](https://kubb.dev/docs/5.x/guide/integrations/farm.md): Run Kubb as part of your Farm build with kubb/farm. - [GitHub Actions](https://kubb.dev/docs/5.x/guide/integrations/github-actions.md): Publish a Kubb snapshot from GitHub Actions with kubb-labs/action, and install the tarball from the pull-request comment. - [GitLab CI](https://kubb.dev/docs/5.x/guide/integrations/gitlab.md): Publish a Kubb snapshot from a GitLab CI job with kubb studio snapshot, and post the tarball on the merge request. - [Run Kubb with Nuxt](https://kubb.dev/docs/5.x/guide/integrations/nuxt.md): Run Kubb as part of your Nuxt application with the kubb/nuxt module. - [Run Kubb with Rolldown](https://kubb.dev/docs/5.x/guide/integrations/rolldown.md): Run Kubb as part of your Rolldown build with kubb/rolldown. - [Run Kubb with Rollup](https://kubb.dev/docs/5.x/guide/integrations/rollup.md): Run Kubb as part of your Rollup build with kubb/rollup. - [Run Kubb with Rspack](https://kubb.dev/docs/5.x/guide/integrations/rspack.md): Run Kubb as part of your Rspack build with kubb/rspack. - [Kubb Studio](https://kubb.dev/docs/5.x/guide/integrations/studio.md): Generate and review OpenAPI clients in Kubb Studio with a local CLI agent, Docker agent, or shared sandbox. Publish installable snapshots from CI. - [Run Kubb with Vite](https://kubb.dev/docs/5.x/guide/integrations/vite.md): Run Kubb as part of your Vite build with kubb/vite. - [Run Kubb with webpack](https://kubb.dev/docs/5.x/guide/integrations/webpack.md): Run Kubb as part of your webpack build with kubb/webpack. - [Recipes](https://kubb.dev/docs/5.x/guide/recipes.md): Copy-paste kubb.config.ts configurations for the most common stacks including TypeScript, React Query, Zod, MSW, multi-spec setups and more. - [Migration guide](https://kubb.dev/docs/5.x/migration.md): Step-by-step guide for migrating from Kubb v4 to v5. - [Migration: @kubb/adapter-oas](https://kubb.dev/docs/5.x/migration/adapter-oas.md): Configuration changes for @kubb/adapter-oas when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-client removed](https://kubb.dev/docs/5.x/migration/plugin-client.md): @kubb/plugin-client is removed. Migrate to @kubb/plugin-axios or @kubb/plugin-fetch. - [Migration: @kubb/plugin-cypress](https://kubb.dev/docs/5.x/migration/plugin-cypress.md): Changes for @kubb/plugin-cypress when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-faker](https://kubb.dev/docs/5.x/migration/plugin-faker.md): Configuration and generated-output changes for @kubb/plugin-faker when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-mcp](https://kubb.dev/docs/5.x/migration/plugin-mcp.md): Changes for @kubb/plugin-mcp when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-msw](https://kubb.dev/docs/5.x/migration/plugin-msw.md): Configuration and generated-output changes for @kubb/plugin-msw when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-react-query](https://kubb.dev/docs/5.x/migration/plugin-react-query.md): Configuration and generated-output changes for @kubb/plugin-react-query when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-swr](https://kubb.dev/docs/5.x/migration/plugin-swr.md): Configuration changes for @kubb/plugin-swr when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-ts](https://kubb.dev/docs/5.x/migration/plugin-ts.md): Configuration and generated-output changes for @kubb/plugin-ts when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-vue-query](https://kubb.dev/docs/5.x/migration/plugin-vue-query.md): Configuration and generated-output changes for @kubb/plugin-vue-query when migrating from Kubb v4 to v5. - [Migration: @kubb/plugin-zod](https://kubb.dev/docs/5.x/migration/plugin-zod.md): Configuration and generated-output changes for @kubb/plugin-zod when migrating from Kubb v4 to v5. - [Commands](https://kubb.dev/docs/5.x/reference/commands.md): Reference for every command and flag exposed by the kubb CLI including init, generate, validate, mcp and studio. - [kubb generate](https://kubb.dev/docs/5.x/reference/commands/generate.md): The generate command runs the Kubb code-generation pipeline based on your kubb.config.ts. - [kubb init](https://kubb.dev/docs/5.x/reference/commands/init.md): The init command bootstraps a fresh Kubb project with an interactive wizard. - [kubb mcp](https://kubb.dev/docs/5.x/reference/commands/mcp.md): The mcp command starts a Model Context Protocol server so LLM clients can interact with your schemas and trigger generation. - [kubb studio](https://kubb.dev/docs/5.x/reference/commands/studio.md): Command reference for connecting a project to Kubb Studio, managing pairing and permissions, and publishing CI snapshots. - [kubb validate](https://kubb.dev/docs/5.x/reference/commands/validate.md): The validate command checks that a Swagger/OpenAPI document is valid without running the full pipeline. - [Configuration](https://kubb.dev/docs/5.x/reference/configuration.md): Reference for kubb.config.ts with every option, default and example for the Kubb v5 UserConfig. - [Diagnostics](https://kubb.dev/docs/5.x/reference/diagnostics.md): Reference for Kubb's diagnostic codes, the stable codes Kubb prints when a build fails, with causes and fixes. - [KUBB_ADAPTER_REQUIRED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-adapter-required.md): The KUBB_ADAPTER_REQUIRED diagnostic fires when an action needs an adapter but none is configured. - [KUBB_BARREL_DUPLICATE_EXPORT](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-barrel-duplicate-export.md): The KUBB_BARREL_DUPLICATE_EXPORT diagnostic fires when two files in the same barrel directory export the same name. - [KUBB_CLEAN_ROOT](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-clean-root.md): The KUBB_CLEAN_ROOT diagnostic fires when output.clean would delete the project root instead of only the generated code. - [KUBB_DEPRECATED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-deprecated.md): The KUBB_DEPRECATED diagnostic flags a schema or operation marked deprecated in your OpenAPI document. - [KUBB_FORMAT_FAILED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-format-failed.md): The KUBB_FORMAT_FAILED diagnostic fires when the formatter pass over the generated files fails. - [KUBB_INPUT_NOT_FOUND](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-input-not-found.md): The KUBB_INPUT_NOT_FOUND diagnostic fires when the file set as input (or passed to kubb generate) cannot be read. - [KUBB_INPUT_REQUEST_FAILED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-input-request-failed.md): The KUBB_INPUT_REQUEST_FAILED diagnostic fires when a URL set as input answers with a 4xx or 5xx status instead of the OpenAPI document. - [KUBB_INPUT_REQUIRED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-input-required.md): The KUBB_INPUT_REQUIRED diagnostic fires when an adapter is configured but no input was provided. - [KUBB_INPUT_UNREACHABLE](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-input-unreachable.md): The KUBB_INPUT_UNREACHABLE diagnostic fires when a URL set as input never answers, so the request fails before a status comes back. - [KUBB_INVALID_DOCUMENT](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-invalid-document.md): The KUBB_INVALID_DOCUMENT diagnostic fires when the resolved input is not an OpenAPI or Swagger document. - [KUBB_INVALID_PLUGIN_OPTIONS](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-invalid-plugin-options.md): The KUBB_INVALID_PLUGIN_OPTIONS diagnostic fires when a plugin is configured with options that cannot be honored, such as output.mode 'file' paired with a group option or with sdk.mode 'tag'. - [KUBB_INVALID_SERVER_VARIABLE](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-invalid-server-variable.md): The KUBB_INVALID_SERVER_VARIABLE diagnostic, raised when a server URL variable value is not one of the values its enum allows. - [KUBB_LEGACY_INPUT](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-legacy-input.md): The KUBB_LEGACY_INPUT diagnostic fires when input still uses the v4 path or data wrapper. - [KUBB_LINT_FAILED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-lint-failed.md): The KUBB_LINT_FAILED diagnostic fires when the linter pass over the generated files fails. - [KUBB_PATH_TRAVERSAL](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-path-traversal.md): The KUBB_PATH_TRAVERSAL diagnostic fires when a resolved output path escapes the configured output directory. - [KUBB_PERFORMANCE](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-performance.md): The KUBB_PERFORMANCE diagnostic records how long a plugin took, feeding the run summary and timing bars. - [KUBB_PLUGIN_FAILED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-plugin-failed.md): The KUBB_PLUGIN_FAILED diagnostic fires when a plugin throws while generating or reports an error through ctx.error. - [KUBB_PLUGIN_INFO](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-plugin-info.md): The KUBB_PLUGIN_INFO diagnostic carries an informational message a plugin reported through ctx.info. - [KUBB_PLUGIN_NOT_FOUND](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-plugin-not-found.md): The KUBB_PLUGIN_NOT_FOUND diagnostic, raised when a plugin another plugin depends on is missing from your kubb.config.ts. - [KUBB_PLUGIN_WARNING](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-plugin-warning.md): The KUBB_PLUGIN_WARNING diagnostic carries a non-fatal warning a plugin reported through ctx.warn. - [KUBB_POST_GENERATE_FAILED](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-post-generate-failed.md): The KUBB_POST_GENERATE_FAILED diagnostic fires when a post-generate output.postGenerate command exits with a non-zero status. - [KUBB_REF_NOT_FOUND](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-ref-not-found.md): The KUBB_REF_NOT_FOUND diagnostic, raised when a $ref in your OpenAPI document points at a definition Kubb cannot resolve. - [KUBB_UNKNOWN](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-unknown.md): The KUBB_UNKNOWN diagnostic, a build error that does not yet carry a specific code. - [KUBB_UNSUPPORTED_FORMAT](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-unsupported-format.md): The KUBB_UNSUPPORTED_FORMAT diagnostic fires when a schema uses a format Kubb does not map to a specific type. - [KUBB_UPDATE_AVAILABLE](https://kubb.dev/docs/5.x/reference/diagnostics/kubb-update-available.md): The KUBB_UPDATE_AVAILABLE diagnostic tells you a newer Kubb version is published on npm. - [JSX renderer](https://kubb.dev/docs/5.x/reference/jsx.md): The kubb/jsx surface backed by @kubb/renderer-jsx. jsxRenderer, the built-in components, and the JSX runtime for component-based code generation. - [Kit API](https://kubb.dev/docs/5.x/reference/kit.md): The kubb/kit reference for authoring plugins, generators, resolvers, renderers, adapters, parsers, and storage backends, plus the ast namespace, Diagnostics, the engine surface, and the testing helpers. - [Adapters](https://kubb.dev/docs/5.x/reference/kit/adapters.md): createAdapter builds an adapter that converts an input specification into the universal AST. Covers the Adapter interface, the built-in OpenAPI adapter, and writing your own. - [AST and node builders](https://kubb.dev/docs/5.x/reference/kit/ast.md): The ast namespace groups the factory node builders, the transform and collect visitors, the guards, the ref and naming helpers, the macro engine, and the printer helper behind one import. - [Diagnostics](https://kubb.dev/docs/5.x/reference/kit/diagnostics.md): Diagnostics is the namespace a plugin or adapter uses to build and narrow the structured errors Kubb collects during a build, each carrying a stable code, a severity, and a location. - [Engine and configuration](https://kubb.dev/docs/5.x/reference/kit/engine.md): The engine that runs your plugins comes from the kubb package and its kubb/config subpath. Covers defineConfig, createKubb, the Kubb instance, BuildOutput, and narrowing config.input. - [Generators](https://kubb.dev/docs/5.x/reference/kit/generators.md): defineGenerator declares a named generator unit that walks the AST and emits files. Covers the schema, operation, and operations methods and the GeneratorContext passed to each. - [Lifecycle hooks](https://kubb.dev/docs/5.x/reference/kit/hooks.md): Every kubb:* hook a build fires, its payload, and when it fires. Listen with kubb.hooks.hook(name, handler) or from a plugin's hooks map. - [Parsers](https://kubb.dev/docs/5.x/reference/kit/parsers.md): defineParser creates a parser that converts a generated file AST into the source string written to disk. Covers the Parser interface, the built-in TypeScript parser, and adding your own. - [Plugins](https://kubb.dev/docs/5.x/reference/kit/plugins.md): definePlugin wraps a factory into a typed Plugin, with all lifecycle handlers under one hooks object and the KubbPluginSetupContext that registers generators, resolvers, macros, and options. - [Renderers](https://kubb.dev/docs/5.x/reference/kit/renderers.md): createRenderer wraps a builder into a Renderer factory for generators that emit something other than plain FileNodes, alongside jsxRenderer, the React-free JSX renderer shipped in kubb/jsx. - [Resolvers](https://kubb.dev/docs/5.x/reference/kit/resolvers.md): createResolver builds a Resolver that controls file naming and path resolution for a plugin, with auto-injected defaults under resolver.default and Resolver.merge for layering overrides. - [Storage](https://kubb.dev/docs/5.x/reference/kit/storage.md): Storage backends decide where generated files are written. Covers createStorage, the Storage interface, and the built-in fsStorage and memoryStorage backends. - [Testing](https://kubb.dev/docs/5.x/reference/kit/testing.md): kubb/kit/testing is a separate subpath for the Vitest-backed helpers used to test plugins, generators, and adapters, kept apart from kubb/kit so the authoring toolkit never pulls in Vitest. - [Telemetry](https://kubb.dev/docs/5.x/reference/telemetry.md): Learn what anonymous usage data Kubb collects, how to opt out, and how the data improves the tool. - [Ecosystem](https://kubb.dev/docs/5.x/resources/ecosystem.md): Discover projects built with Kubb, articles featuring Kubb, and community resources. See how developers use Kubb for OpenAPI code generation. - [Ecosystem - Projects, Articles & Community](https://kubb.dev/ecosystem.md): Discover projects built with Kubb, articles featuring Kubb, and community resources. See how teams use Kubb for OpenAPI code generation. - [Parsers - Explore the Ecosystem](https://kubb.dev/parsers.md): Discover official and community parsers for Kubb. Convert Kubb's universal AST into TypeScript, JavaScript and other source files. - [Kubb Markdown Parser](https://kubb.dev/parsers/parser-md.md): Emits `.md` and `.markdown` files from the Kubb AST, joining source blocks as plain markdown and prepending YAML frontmatter from a file's meta. - [Options](https://kubb.dev/parsers/parser-md/reference/options.md): Configuration options for @kubb/parser-md. The Kubb Markdown parser takes no options. - [Kubb TypeScript Parser](https://kubb.dev/parsers/parser-ts.md): Prints the Kubb AST to TypeScript source with the official TypeScript compiler, so every plugin writes real `.ts`, `.tsx`, `.js`, and `.jsx` files. - [Options](https://kubb.dev/parsers/parser-ts/reference/options.md): Configuration options for @kubb/parser-ts. Rewrite the import and export extensions the TypeScript parser emits. - [Plugins - Explore the Ecosystem](https://kubb.dev/plugins.md): Discover official and community plugins for Kubb. Generate TypeScript types, TanStack Query hooks, Zod schemas, MSW mocks, and more from your OpenAPI specification. - [Kubb Axios Plugin](https://kubb.dev/plugins/plugin-axios.md): Generates a type-safe axios client from your OpenAPI spec, one async function per operation, so each call stays in sync with the API. - [Authenticate your API client](https://kubb.dev/plugins/plugin-axios/guide/authentication.md): Add authentication to the client Kubb generates. Resolve bearer, basic, and apiKey credentials from your OpenAPI security schemes with one auth callback. - [Set your own baseURL](https://kubb.dev/plugins/plugin-axios/guide/base-url.md): Set up base URLs for API clients generated by Kubb. Environment-specific configuration and dynamic base URLs. - [Call operations](https://kubb.dev/plugins/plugin-axios/guide/calling-operations.md): Call the functions Kubb generates from your OpenAPI spec. Pass typed path, query, header, cookie, and body parameters, then read the status, data, and native response off one result. - [Error handling](https://kubb.dev/plugins/plugin-axios/guide/error-handling.md): Handle failures from the client Kubb generates. Catch a ResponseError, switch to a returned error result with throwOnError, and tell a network failure apart from a 4xx or 5xx response. - [Interceptors](https://kubb.dev/plugins/plugin-axios/guide/interceptors.md): Run code on every call the Kubb client makes. Add or rewrite headers before the send, observe or transform the response, react to errors, and register, replace, or remove handlers at runtime. - [Serialization and parsing](https://kubb.dev/plugins/plugin-axios/guide/serialization.md): Control how Kubb encodes path, query, header, and cookie parameters, serializes request bodies per content type, and decodes and validates responses in the generated Fetch and Axios client. - [Use a custom transport](https://kubb.dev/plugins/plugin-axios/guide/transport.md): Replace the transport the generated client sends through. Wrap fetch with retries or pass a pre-configured axios instance, while Kubb keeps owning URLs, serialization, and auth. - [Build a URL without sending](https://kubb.dev/plugins/plugin-axios/recipes/build-a-url-without-sending.md): Build an operation's final URL without sending a request using the client @kubb/plugin-axios bundles. - [Class-based SDK](https://kubb.dev/plugins/plugin-axios/recipes/class-based-sdk.md): Generate a class-based SDK from your OpenAPI spec with @kubb/plugin-axios, one class per tag or a single flat class. - [Point at an env-driven host](https://kubb.dev/plugins/plugin-axios/recipes/point-at-an-env-driven-host.md): Read the API host from an environment variable at runtime by setting baseURL with @kubb/plugin-axios. - [Validate requests and responses](https://kubb.dev/plugins/plugin-axios/recipes/validate-requests-and-responses.md): Validate request and response bodies at runtime with Zod schemas using @kubb/plugin-axios and @kubb/plugin-zod. - [Options](https://kubb.dev/plugins/plugin-axios/reference/options.md): Configuration options for @kubb/plugin-axios. - [Kubb Barrel Plugin](https://kubb.dev/plugins/plugin-barrel.md): Generates an index.ts barrel for every plugin output and one root barrel, so you import all generated code from a single entry point. Ships with Kubb, but only generates barrels once output.barrel is configured. - [A barrel in every folder](https://kubb.dev/plugins/plugin-barrel/recipes/a-barrel-in-every-folder.md): Set nested to true on a plugin's output.barrel so it writes an index.ts in every subdirectory, letting callers import from any depth. - [Named re-exports for tree-shaking](https://kubb.dev/plugins/plugin-barrel/recipes/named-re-exports-for-tree-shaking.md): Set the barrel type to named so each barrel re-exports symbols by name, keeping imports explicit and bundlers able to tree-shake. - [One wildcard barrel](https://kubb.dev/plugins/plugin-barrel/recipes/one-wildcard-barrel.md): Set the barrel type to all so each barrel uses export star, a smaller barrel that re-exports everything. - [Turn barrels on](https://kubb.dev/plugins/plugin-barrel/recipes/turn-barrels-on.md): output.barrel defaults to false. Set it on defineConfig to enable a root barrel and the default every plugin without its own output.barrel inherits. - [Options](https://kubb.dev/plugins/plugin-barrel/reference/options.md): Configuration options for @kubb/plugin-barrel. Sets the re-export style for the index.ts barrel files Kubb generates. - [Kubb Client Plugin](https://kubb.dev/plugins/plugin-client.md): Generates typed operation functions from your OpenAPI spec that call a client module you own, so you decide the transport, auth, and error handling. - [Authenticate](https://kubb.dev/plugins/plugin-client/guide/authentication.md): Add tokens, request signing, or other auth to your client with the security list that @kubb/plugin-client passes, including async credentials. - [Call operations](https://kubb.dev/plugins/plugin-client/guide/calling-operations.md): Call the functions Kubb generates from your OpenAPI spec. Pass typed path, query, header, and body parameters, and read the result your client returns. - [Write your client](https://kubb.dev/plugins/plugin-client/guide/write-your-client.md): The module that @kubb/plugin-client imports. Export a client function and two types, then add the behavior your app needs. - [Validate requests and responses](https://kubb.dev/plugins/plugin-client/recipes/validate-requests-and-responses.md): Pass Zod schemas from @kubb/plugin-zod to your client and validate request and response bodies there. The client runs the schemas, not Kubb. - [Options](https://kubb.dev/plugins/plugin-client/reference/options.md): Configuration options for @kubb/plugin-client. - [Kubb Cypress Plugin](https://kubb.dev/plugins/plugin-cypress.md): Generates a typed cy.request() wrapper per OpenAPI operation so your Cypress tests call the API through generated helpers and catch broken calls at compile time. - [Typed request helpers against staging](https://kubb.dev/plugins/plugin-cypress/recipes/typed-request-helpers-against-staging.md): Point the generated Cypress request helpers at a non-production host with the baseURL option. - [Options](https://kubb.dev/plugins/plugin-cypress/reference/options.md): Configuration options for @kubb/plugin-cypress. - [Kubb Faker Plugin](https://kubb.dev/plugins/plugin-faker.md): Generates a Faker.js mock-data factory for every schema in your OpenAPI spec. Use the factories in tests, Storybook, and local development without a running backend. - [Deterministic data with a seed](https://kubb.dev/plugins/plugin-faker/recipes/deterministic-data-with-a-seed.md): Produce the same mock values on every run by setting the seed option in @kubb/plugin-faker. - [Format date fields with Day.js](https://kubb.dev/plugins/plugin-faker/recipes/format-date-fields-with-dayjs.md): Format generated date and time fields with Day.js by setting the dateParser option in @kubb/plugin-faker. - [Localized mock data](https://kubb.dev/plugins/plugin-faker/recipes/localized-mock-data.md): Generate region-specific mock values from @kubb/plugin-faker by setting the locale option. - [Options](https://kubb.dev/plugins/plugin-faker/reference/options.md): Configuration options for @kubb/plugin-faker. - [Kubb Fetch Plugin](https://kubb.dev/plugins/plugin-fetch.md): Generates a type-safe Fetch API client from your OpenAPI spec, one async function per operation, so each call stays in sync with the API. - [Authenticate your API client](https://kubb.dev/plugins/plugin-fetch/guide/authentication.md): Add authentication to the client Kubb generates. Resolve bearer, basic, and apiKey credentials from your OpenAPI security schemes with one auth callback. - [Set your own baseURL](https://kubb.dev/plugins/plugin-fetch/guide/base-url.md): Set up base URLs for API clients generated by Kubb. Environment-specific configuration and dynamic base URLs. - [Call operations](https://kubb.dev/plugins/plugin-fetch/guide/calling-operations.md): Call the functions Kubb generates from your OpenAPI spec. Pass typed path, query, header, cookie, and body parameters, then read the status, data, and native response off one result. - [Error handling](https://kubb.dev/plugins/plugin-fetch/guide/error-handling.md): Handle failures from the client Kubb generates. Catch a ResponseError, switch to a returned error result with throwOnError, and tell a network failure apart from a 4xx or 5xx response. - [Interceptors](https://kubb.dev/plugins/plugin-fetch/guide/interceptors.md): Run code on every call the Kubb client makes. Add or rewrite headers before the send, observe or transform the response, react to errors, and register, replace, or remove handlers at runtime. - [Serialization and parsing](https://kubb.dev/plugins/plugin-fetch/guide/serialization.md): Control how Kubb encodes path, query, header, and cookie parameters, serializes request bodies per content type, and decodes and validates responses in the generated Fetch and Axios client. - [Server-sent events](https://kubb.dev/plugins/plugin-fetch/guide/server-sent-events.md): Consume a text/event-stream operation from the client Kubb generates. Iterate typed Server-Sent Events with for-await, read the native response, and stop the stream with an AbortSignal. - [Use a custom transport](https://kubb.dev/plugins/plugin-fetch/guide/transport.md): Replace the transport the generated client sends through. Wrap fetch with retries or pass a pre-configured axios instance, while Kubb keeps owning URLs, serialization, and auth. - [Build a URL without sending](https://kubb.dev/plugins/plugin-fetch/recipes/build-a-url-without-sending.md): Build an operation's final URL without sending a request using the client @kubb/plugin-fetch bundles. - [Class-based SDK](https://kubb.dev/plugins/plugin-fetch/recipes/class-based-sdk.md): Generate a class-based SDK from your OpenAPI spec with @kubb/plugin-fetch, one class per tag or a single flat class. - [Point at an env-driven host](https://kubb.dev/plugins/plugin-fetch/recipes/point-at-an-env-driven-host.md): Read the API host from an environment variable at runtime by setting baseURL with @kubb/plugin-fetch. - [Stream server-sent events](https://kubb.dev/plugins/plugin-fetch/recipes/stream-server-sent-events.md): Consume a text/event-stream operation from the client @kubb/plugin-fetch generates, reading typed events with for-await. - [Validate requests and responses](https://kubb.dev/plugins/plugin-fetch/recipes/validate-requests-and-responses.md): Validate request and response bodies at runtime with Zod schemas using @kubb/plugin-fetch and @kubb/plugin-zod. - [Options](https://kubb.dev/plugins/plugin-fetch/reference/options.md): Configuration options for @kubb/plugin-fetch. - [Kubb MCP Plugin](https://kubb.dev/plugins/plugin-mcp.md): Generates a Model Context Protocol server from your OpenAPI spec, so AI assistants can call each operation as a typed tool. - [A working MCP server from a spec](https://kubb.dev/plugins/plugin-mcp/recipes/a-working-mcp-server-from-a-spec.md): Register the TypeScript, Zod, and one client plugin alongside pluginMcp to generate a working MCP server from an OpenAPI spec. - [Choose the client when two are registered](https://kubb.dev/plugins/plugin-mcp/recipes/choose-the-client-when-two-are-registered.md): Set the client option so the MCP handlers know which HTTP client to call when both the Axios and Fetch plugins are registered. - [Options](https://kubb.dev/plugins/plugin-mcp/reference/options.md): Configuration options for @kubb/plugin-mcp. - [Kubb MSW Plugin](https://kubb.dev/plugins/plugin-msw.md): Generates MSW request handlers from your OpenAPI spec so you can mock the API in tests and during local development. - [Auto-generated mock data](https://kubb.dev/plugins/plugin-msw/recipes/auto-generated-mock-data.md): Fill MSW handlers with generated Faker data by setting the parser option to faker alongside @kubb/plugin-faker. - [Handlers you fill from tests](https://kubb.dev/plugins/plugin-msw/recipes/handlers-you-fill-from-tests.md): Generate MSW handlers that return an empty typed payload you supply from each test by keeping the parser option on its default. - [Register handlers with a server](https://kubb.dev/plugins/plugin-msw/recipes/register-handlers-with-a-server.md): Emit a handlers.ts collection with @kubb/plugin-msw and drop it into an MSW server or worker. - [Options](https://kubb.dev/plugins/plugin-msw/reference/options.md): Configuration options for @kubb/plugin-msw. - [Kubb React Query Plugin](https://kubb.dev/plugins/plugin-react-query.md): Generates typed TanStack Query hooks for React from your OpenAPI spec, so reads and writes call your API through useQuery, useMutation, and useInfiniteQuery without hand-written boilerplate. - [Call operations](https://kubb.dev/plugins/plugin-react-query/guide/calling-operations.md): Use the TanStack Query hooks Kubb generates from your OpenAPI spec. Pass typed path, query, and header parameters and read data and error state off the hook. - [Custom query keys](https://kubb.dev/plugins/plugin-react-query/recipes/custom-query-keys.md): Control the queryKey array a useQuery hook uses for caching and invalidation with @kubb/plugin-react-query. - [Infinite scroll query](https://kubb.dev/plugins/plugin-react-query/recipes/infinite-scroll-query.md): Generate useInfiniteQuery hooks for cursor-based pagination with @kubb/plugin-react-query. - [Suspense hooks](https://kubb.dev/plugins/plugin-react-query/recipes/suspense-hooks.md): Generate useSuspenseQuery hooks alongside the regular query hooks with @kubb/plugin-react-query. - [Wrap every hook with shared options](https://kubb.dev/plugins/plugin-react-query/recipes/wrap-hooks-with-shared-options.md): Route every generated hook through your own options function with @kubb/plugin-react-query's customOptions. - [Options](https://kubb.dev/plugins/plugin-react-query/reference/options.md): Configuration options for @kubb/plugin-react-query. - [Kubb Redoc Plugin](https://kubb.dev/plugins/plugin-redoc.md): Generates a single-file HTML page from your OpenAPI spec with Redoc, rebuilt on every Kubb run so the docs match the spec your code comes from. - [Standalone API docs page](https://kubb.dev/plugins/plugin-redoc/recipes/standalone-api-docs-page.md): Generate a single HTML file with the spec embedded inline that you can drop on any static host with no build step. - [Options](https://kubb.dev/plugins/plugin-redoc/reference/options.md): Configuration options for @kubb/plugin-redoc. - [Kubb SWR Plugin](https://kubb.dev/plugins/plugin-swr.md): Generates typed SWR hooks from your OpenAPI spec, so data fetching stays in sync with the API. - [Call operations](https://kubb.dev/plugins/plugin-swr/guide/calling-operations.md): Use the SWR hooks Kubb generates from your OpenAPI spec. Queries fetch with typed parameters, and mutations pass their input through trigger. - [Immutable requests](https://kubb.dev/plugins/plugin-swr/recipes/immutable-requests.md): Fetch data that never changes once loaded by passing immutable to a generated SWR hook. - [Skip a request until ready](https://kubb.dev/plugins/plugin-swr/recipes/skip-a-request-until-ready.md): Use shouldFetch on a generated SWR hook to hold off a request until its parameters are ready. - [Options](https://kubb.dev/plugins/plugin-swr/reference/options.md): Configuration options for @kubb/plugin-swr. - [Kubb TypeScript Plugin](https://kubb.dev/plugins/plugin-ts.md): Generates TypeScript types and interfaces from your OpenAPI spec, the typed foundation the other Kubb plugins build on. - [Map spec types to native TS](https://kubb.dev/plugins/plugin-ts/recipes/map-spec-types-to-native-ts.md): Replace a schema type handler to build your own TypeScript AST node for it. - [Prefix every generated type name](https://kubb.dev/plugins/plugin-ts/recipes/prefix-every-generated-type-name.md): Override resolver.name so every type plugin-ts emits carries a shared prefix, useful for avoiding collisions with hand-written types. - [Strip descriptions with a macro](https://kubb.dev/plugins/plugin-ts/recipes/strip-descriptions-with-a-macro.md): Register a macro through the macros option to drop every schema description before plugin-ts prints its JSDoc. - [Tree-shakeable enums](https://kubb.dev/plugins/plugin-ts/recipes/tree-shakeable-enums.md): Emit each OpenAPI enum as an as const object so bundlers drop the values you never use. - [Options](https://kubb.dev/plugins/plugin-ts/reference/options.md): Configuration options for @kubb/plugin-ts. - [Kubb Vue Query Plugin](https://kubb.dev/plugins/plugin-vue-query.md): Generates TanStack Query composables for Vue from your OpenAPI spec, so every read and write is a typed useQuery, useInfiniteQuery, or useMutation. - [Call operations](https://kubb.dev/plugins/plugin-vue-query/guide/calling-operations.md): Use the TanStack Query composables Kubb generates from your OpenAPI spec, with reactive parameters and typed data and error state. - [Custom query keys](https://kubb.dev/plugins/plugin-vue-query/recipes/custom-query-keys.md): Control the queryKey array a useQuery composable uses for caching and invalidation with @kubb/plugin-vue-query. - [Infinite scroll query](https://kubb.dev/plugins/plugin-vue-query/recipes/infinite-scroll-query.md): Generate useInfiniteQuery composables for cursor-based pagination with @kubb/plugin-vue-query. - [Reactive params that refetch](https://kubb.dev/plugins/plugin-vue-query/recipes/reactive-params-that-refetch.md): Pass a ref or getter to a generated Vue Query composable so the query re-runs when the value changes. - [Options](https://kubb.dev/plugins/plugin-vue-query/reference/options.md): Configuration options for @kubb/plugin-vue-query. - [Kubb Zod Plugin](https://kubb.dev/plugins/plugin-zod.md): Generates Zod v4 schemas from your OpenAPI spec so you validate API responses, form input, and query params at runtime. - [Coerce query and form input](https://kubb.dev/plugins/plugin-zod/recipes/coerce-query-and-form-input.md): Scope z.coerce to a single tag with override so only matching operations coerce their schemas. - [Downgrade int64 to a plain number](https://kubb.dev/plugins/plugin-zod/recipes/downgrade-int64-to-a-plain-number.md): Replace the bigint printer node so int64 fields validate as z.number() instead of the default z.bigint(). - [Encode a custom type on requests](https://kubb.dev/plugins/plugin-zod/recipes/encode-a-custom-type-on-requests.md): Use a direction-aware printer node so a domain type decodes on responses and encodes back to the wire format on requests, including through a $ref. - [Fast-path validation with compile](https://kubb.dev/plugins/plugin-zod/recipes/fast-path-validation-with-compile.md): Compile generated Zod schemas with z.compile for high-throughput fast-path validation. - [Prefix every schema type name](https://kubb.dev/plugins/plugin-zod/recipes/prefix-every-schema-type-name.md): Override resolver.schema.typeName so the z.infer alias plugin-zod exports for every schema carries a shared prefix. - [Runtime type guards and assertions](https://kubb.dev/plugins/plugin-zod/recipes/runtime-type-guards-and-assertions.md): Generate TypeScript type guards (is*) and assertion functions (assert*) using Zod v4's native validate API. - [Strip descriptions with a macro](https://kubb.dev/plugins/plugin-zod/recipes/strip-descriptions-with-a-macro.md): Register a macro through the macros option to drop every schema description before plugin-zod prints a .describe() call. - [Tree-shakeable schemas with Zod Mini](https://kubb.dev/plugins/plugin-zod/recipes/tree-shakeable-schemas-with-zod-mini.md): Generate Zod Mini schemas on the functional API so bundlers tree-shake the validators you never call. - [Use a custom codec from your own package](https://kubb.dev/plugins/plugin-zod/recipes/use-a-custom-codec-from-your-package.md): Print a codec from your own package, such as myCodec.uint64(), and add its import to the generated file. - [Validate every API response](https://kubb.dev/plugins/plugin-zod/recipes/validate-every-api-response.md): Point a Fetch client at the generated Zod schemas to validate every response body at runtime. - [Zod as the single source of truth](https://kubb.dev/plugins/plugin-zod/recipes/zod-as-the-single-source-of-truth.md): Export a z.infer alias next to every schema so Zod carries the types and you drop plugin-ts. - [Options](https://kubb.dev/plugins/plugin-zod/reference/options.md): Configuration options for @kubb/plugin-zod. - [Support Kubb - Sponsor OpenAPI TypeScript Code Generator](https://kubb.dev/sponsors.md): Support Kubb's development and help us build better OpenAPI code generation tools. Become a sponsor and get your name featured.