New Clones v0.4 — stateful vendor mirrors, public beta, on-prem ready
SERVICE VIRTUALIZATION · FOR THE AI-CODING ERA

Real APIs.
No real side effects.

A whole world of vendors, on your laptop. Stripe, Twilio, Resend, Clerk, S3 — stateful, time-travellable, signed at the wire. Charge a card. Issue a refund. Expire a token. None of it ever leaves the room.

5-minute setup Vendor-faithful APIs Cloud · BYOC · air-gapped Helm MCP-native
clones — session — run_8f3a91 — checkout-world
live
~/acme-app ❯ molar clones spawn stripe twilio email --seed checkout-world stripe-clone ready → http://localhost:8001/t/run_8f3a91 twilio-clone ready → http://localhost:8002/t/run_8f3a91 email-clone ready → http://localhost:8003/t/run_8f3a91 tenant isolated /t/run_8f3a91 seeded · 12 customers · 1 subscription ───────────────────────────────────────────────────────────────────── ~/acme-app ❯ pnpm test e2e/checkout.spec.ts POST /v1/customers 201 · 18ms · cus_3f29a1 POST /v1/payment_intents 201 · 22ms · pi_9k8z4f · $9.00 POST /v1/payment_intents/.../confirm 200 · 31ms · succeeded POST /Messages.json (twilio) 201 · 14ms · SM-test POST /emails (resend) 200 · 9ms · receipt @ acme.dev ! webhook stripe.payment_intent.succeeded → signed · whsec_clone · 1 attempt · 200 OK 47 tests · 47 passed · 3.2s · zero outbound network ───────────────────────────────────────────────────────────────────── ~/acme-app ❯ molar clones snapshot save --label "after-checkout" world snapshot saved → snap_a3f2 · 4 clones · 12kb · reproducible
Vendor-faithful clones for Stripe Twilio Resend SendGrid Clerk S3 SMTP + more coming
01 — Within Molar

One surface of four. The one your tests run against.

Molar is a release guard with four surfaces. Clones are stateful mirrors of every third party your app touches — so Cartographer's agent, Guard's checks, and Trace's replays never charge a real card or email a real customer.

02 — What it does

Six things vendor sandboxes can't do.

01 / STATEFUL

Real resources, isolated

Every clone holds the real vendor's object graph — customers, charges, subscriptions, messages, sessions, buckets — in a per-run tenant. No shared state across CI workers, no test pollution.

tenant scope/t/{runId}/...
persistencememory · badger · pg
deterministic IDsHKDF + ChaCha20
parallel CI workersinfinite
02 / TIME-TRAVEL

Virtual clock

Advance the clone clock by 30 days to trigger trial expiry, dunning emails, JWT rotation, S3 lifecycle. No more sleep(86400). Subscriptions renew on command.

advance30d / 2h / 5m
set absoluteISO-8601
pause / resumesupported
cross-clone syncworld clock
03 / WEBHOOKS

Signed, instant, loopback

Clone webhooks fire at your URL — including localhost — signed with HMAC keys you control. Force redelivery, simulate retry storms, validate signature code paths sandboxes can't reach.

stripe-signaturewhsec_clone · HMAC256
twilio X-SigRFC 3986
force redeliverUI / SDK / MCP
delivery delayprogrammable
04 / SNAPSHOTS

World-level state

Snapshot every clone at the same logical instant. Restore the whole world — Stripe, Twilio, Email, Auth, S3 — to test step 7 again without rerunning steps 1–6.

per-clone snapgzip JSON
world snapcross-vendor manifest
restoreatomic · 503-during
branch from snapsupported
05 / CHAOS

Programmable failure

Inject 429s, 422s with the exact payload shape, latency spikes, idempotency conflicts, dunning failures. Drag-and-drop scenarios; persisted into snapshots.

inject error429 · 5xx · custom JSON
inject latencyms / jitter
presetscard_declined · otp_max
scenario chainsN-step failure
06 / SAFETY

