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 — tinspec
order-by-id.http checkout-flow
### 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

extracted: token orderId

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
tinspec

The local-first API workbench. Live OpenAPI specs, HTTP & gRPC requests, and visual request chains — in plain files you can commit.

© 2026 Tinspec — local-first, offline, no account required.