Fixture clones
Fixture clones give you curated request/response fixtures for vendors that do not have a full deep-clone state engine. Use them when you need plausible API shapes for agent workflows, smoke tests, and multi-vendor integrations — not billing-clock fidelity.
Each fixture has its own guide — browse the vendor index or jump to GitHub, Slack, Linear, Jira, Google Workspace, or Supabase.
Binary: clones-fixture (one server, all fixture kinds)
FIXTURE_DIR=./fixtures LISTEN_ADDR=:8000 go run ./cmd/clones-fixture
All 23 fixture kinds are fixtured in clones-catalog.json. Deep clones (stripe, twilio, email, auth, s3) are separate binaries.
Fixture catalog
| Kind | Guide | Typical use |
|---|---|---|
apify | Apify | Web scraping actors |
calcom | Cal.com | Booking / scheduling |
clickup | ClickUp | Task management |
discord | Discord | Bot / guild APIs |
firecrawl | Firecrawl | Crawl and extract |
github | GitHub | Repos, PRs, issues |
gitlab | GitLab | CI/CD, merge requests |
google-workspace | Google Workspace | Drive, Calendar, Gmail stubs |
hubspot | HubSpot | CRM contacts/deals |
jira | Jira | Issues, sprints |
linear | Linear | Issues, projects |
ownerrez | OwnerRez | Vacation rental PMS |
pricelabs | PriceLabs | Dynamic pricing |
ramp | Ramp | Spend management |
sentry | Sentry | Error events |
slack | Slack | Messages, channels |
supabase | Supabase | Management API stubs |
tavily | Tavily | Search API |
telegram | Telegram | Bot API |
typeform | Typeform | Form responses |
unipile | Unipile | Unified inbox |
webflow | Webflow | CMS collections |
woocommerce | WooCommerce | Orders, products |
Per-kind seeds
Each fixture kind can ship JSON seeds under molar-clones/fixtures/{kind}/seeds/. Examples:
| Kind | Example seed names |
|---|---|
github | empty, small-project, ci-cd-pipeline, rate-limited |
slack | empty, engineering-team, incident-active |
linear | empty, engineering-org, busy-backlog |
jira | empty, sprint-active, enterprise |
supabase | empty, saas-starter, ecommerce |
sentry | empty, demo |
ramp | empty, default, ramp-receipt-mismatch |
Apply a seed when spawning (seed: "engineering-team") or via molar_clone_seed. Unseeded fixture sessions start from the kind's empty seed when available.
Hosted URLs
On Molar cloud, each session gets per-vendor paths:
https://{sessionId}.clones.molar.it/github/api
https://{sessionId}.clones.molar.it/slack/api
https://{sessionId}.clones.molar.it/jira/api
Spawn fixture kinds through the Molar API the same way as deep clones:
molar clones spawn github --seed small-project
MCP: molar_clone_spawn accepts any catalog kind via the kind parameter.
Deep clone vs fixture
| Capability | Deep clone | Fixture clone |
|---|---|---|
| Stateful resources | Full vendor state | Recorded fixture replay |
| Virtual clock | Yes | Shared admin clock (limited state) |
| Snapshot / restore | Per-clone + world | Per-session seeded state |
| Webhook signing | Vendor-correct | Basic / stub |
| Chaos injection | Admin API | Limited |
| Tenant isolation | /t/{runId}/ | Session-scoped paths |
Use fixtures when you need breadth (many vendors). Use deep clones when you need fidelity (payments, OTP, email capture, auth sessions, object lifecycle).
Adding fixture coverage
Fixture responses live under molar-clones/fixtures/{kind}/. If your test hits an unimplemented path, the clone returns 501 and logs the request — submit missing endpoints via the dashboard Developers → 501 request form.
Environment variables
For BYOC fixture endpoints:
MOLAR_CLONE_GITHUB_URL=https://your-fleet.example.com/github
Pattern: MOLAR_CLONE_{KIND}_URL (uppercase kind).
Agent / MCP usage
Agents commonly combine fixture clones for multi-vendor flows:
{
"tool": "molar_clone_spawn",
"arguments": {
"controlUrl": "https://clones.molar.it",
"kind": "github",
"seed": "small-project"
}
}
See API & SDK for the full MCP tool list.