Destructive-call refusal

If your env still points at api.stripe.com with a live-mode key, the SDK refuses to make the call. Never charge a real card from a CI runner again. Provable safety KPI on the home page.

live-host detectenforced
live-key matchsk_live_* · ACxxx
refusal counter14 blocked today
strict modeX-Molar-Clone header
03 — By the numbers

A hundred CI workers. One world, each.

Test mode was built for a developer poking at the API once a week. Clones was built for the thousand calls a minute your agents and CI actually make. The numbers tell the story.

25/s
Stripe test-mode hard cap — vs. 100/s in production. Run CI twice in a morning and you hit it.
5/10m
Twilio Verify attempts per phone number. Cannot be lifted for testing. CI flakes every morning.
25-56%
of CI failures at major engineering orgs are flaky — usually shared state in vendor sandboxes.
0
real cards charged. Real refunds issued. Real customers messaged. By design.
04 — How it works

Four moves. One env file change.

Clones replace your STRIPE_API_BASE, TWILIO_ACCOUNT_SID, and friends. Your app code doesn't change. Your tests do everything they couldn't before.

STEP / 01

Spawn a tenant.

One API call (or one MCP tool, or one CLI command) gives you a tenant-scoped URL per clone kind. Tenants are isolated cryptographically — Run A's Stripe customers are invisible to Run B's, even on the same clone instance.

POST /api/clones/spawn
kindsstripe, twilio, email
seedcheckout-world
ttl30m idle
runIdrun_8f3a91
jwt1h, admin scope
persistencebadger
STEP / 02

Point your app at it.

Export MOLAR_CLONE_STRIPE_URL et al, or use the SDK to auto-detect. Your existing Stripe client, Twilio client, Resend client speak to the clone — same SDKs, same wire format, same error shapes.

.env · 4 lines change
- STRIPE_API_BASE=https://api.stripe.com
+ STRIPE_API_BASE=http://localhost:8001/t/run_8f3a91
- STRIPE_API_KEY=sk_live_51M...
+ STRIPE_API_KEY=sk_test_clone
- TWILIO_BASE=https://api.twilio.com
+ TWILIO_BASE=http://localhost:8002/t/run_8f3a91
- RESEND_BASE=https://api.resend.com
+ RESEND_BASE=http://localhost:8003/t/run_8f3a91
app code unchanged
stripe.customers.create({...}) → hits clone
twilio.messages.create({...}) → hits clone
resend.emails.send({...}) → hits clone
STEP / 03

Test the unhappy path.

Inject the 422 with the exact payload shape your debugger showed last week. Hold a webhook for 90 seconds. Decline a card on the third charge. Expire an OTP. Snapshot the world before, so the next test starts clean.

POST /_clone/inject
targetPOST /v1/charges
status422
body{"err":"missing_field"}
after2 successes
ttlthis run only
persist in snapshotyes
STEP / 04

Teardown — or hand off.

One call drops the tenant. Or hand the world snapshot to Guard for shadow-prod runs, to Cartographer's agent for autonomous QA, or to Trace's debugger for layer-2 replay. Clone state travels with the run.

handoff · molar suite
guardshadow-prod baseline
cartographeragent-driven flows
tracelayer-2 replay
mcpmolar_clone_snapshot
teardownDELETE /api/clones/...
05 — The dashboard

Built for the hour when the webhook didn't fire.

Most vendor portals show you "test mode events" and a search box. Clones gives you the live request stream, the virtual clock, the active chaos rules, the snapshot graph, and the destructive-call refusal log — for every session, in one workspace.

