All twins

Service twin · API only

Unstructured

Test document-processing agents that partition files and run ingestion workflows.

API onlydocs-transcribedREST · MCP · CLI
Terminal
$ uv tool install blobfish-cli
$ blobfish twin login
$ blobfish twin-runs create --twins unstructured --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.

Operations26
Reads12
Writes14
Entities6
Lifecycles2

Seeded entities

EntityTableFieldsAbout
source_connectorsource_connectors6Source connector that a workflow ingests raw files from.
destination_connectordestination_connectors6Destination connector that processed elements are written to.
workflowworkflows7Ingestion workflow wiring a source to a destination on a schedule.
jobjobs7One execution of a workflow, moving through a run lifecycle.
documentdocuments7A file processed by a job, from which partition elements were extracted.
partition_elementpartition_elements6One structured element produced by partitioning a document.

Guarded lifecycles

These state machines are enforced, not decorative: an action whose fromstate doesn’t match is rejected the way the production service rejects it.

workflow.status

active → paused
  • pause: active paused
  • resume: paused active

job.status

scheduled → in_progress → completed → failed → cancelled
  • run: scheduled in_progress
  • cancel: scheduled|in_progress cancelled

Three surfaces, one state

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

Known limitations