Kubb is a modular code-generation framework that turns OpenAPI descriptions into type-safe TypeScript code, Zod schemas, and TanStack Query integrations. It is used by TypeScript developers to generate client code and related interfaces from API specifications. The catalogue contains extensions such as skills, commands, hooks, agents, and a plugin that support Kubb workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kubb-labs/kubb/confignpx skills add kubb-labs/kubb --skill configgit clone --depth 1 https://github.com/kubb-labs/kubbWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kubb-labs/kubb/config)<a href="https://agentmods.dev/skills/kubb-labs/kubb/config"><img src="https://agentmods.dev/badge/skills/kubb-labs/kubb/config.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00049 | $0.01323 |
| Opus 5 | $0.00024 | $0.00661 |
| Sonnet 5 | $0.00010 | $0.00265 |
| Haiku 4.5 | $0.00005 | $0.00132 |
Grade A, and why
config scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Config Skill
This skill instructs agents on authoring a kubb.config.ts and picking the right
@kubb/plugin-* packages. Generation runs through the kubb CLI (kubb generate), and the same
build powers the bundled MCP server.
When to Use
- Setting up Kubb in a project
- Adding or swapping a generator plugin
- Debugging why generated output is missing or wrong
What It Does
- Shows the shape of a
kubb.config.ts - Lists the generator plugins and how to combine them
- Points at each plugin's
Optionstype and kubb.dev docs page for authoritative options - Describes the validate, init and generate workflow
Shape of a config
import { defineConfig } from 'kubb'
import { pluginTs } from '@kubb/plugin-ts'
import { pluginAxios } from '@kubb/plugin-axios'
export default defineConfig({
root: '.',
input: {
path: './petstore.yaml', // local file path or a remote URL
},
output: {
path: './src/gen',
clean: true, // wipe the output dir before each run
barrel: { type: 'named' }, // generate index.ts barrels with named exports
},
plugins: [
pluginTs({ output: { path: 'models' } }),
pluginAxios({ output: { path: 'clients' } }),
],
})
Rules that matter:
- Set adapter options only when you need them, through a top-level
adapter: adapterOas({ ... })from@kubb/adapter-oas(forvalidate,serverIndex,serverVariables,discriminatororcontentType). pluginTsis the base. The client plugins (pluginAxios,pluginFetch) need it, the framework plugins (pluginReactQuery,pluginVueQuery,pluginSwr) needpluginTsand a client plugin, andpluginMswneedspluginTsandpluginFaker. Check the plugin's docs page on kubb.dev (https://kubb.dev/plugins/plugin-<name>) for the full dependency list.- Each generator plugin takes its own
output.path, resolved relative to the top-leveloutput.path. Keep generated kinds in separate folders (models,clients,hooks, ...). inputaccepts{ path }for a file or URL. Validate untrusted specs withkubb validatebefore generating.- Generation is destructive when
output.cleanistrue. Never pointoutput.pathat hand-written source. - Set
output.formatoroutput.lintto'auto'to format and lint generated files with whatever tool the project already has (oxfmt, Biome, Prettier, oxlint or ESLint).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 116 lines · 49 tokens per session scan A 9aea82acb5ac
config is a skill published in the GitHub repository kubb-labs/kubb (1,791 stars, last pushed yesterday), licensed MIT. It adds 49 tokens to every session and 1,323 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
skmtc-lang-typescript
The TypeScript target-language layer for Skmtc generators (@skmtc/lang-typescript): projection base factories, TsSnippet, the three register shapes, identifier kinds and the type-only import machinery, composition helpers, sanitization, TsFile render rules. Use ALONGSIDE skmtc-generator whenever a generator emits…
typescript
Write clear, predictable TypeScript and Vue TypeScript code with strong typing, maintainability, and consistent documentation conventions.
figma-typings-audit
Upgrade @figma/plugin-typings and absorb what the new version exposes. Diffs the .d.ts between the installed and the target version (that package ships no changelog), sorts the changes into breakage / new API / silently-added fields, maps each onto the sandbox handlers, the hand-written Zod mirrors in shared, and the…
ui-generate-types
Generate TypeScript interfaces from slice field definitions.
lint-js
Lint JS/TS code only. Use before opening a PR when only JavaScript or TypeScript files were changed (no Rust).
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.