clones.molar.dev / acme-prod / sessions / run_8f3a91 — checkout-world
● live · 4 clones
Active clones
4of 5 spawned
stripe · twilio · email · auth
Virtual clock
+30doffset
2026-08-14T14:30 · paused
Refusals today
14blocked
api.stripe.com · sk_live_*
Snapshots
7of 100
last: after-checkout · 14kb
Live request stream — NDJSON · last 9
14:30:02POST/v1/customers201 · 18ms
14:30:02POST/v1/payment_intents201 · 22ms
14:30:03POST/v1/payment_intents/pi_9k8z4f/confirm200 · 31ms
14:30:03POST/Messages.json (twilio)201 · 14ms
14:30:03POST/emails (resend)200 · 9ms
14:30:04GET/v1/charges/ch_x9 [chaos: 429]429 · 4ms
14:30:04POST/v1/webhook_endpoints/we_a91/deliver200 · 88ms
14:30:05POSThttps://api.stripe.com/v1/charges [REFUSED · live host]— · —
14:30:06POST/_clone/clock/advance · 30d204 · 6ms
Active chaos rules
429 on /v1/charges
after 2 ok · this run
+800ms on /Verify
always · in snap
bounce on /emails
spamtrap@*
Open the live dashboard →
Also known as

Service virtualization for the AI-coding era.

Teams search for WireMock alternatives, Stripe test sandboxes without rate limits, and MCP-native API mocking. Clones is all three — stateful, vendor-faithful, and built for agents.

API mockingservice virtualizationStripe test sandboxTwilio test mode alternativeWireMock alternativeMSW for backendsMCP API toolsoffline CI sandboxes
How is Clones different from WireMock or MSW?

WireMock and MSW are great for hand-written HTTP stubs. Clones are vendor-faithful: they implement Stripe, Twilio, Clerk, and S3 object graphs with signed webhooks, virtual clocks, and world snapshots — so checkout and auth flows behave like production without hitting real APIs. See Stripe clone docs.

Can I test Stripe without Stripe test-mode keys?

Yes. Point your SDK at a clone tenant — no Stripe account, no sk_test_ keys, no network calls, no rate limits. Read how to test Stripe without real cards.

Do clones work offline in CI?

Clones run locally, in CI, or air-gapped on-prem. Parallel workers each get an isolated tenant with deterministic IDs — no shared sandbox state, no vendor rate limits.

What does MCP-native mean?

Clones expose spawn, snapshot, clock-advance, and webhook tools over the Model Context Protocol so Cursor, Claude Code, and other agents can drive sandboxes without shell scripts. Works with Cartographer and Guard in the Molar suite.

06 — Pricing

Pay by the clone-minute. Nothing else.

One unit. $0.002 a minute. A typical CI run uses six of them. There's no per-vendor tax, no webhook overage, no "talk to sales" before you can spawn your second tenant.

01 / Solo

Hobby

$0/forever
  • 1 concurrent session
  • 1,000 clone-minutes / mo
  • 5 snapshots, 100 MB
  • All 5 vendor clones
  • Community Discord
Start free →
02 / Most teams

Pro

$199/mo
  • 20 concurrent sessions
  • 50,000 clone-minutes / mo
  • Unlimited snapshots, 10 GB
  • BYOC clone fleet
  • World snapshot CI bundles
  • MCP-native agent access
  • Email + Slack support
Start 14-day trial
03 / Big teams

Enterprise

Talk to us
  • Unlimited everything
  • Self-hosted Helm bundle
  • Air-gapped on-prem (cosign)
  • SSO · SCIM · audit logs
  • Garage / S3 snapshot store
  • SOC2 evidence pack
  • Dedicated FDE
Talk to the founder

Clone-minute = $0.002. A typical CI run uses 6 clone-minutes. Pro covers ~8,000 CI runs/mo.

Charge a clone.
Refund a clone.
Ship the real thing.

Five minutes from one command to a stateful, signed-webhook-firing, clock-controllable clone of Stripe, Twilio, Email, Auth, and S3 — all in one tenant.

Spawn your first clone → Read the docs ↗
or — $ npx molar-clones spawn stripe twilio email