All twins

Service twin · API + UI

Resend

Test email agents and applications that send, receive, schedule, and track transactional messages.

API + UIcaptured contractREST · MCP · CLI
Terminal
$ uv tool install blobfish-cli
$ blobfish twin login
$ blobfish twin-runs create --twins resend --ttl 60 --wait

What’s inside

A deterministic, seeded, resettable replica: every operation below executes real state transitions against the twin’s own SQLite state — reads are hash-invariant, writes produce inspectable diffs, and reset restores the seed baseline. This twin runs the captured contract sm--resend rekeyed onto seeded state.

Operations65
Reads28
Writes37
Entities22
Lifecycles0

Seeded entities

EntityTableFieldsAbout
api_keyapi_keys6Inferred from MCP tool parameters; the tool contract remains the authority.
audienceaudiences3Inferred from MCP tool parameters; the tool contract remains the authority.
audiences_contactaudiences_contacts8Inferred from MCP tool parameters; the tool contract remains the authority.
audiences_contacts_by_audience_idaudiences_contacts_by_audience_ids7Inferred from MCP tool parameters; the tool contract remains the authority.
audiences_contacts_segmentaudiences_contacts_segments7Inferred from MCP tool parameters; the tool contract remains the authority.
audiences_contacts_topicaudiences_contacts_topics7Inferred from MCP tool parameters; the tool contract remains the authority.
broadcastbroadcasts13Inferred from MCP tool parameters; the tool contract remains the authority.
broadcasts_sendbroadcasts_sends3Inferred from MCP tool parameters; the tool contract remains the authority.
contact_propertycontact_properties8Inferred from MCP tool parameters; the tool contract remains the authority.
domaindomains8Inferred from MCP tool parameters; the tool contract remains the authority.
domains_verifydomains_verifies3Inferred from MCP tool parameters; the tool contract remains the authority.
emailemails19Inferred from MCP tool parameters; the tool contract remains the authority.
emails_attachmentemails_attachments7Inferred from MCP tool parameters; the tool contract remains the authority.
emails_batchemails_batches3Inferred from MCP tool parameters; the tool contract remains the authority.
emails_cancelemails_cancels3Inferred from MCP tool parameters; the tool contract remains the authority.
emails_receivingemails_receivings6Inferred from MCP tool parameters; the tool contract remains the authority.
emails_receiving_attachmentemails_receiving_attachments7Inferred from MCP tool parameters; the tool contract remains the authority.
segmentsegments8Inferred from MCP tool parameters; the tool contract remains the authority.
templatetemplates13Inferred from MCP tool parameters; the tool contract remains the authority.
templates_duplicatetemplates_duplicates2Inferred from MCP tool parameters; the tool contract remains the authority.
templates_publishtemplates_publishes2Inferred from MCP tool parameters; the tool contract remains the authority.
topictopics7Inferred from MCP tool parameters; the tool contract remains the authority.

Three surfaces, one state

Mount Resend in a twin environment and the same seeded state serves vendor-shaped REST operations, an MCP endpoint for tool calling, and a generated bf-twin CLI — with copy-on-write sessions per rollout and a one-call reset to the seed baseline. Prefer raw HTTP? The same create works with curl:

API
$ curl -sS -X POST https://blobfish.ai/api/v1/twin/environments \
    -H "X-API-Key: $BLOBFISH_API_KEY" -H "Content-Type: application/json" \
    -d '{"services":["resend"],"ttl_minutes":60}'

Known limitations

This twin mirrors the captured contract sm--resend: its tool surface is the captured server’s, with synthetic seeded values. Operations outside that capture are not mounted — we mount fewer, executable operations rather than stub the rest.