How it works
- Define a task — what the agent should accomplish with your product (e.g. “install the SDK and send a first event”), plus the goals that define success
- Define environments — which agent harness and model attempt the task, and what sandbox it runs in
- Run an experiment — execute every task across every environment in parallel, in fresh sandboxes
- Review the results — per-run scores, full transcripts, extracted signals, and failure clusters with root causes and recommended fixes
How the pieces fit together
What you get from each run
- A pass/fail verdict and a 0–100 score against your goals
- The complete agent transcript: every message, tool call, and thinking step
- An archive of the sandbox after the run, so you can inspect exactly what the agent built
- Token usage, cost, and duration
- Signal values — custom metrics you define in YAML, extracted from the run automatically
Try it from the CLI
With the tpc CLI, a task and the agent that attempts it live in a small directory, and one command runs the whole thing:tpc sim run ./my-task is idempotent: it reuses a matching task and environment if they already exist, updates them if the files changed, and creates them if they’re new — so running it again never makes duplicates. Run tpc sim spec to print the full task.json contract, or tpc sim task export <task-id> to turn an existing task into a directory like this.
To compare several agents on the same tasks, group them into an experiment:
--format json for scripting. The guides below cover the CLI workflow for each abstraction.
Where to start
- Tasks — defining what agents should do and how success is measured
- Environments — configuring agents and sandboxes
- Runs & iterations — what happens during an attempt and what it records
- Experiments — running iterations and reading results
- Signals — extracting custom metrics from runs
- Limits & constraints — the execution model and hard limits that shape how you write tasks