All twins

Service twin · API + UI

Google Calendar

Test scheduling agents that create events, resolve conflicts, and coordinate attendees.

API + UIspec-groundedREST · MCP · CLI
Terminal
$ uv tool install blobfish-cli
$ blobfish twin login
$ blobfish twin-runs create --twins googlecalendar --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.

Operations38
Reads11
Writes27
Entities11
Lifecycles0

Seeded entities

EntityTableFieldsAbout
aclacls6
acl_ruleacl_rules5
calendarcalendars11
calendar_listcalendar_lists6
calendar_list_entrycalendar_list_entries21
channelchannels10
colorcolors5
eventevents44
free_busy_requestfree_busy_requests7
free_busy_responsefree_busy_responses6
settingsettings4

Three surfaces, one state

Mount Google Calendar 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":["googlecalendar"],"ttl_minutes":60}'

Known limitations

Spec-grounded surface with synthetic seeded values; operations outside the spec are not mounted.