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.
Every schema in the catalog is refetched, archived and diffed. This is the live feed of what came back different — breaking (▲), warning (●) and info (○) — plus the APIs that were merged or renamed.
Browse and filter the whole feed →
Subscribe to the breaking ones: Atom, JSON Feed or markdown. Every publisher has one too, at /{account}/feed.atom.
9,264 OpenAPI schemas from 5,849 providers, each one versioned and diffed. Pick a row, pick a stack, and read the code it produces.
| Schema | Operations | Spec size | Actions |
|---|---|---|---|
GitHub REST APIRepos, issues, pulls, actions | 1,220 | 12.9 MB | |
OpenAI APIChat, embeddings, images, audio | 288 | 2.9 MB | |
Anthropic APIMessages, tools, batches | 131 | 1.8 MB | |
Cloudflare APIZones, DNS, Workers, R2 | 3,334 | 23.8 MB | |
ElevenLabs APIText to speech, voices, dubbing | 378 | 2.0 MB | |
Vercel APIDeployments, projects, domains | 386 | 10.3 MB | |
Notion APIPages, databases, blocks | 49 | 884 KB | |
ResendTransactional email | 99 | 204 KB | |
Swagger PetstoreThe classic example schema | 19 | 17 KB |
…and 9,255 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://skmtc.dev/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 9,264 schemas in the catalog, or install the CLI and run it against your own.
curl -fsSL https://skmtc.dev/install | shThe CLI runs on Deno; generated code drops into your ordinary npm, Vite or Next.js project.