Early access. New categories shipping weekly. We're looking for design partners. Get involved →
GitHub Catalog Early Access Get Early Access

Stop mocking. Start cloning.

Your software depends on Stripe, Twilio, Clerk, and dozens of other services. WonderTwin lets you run them all on your laptop — offline, unlimited, no sandbox restrictions.

Dot the WonderTwin mascot
wt install stripe@latest twilio@latest clerk@latest
wt up
# ✓ stripe running on :4111
# ✓ twilio running on :4112
# ✓ clerk  running on :4113
Max the WonderTwin mascot
Dot curious

Born from running fleets of hundreds of integrations in production.

Your test infrastructure is lying to you

Mocks look right. Sandboxes work sometimes. But you keep finding the real bugs in production.

Max glitched

Mocks return right shapes, wrong behaviors

They don't track state, fire webhooks, or break the way real APIs break. You're testing against a fantasy.

Max sleeping

Sandboxes are rate-limited and online-only

Rate-limited. Incomplete. Can't simulate failures. Can't run offline. Can't scale.

Dot worried

Integration tests flake for external reasons

Stripe had a blip. Twilio was slow. Clerk rotated something. Your CI is red and you did nothing wrong.

Dot nervous

You find real bugs in production

What happens when Stripe returns 429s during peak checkout? When Twilio drops webhooks? You find out when your customers find out.

Not mocks. Not stubs. Twins.

A WonderTwin Stripe twin doesn't just return valid JSON. It tracks balances, creates transfers, fires webhooks, and maintains state across requests — just like the real Stripe API.

Built to pass compatibility tests against official SDKs.

Stateful Behavioral SDK-compatible
Glitched mock
Mock
vs
Dot celebrating
Twin

Three steps. No new framework.

1

Declare

# wondertwin.yaml
twins:
  stripe:
    version: "0.3.2"
    port: 4111
    seed: ./fixtures/stripe.json
  twilio:
    version: "latest"
    port: 4112
  clerk:
    version: "~0.2"
    port: 4113
Max reading
2

Activate

wt up
# ✓ stripe running on :4111
# ✓ twilio running on :4112
# ✓ clerk  running on :4113
Twins fist bump
3

Point at localhost

stripe.SetBackend(
  stripe.APIBackend,
  &stripe.BackendConfig{
    URL: "http://localhost:4111",
  },
)

// Everything else stays the same
transfer, err := transfer.New(
  &stripe.TransferParams{
    Amount:   stripe.Int64(1000),
    Currency: stripe.String("usd"),
  },
)
Dot pointing Max pointing

Your existing tests. Your existing SDK calls. Zero changes beyond the base URL.

Built for every stage of your workflow

✈️

Works on a plane

Run your full dependency stack on your laptop. No network, no API keys, no rate limits. Local development, fully offline.

🧪

Never flake again

Deterministic integration tests. Single binaries, fast startup, zero external dependencies. Your CI goes green because your code works.

💥

Break things on purpose

Inject real failure modes. What happens when Stripe returns 429s during peak? When Twilio drops 10% of webhooks? Find out before your customers do.

🤖

Your agent's new best friend

WonderTwin includes an MCP server so AI coding agents can discover, install, start, seed, and inspect twins natively. Unlimited API access for scenario testing at scale.

New twin in under an hour

Point an AI coding agent at an API's public docs. Get a production-ready behavioral twin.

Twin generator skill. Feed an API's public documentation to any AI coding agent with the WonderTwin generator skill. It scaffolds the twin, wires the admin API, writes handlers, and produces a working binary.

Internal API twins. Your private APIs deserve twins too. Point the generator at your OpenAPI spec or internal docs and get a behavioral twin for your own services.

MCP server included. AI agents can discover, install, start, seed, and inspect twins natively through the WonderTwin MCP server.

View the generator skill →
Max superhero Dot building
<1hr Generation time
100% Admin API compatible
Any API Public or internal

Every twin, same interface

