Local API simulators — test against real public APIs without remote accounts, network, or bills.
stuntapi.com · stunt (the tool) · adapter catalog · docs
stunt is an open-source tool that spins up local simulators for the public APIs
your code calls — a stunt double for the real thing. Instead of creating remote
accounts, fighting rate limits, and paying for sandboxes, you run a faithful local mock
that behaves like the real API (stateful, real-shaped responses, webhooks).
brew install stuntapi/tap/stunt # or: go install stuntapi.com/stunt/cmd/stunt@latest
stunt demo # boots a stateful Stripe-style sim + prints curl commandsYou just want to write a feature. The API has other plans — account-gated sandboxes, slow approval, rate limits at 2am, test modes that don't fire webhooks, surprise bills. stunt stands in: a safe, local, deterministic stand-in so your tests run offline and reset clean.
- Stateful, not stubbed — create a charge, list it, capture it, watch the webhook fire. SQLite-backed state survives across requests.
- Sandboxed adapters — adapter logic runs in a Starlark VM: no filesystem, no network, no
load(). Safe to install a stranger's mock. - 91 reference adapters — Stripe, Twilio, GitHub, Slack, AWS, Google Workspace, and 86 more, all embedded in the binary (no cloning).
- All four transports — REST, gRPC (unary + streaming), WebSocket, and GraphQL.
- Synthetic, enforced —
stunt adapter lintrejects real-looking data (emails, tokens, cards). Everything is fake by construction. - Operable by machines —
--jsonon catalog/plan/doctor, anAGENTS.md, and astunt llmreference so coding agents drive it unaided.
stunt— the Go tool: the simulator engine, CLI, and 91 embedded adapters.
- ⭐ Star
stuntif it unblocks you. - 🐛 Open an issue for bugs or adapter requests.
- 🛠️ Adapters are just a YAML manifest + sandboxed Starlark — see
CONTRIBUTING.md.
Made in Europe with care by @polyMatto / @deblasis & contributors
Apache-2.0 · pre-1.0 · the safe stand-in for the real thing