WonderTwin: Stop mocking. Start cloning.

6 min read Original article ↗

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.

Give your AI agents a safe, unlimited sandbox for every service your product uses.

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

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

Safe sandboxes for AI agents. Deterministic tests for developers. Same twins.

Three steps. No new framework.

1

Declare

// wondertwin.json
{
  "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

Let your agents interact with Stripe, Twilio, and Clerk without touching production. WonderTwin's MCP server gives coding agents full access to behavioral twins. Unlimited calls, no rate limits, no real-world consequences.

New twin in under an hour

Point an AI coding agent at a service's public SDK documentation. Get a production-ready behavioral twin.

Twin generator skill

Feed a service's public SDK 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 service twins

Your private services 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/state -d @fixtures/stripe.json

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

# 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

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 6 twins and growing ~ 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.

Dot reading a screen

Simple pricing. Powerful twins.

Unlimited team users per-twin. Pay for twins, not seats.

  • Full twin catalog of latest versions
  • wt CLI
  • MCP server for AI agents
  • wondertwin.json manifest
  • Community support

Dot and Max waving together

Install now →

$99 $49/twin/month

Launch pricing limited to first 20 teams.

  • Pin to specific API versions
  • Certified SDK compatibility scores
  • Drift detection + auto-update PRs
  • Resilience injection: rate limits, latency, outages
  • Known issue intelligence

Dot and Max fist bump

Get Launch Pricing →

  • Everything in Pro
  • Custom twins for internal APIs
  • Private twin registry
  • SLA & dedicated support
  • SSO & audit logs
  • Volume pricing

Dot and Max standing confident

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
brew install wondertwin-ai/tap/wt
# or: go install github.com/wondertwin-ai/wondertwin/cmd/wt@latest

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

# Start everything
wt up

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