Skip to main content

Create a scenario

Create with a natural language prompt. Arga generates the seed config.
scenario = client.scenarios.create(
    name="E-commerce checkout",
    prompt="A Stripe account with 3 customers on different plans",
    description="For testing checkout flows",  # optional
    tags=["checkout", "stripe"],               # optional
)
Or create with an explicit seed config:
scenario = client.scenarios.create(
    name="Support channel",
    twins=["slack"],
    seed_config={
        "slack": {
            "channels": [{"name": "support", "messages": ["Help needed"]}]
        }
    },
)

List scenarios

# All scenarios
scenarios = client.scenarios.list()

# Filter by twin or tag
scenarios = client.scenarios.list(twin="stripe")
scenarios = client.scenarios.list(tag="checkout")

Get a scenario

scenario = client.scenarios.get("scenario-id")
print(scenario.name, scenario.twins, scenario.seed_config)

Use a scenario when provisioning twins

Use a saved scenario to seed a short-lived twin session:
result = client.twins.provision(
    twins=["stripe", "slack"],
    scenario_id="scenario-id",
)
run_id = result["run_id"]

status = client.twins.get_status(run_id)
if status.status == "ready":
    for name, twin in status.twins.items():
        print(f"{name}: {twin.base_url}")
        print(f"  Admin: {twin.admin_url}")
        print(f"  Env vars: {twin.env_vars}")
The current Python SDK exposes scenario CRUD plus seeded twin provisioning through client.twins.provision(..., scenario_id=...). Long-lived per-scenario twin environment helpers are not part of the current SDK surface.