All twins

Service twin · API + UI

Documenso

Test document agents that prepare envelopes, route recipients, collect signatures, and manage signing workflows.

API + UIcaptured contractREST · MCP · CLI
Terminal
$ uv tool install blobfish-cli
$ blobfish twin login
$ blobfish twin-runs create --twins documenso --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 cx--documenso rekeyed onto seeded state.

Operations17
Reads4
Writes13
Entities13
Lifecycles0

Seeded entities

EntityTableFieldsAbout
documenso_distribute_documentdocumenso_distribute_documents7Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_documentdocumenso_documents20Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_document_fielddocumenso_document_fields9Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_document_recipientdocumenso_document_recipients17Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_duplicate_documentdocumenso_duplicate_documents6Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_embedding_presign_token_betadocumenso_embedding_presign_token_betas7Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_move_documentdocumenso_move_documents7Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_redistribute_documentdocumenso_redistribute_documents7Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_resend_document_for_signingdocumenso_resend_document_for_signings8Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_signed_documentdocumenso_signed_documents6Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_team_memberdocumenso_team_members9Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_templatedocumenso_templates12Inferred from MCP tool parameters; the tool contract remains the authority.
documenso_use_template_betadocumenso_use_template_betas8Inferred from MCP tool parameters; the tool contract remains the authority.

Three surfaces, one state

Mount Documenso 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":["documenso"],"ttl_minutes":60}'

Known limitations

This twin mirrors the captured contract cx--documenso: 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.