TypeScript types
@skmtc/gen-typescript
Generate TypeScript type aliases from OpenAPI models and GraphQL types.
Skmtc generates production-grade clients, servers, forms and docs from any OpenAPI schema — and when the schema changes, it regenerates the code and opens the PR.
8,828 OpenAPI schemas from 4,785 providers, each one versioned, diffed and ready to generate against.
| Schema | Updates (30d) | Changes (30d) | Breaking (30d) | Spec size | Actions |
|---|---|---|---|---|---|
Cloudflare APIZones, DNS, Workers, R2 | 113 | 4,488 | 904 | 23.8 MB | |
OpenAI APIChat, embeddings, images, audio | 35 | 3,683 | 520 | 2.9 MB | |
Vercel APIDeployments, projects, domains | 16 | 1,834 | 628 | 10.3 MB | |
GitHub REST APIRepos, issues, pulls, actions | 15 | 268 | 6 | 12.9 MB | |
ElevenLabs APIText to speech, voices, dubbing | 13 | 7,333 | 466 | 2.0 MB | |
Anthropic APIMessages, tools, batches | 12 | 904 | 223 | 1.8 MB | |
Notion APIPages, databases, blocks | 10 | 498 | 89 | 884 KB | |
ResendTransactional email | 10 | 170 | 53 | 204 KB | |
Swagger PetstoreThe classic example schema | 0 | 0 | 0 | 17 KB |
…and 8,819 more, growing daily — deduplicated and verified.
A stack is a set of generators you compose and deploy — these four are examples. Pick a schema and run it through one: everything below is real generator output, not mockups.
TypeScript models, Zod schemas, a Hono API server and TanStack Query hooks — a working client-server pair from one contract.
2,251 files · 6.0 MB of code · generated from GitHub REST API’s 12.9 MB spec in 1.1 s
Every new version of every schema is fetched, archived and diffed. Instead of a wall of JSON, you get each change in plain language, classified by severity — breaking, warning or info — down to the operation and property it touches.
The panel on the right is the real changelog for one Cloudflare API version pair — filter it, expand a path, read what actually changed.
May 26 → May 28 · 361 changes across 89 paths
Breaking changes ship with little warning, and changelogs don’t get read. So we stopped writing them to be read.
Pick a schema from the catalog and a stack to run it through. Point the subscription at your repository.
Every push and refetch becomes a new version — archived, diffed and classified as breaking, warning or info.
The stack regenerates, output is formatted to match your repo, and a PR opens with the classified changelog attached.
regenerate: cloudflare 2026-06-30 → 2026-07-28
▲ 3 breaking · 12 files changed · +214 −87
Changelog attached · output formatted with your repo’s prettier config
Agents that scan a codebase have to rediscover every call-site. Generated code knows its call-sites by construction — the contract diff is the change plan. That’s what makes the PR trustworthy enough to merge.
Subscribe your repoEach generator reads an OpenAPI contract and emits one kind of artifact — types, validators, hooks, routes, forms, docs. Compose the ones you need into a stack and deploy it with a public generate endpoint.
@skmtc/gen-typescript
Generate TypeScript type aliases from OpenAPI models and GraphQL types.
@skmtc/gen-zod
Generate Zod validation schemas from OpenAPI models.
@skmtc/gen-valibot
Generate Valibot validation schemas from OpenAPI models.
@skmtc/gen-tanstack-query-fetch-zod
Generate TanStack Query hooks with fetch and Zod response validation.
@skmtc/gen-express
Generate Express route registrations from OpenAPI operations.
@skmtc/gen-supabase-hono
Generate Hono route registrations for Supabase Edge Functions.
@skmtc/gen-shadcn-form
Generate React forms for OpenAPI mutation operations using shadcn/ui.
@skmtc/gen-shadcn-select
Generate searchable React selects from compatible OpenAPI GET operations.
@skmtc/gen-shadcn-table
Generate React data tables from compatible OpenAPI list operations.
Every one of them is open source on JSR. Outgrow them and you clone, customize and publish your own — generators compose, so you extend rather than fork.
The same generators run from the CLI against any schema. Five commands to generated code.
Install the CLI
curl -fsSL https://skm.tc/install | shScaffold a project and choose where generated code lands in your app
skmtc init petstore src/generatedAdd generators from the registry
skmtc install @skmtc/gen-zod petstoreBundle the generator set
skmtc bundle petstorePoint it at your OpenAPI schema — a URL or a local file
skmtc generate petstore https://petstore3.swagger.io/api/v3/openapi.jsonGenerate from any of 8,828 schemas in the catalog, or install the CLI and run it against your own.
curl -fsSL https://skm.tc/install | shThe CLI runs on Deno; generated code drops into your ordinary npm, Vite or Next.js project.