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.
The live feed of public API changes across the web
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 141 operations and 1 section
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.