Point Kubb at an OpenAPI spec and it generates types, clients, hooks, validators, mocks, and more.
bun add kubb
# or
pnpm add kubb
# or
npm install kubbRun the setup wizard to create a kubb.config.ts:
npx kubb initThe wizard creates a package.json if needed, guides you through plugin selection, installs packages, and writes kubb.config.ts. Then generate your code:
npx kubb generateSee the documentation for detailed usage and advanced features.
- Generate from a spec: point Kubb at an OpenAPI document and it produces TypeScript types, type-safe API clients, TanStack Query hooks for React and Vue, SWR hooks, Zod validators, Faker mocks, and MSW handlers.
- Read Swagger 2.0, OpenAPI 3.0, and 3.1, with TypeScript-first output that runs on Node.js and Bun.
- Pick what you generate from the plugin ecosystem:
plugin-ts,plugin-client,plugin-react-query,plugin-vue-query,plugin-swr,plugin-zod,plugin-faker,plugin-msw,plugin-cypress,plugin-redoc, andplugin-mcp. Enable only the ones a project needs. - Choose your HTTP client: use the axios or fetch presets, or point at a custom client module so generated requests run through your own wrapper.
- Control the generated tree: group files by tag, emit barrel exports, and include or exclude operations to keep the output focused.
- Build your own output with custom plugins, adapters, and the JSX-based renderer (
@kubb/renderer-jsx) for full control over what lands on disk. - Hook into your bundler with
unplugin-kubb, which runs generation inside Vite, Nuxt, Astro, webpack, and other build tools. - Drive generation from AI tools through the built-in Model Context Protocol (MCP) server, which works with Claude, Cursor, and other MCP-compatible assistants.
- Generate from inside Claude Code with the Kubb plugin, which adds slash commands, a config skill, and an agent that run the Kubb CLI.
Kubb is an open source project, and its development is funded entirely by sponsors. If you would like to become a sponsor, please consider:
We welcome contributions that help improve Kubb. A few ways to get involved:
- Found a bug? File it in the issue tracker.
- Have an idea to improve Kubb? Open an issue to share it.
- Need help? Ask the community on Discord.
See CONTRIBUTING.md for the project structure, local setup, and commands.
This repository is licensed under the MIT License, Copyright © 2025 Stijn Van Hulle.
See LICENSE for details.