ConditionSign in

Real accounts for your coding agent. Gone when it's done.

Condition asks your app to build the exact state a feature needs, checks it through your app, hands the agent logins and inboxes, and removes every trace afterwards.

Start with your staging appStaging only. Never production.
past-due-invoicePreparing
  1. Preparing
  2. Ready
  3. Cleaning up
  4. Released

Creating Maya, her customer Acme and an invoice 14 days overdue.

Follow one run

An agent working on Brightline, an invoicing app, has to fix the Pay now link in the overdue reminder email. Here is everything Condition does for it.

past-due-invoice

› fix the Pay now link in the overdue reminder

I need a customer with an overdue invoice to reproduce this.

condition({ scenario: "past-due-invoice", input: { daysOverdue: 14 } })

What you write

  1. 01

    Your app describes a scenario

    Four functions in your own code: build the state, prove it through your app, give out logins, remove it again. Condition never touches your database.

    scenarios: {
      "past-due-invoice": {
        actors: [
          { name: "owner", login: true },
          { name: "customer", inbox: true },
        ],
        prepare, verify, login, cleanup,
      },
    }
  2. 02

    Your agent asks for it

    Over MCP the agent gets a ready run, working logins for each person in it, and a real inbox that receives your app's email.

    const run = await condition({
      scenario: "past-due-invoice",
    })
    
    const mail = await inbox({
      runId: run.id,
      actor: "customer",
      waitSeconds: 60,
    })
  3. 03

    Condition cleans up

    Reset removes exactly what the run made. Forgotten runs expire on their lease, and a cleanup that fails stays visible until it succeeds.

    await reset({ runId: run.id })
    // released: every row and inbox is gone

Connect your agent

Create an agent key for an environment in the dashboard, then add Condition to Claude Code:

claude mcp add --transport http condition \
  https://api.condition.sh/mcp \
  --header "Authorization: Bearer $CONDITION_KEY"