All twins expose a standard admin API alongside their service-specific endpoints.

# Reset state between tests
curl -X POST localhost:4111/admin/reset

# Load seed data
curl -X POST localhost:4111/admin/seed -d @fixtures/stripe.json

# Inspect internal state
curl localhost:4111/admin/inspect/transfers

# Health check
curl localhost:4111/admin/health

Works with any test framework. Go, Python, Node, Rust, Java — if it speaks HTTP, it works with WonderTwin.

A growing catalog of behavioral twins

Every twin is stateful, SDK-compatible, and free. Request one and we'll build it.

Stripe

Accounts, Balance, Transfers, Payouts, Webhooks

Payments

Clerk

Users, Sessions, Organizations, JWT validation

Auth & Identity

Twilio

Messages, Verify (OTP send/check)

Communications

Resend

Email send, delivery status

Communications

PostHog

Event capture, batch ingestion

Analytics

Magento

Store API, product catalog

E-Commerce

WooCommerce

Store API, orders

E-Commerce

LoyaltyLion

Loyalty programs, points, rewards

Loyalty & Rewards

Yotpo

Reviews, loyalty, referrals

Loyalty & Rewards

Kangaroo

Loyalty programs, campaigns

Loyalty & Rewards

Clarify

CRM data, contacts, records

CRM & Data

Storeleads

Store data, lead generation

CRM & Data

Logo.dev

Logo image retrieval

Utilities

Built for contributors

twin-{name}/
├── cmd/twin-{name}/main.go
├── internal/
│   ├── api/
│   │   ├── router.go
│   │   └── handlers_*.go
│   └── store/
│       ├── memory.go
│       └── types.go
├── go.mod
└── go.sum

Every twin follows the same structure. Standard layout. Standard admin API. Standard build pipeline.

Most twins can be generated by an AI coding agent in 2–4 hours from public SDK documentation.

Read the docs. Feed the SDK to your coding agent. Submit a PR.

Contributing Guide →
Dot building Max building

How we compare

WonderTwin Mocks Sandboxes LocalStack
Behavioral fidelity State, logic, webhooks Schema only ~ Partial AWS only
Offline / local
No rate limits
Chaos testing
SaaS coverage 14+ services, growing weekly ~ Manual One vendor AWS only
SDK compatible
Single binary N/A Docker

We keep your twins current so you don't have to

Subscribe to fidelity.

📡

SDK monitoring

We track official SDK releases and test twins against every new version. When something drifts, we know before you do.

📋

Changelog tracking

API changelogs, deprecation notices, and breaking changes — all monitored and mapped to twin behavior.

🔄

Auto-update PRs

When a twin needs updating, you get a PR with the fix, the test results, and the changelog reference. Merge and move on.

Max reading

Simple pricing. Powerful twins.

WonderTwin Free

Apache 2.0. Free forever.
  • Full twin catalog of latest versions
  • wt CLI
  • MCP server for AI agents
  • wondertwin.yaml manifest
  • Community support
Dot and Max waving together

WonderTwin Pro

Early Access
From $200/mo per service
  • Pin to specific API versions
  • Certified SDK compatibility scores
  • Drift detection + auto-update PRs
  • Resilience injection — rate limits, latency, outages
  • Known issue intelligence
Join Early Access →

Enterprise

Custom
  • Custom twins for internal APIs
  • Private twin registry
  • SLA & dedicated support
  • SSO & audit logs
  • Volume pricing
Twins waving
Talk to us →

Get early access

We're looking for design partners to shape WonderTwin Pro.

Dot celebrating

You're in!

We'll be in touch soon with next steps.

Twins fist bump

Get started in 30 seconds

# Install the CLI
go install github.com/wondertwin-ai/wondertwin/cmd/wt@latest
# brew install wondertwin-ai/tap/wt  (coming soon)

# Add twins to your project
wt install stripe@latest twilio@latest

# Start everything
wt up

# Run your tests as usual
go test ./...