Local-first · HTTP & gRPC · Spec-driven
Your API, live from its spec.
Point Tinspec at a running service's OpenAPI URL — endpoints materialize, documented and runnable. Send HTTP & gRPC, wire requests into visual chains with auth handled for you, and keep everything in files you can commit.
macOS · Linux — free, no account
orders-api
▾ orders.yaml
GET List orders
GET Order by id
POST Create order
▸ checkout-flow · chain
▸ api-docs · spec live
### Order by id GET {{baseUrl}}/api/orders/4271 Authorization: Bearer {{token}} Accept: application/json ▶ send · ⌘⏎
200 OK · 38 ms · 412 B
{
"id": 4271,
"status": "shipped",
"total": 184.50,
"currency": "EUR"
}In the app today
Built around the spec, not the request list.
Spec-first, just-in-time
Point Tinspec at a live OpenAPI URL — a springdoc /v3/api-docs, a file, anything. Endpoints materialize instantly and stay bound to the spec: refresh re-resolves, so you test the API as it is now — not a stale snapshot you authored by hand.
https://api.internal/v3/api-docs live · 4s ago
GET /api/orders — List orders
GET /api/orders/{id} — Order by id
POST /api/orders — Create order
DEL /api/orders/{id} + just appeared in the spec
chain · checkout-flow
POST /auth/login
token
POST /api/orders
Bearer {{token}}
orderId
GET /orders/{{orderId}}
✓ 200 · 41ms
Visual request chains
Wire requests on a canvas. Extract a value from one response — JSON path, header, or status — and the next step uses it. Branch on conditions, loop, generate test data. Auth call → token → real request, in one run. Saved as a file, runnable part-by-part.
Stop pasting JWTs
Define an auth provider once — a login script, or a first-class integration (Keycloak, Clerk, Auth0, …). Tinspec fetches the token, caches it, refreshes on expiry, and injects it into every request and chain. Switch the user you send as without touching a header.
auth provider · clerk-dev
kind integration · clerk
send as alex@acme.io (acme tenant)
→ injects Authorization: Bearer …
✓ token cached · refreshed on expiry
An editor, not a wall of forms
A Zed-style shell — file-tree navigator, tabs, command palette. Endpoints open as runnable .http buffers in Monaco with spec-aware completion for params, headers, and body fields.
Reference docs, built in
Every endpoint gets a Stripe-style reference: typed parameters, request-body fields with nested attributes, response codes — plus a cURL sample and inline “Try it”.
Spec insight
Browse an API as a graph, diff what changed between spec versions, and map each endpoint to the auth it needs — so a moving spec never surprises you.
Yours to theme
Author and save custom editor/UI themes into your project. Light or dark, the whole app follows — including this site.
Point it at your spec.
Free while in beta. Runs entirely on your machine — no account, no cloud.
Download Tinspec