A real build, replayed below

Rehearse your AI agent on a copy of your real app.

Rehearsal compiles your application into a sandboxed practice world with fictional data, runs your agent through real jobs, and scores every outcome against the application's own database.

rehearsal / applications / gitea / build
  1. 1. Read the source
    waiting
  2. 2. Plan the runtime
    waiting
  3. 3. Start the sandbox
    waiting
  4. 4. Find the API
    waiting
  5. 5. Seed fictional data
    waiting
  6. 6. Choose agent tools
    waiting
  7. 7. Write scenarios
    waiting
  8. 8. Validate and repair
    waiting
  9. 9. Publish
    waiting
Loading the recording

Recorded, not simulated: the World Compiler turning Gitea into a practice world. Click any figure to see exactly what it did.

Everything a rehearsal needs, built from your app

Mocks agree with whatever the agent does, and production is too risky to practise in. Rehearsal builds the middle ground automatically.

  1. Read the source
  2. Plan the runtime
  3. Start the sandbox
  4. Find the API
  5. Seed fictional data
  6. Choose agent tools
  7. Write jobs
  8. Validate
  9. Publish

The World Compiler

An agent reads your source, starts your real images in an isolated sandbox, seeds fictional data, chooses the tools each role may use, and writes jobs it proves can be passed and failed.

Refund order 4182, please.
Actually, make it store credit instead.
request changed, v2

Customers who change their minds

Simulated customers revise requests mid-task. Agents that finish the old request get caught.

POST /refunds timeout (injected)
GET  /refunds?order=4182 1 found
agent: already refunded, no retry

Failures on purpose

Requests time out after the change went through. Blind retries show up as duplicates.

SELECT count(*) FROM refunds
WHERE order_id = 4182;
-- read-only, after the episode
goal reached no duplicate refund claim matches records

Verified in your database, not by an LLM

Read-only checks against the application's own records decide every outcome, so a confident agent can't talk its way to a pass.

baseline v1 → v2, proposed from failed training jobs
- Retry any refund call that fails.
+ Before retrying, check whether the refund already exists.
+ Re-read the latest customer message before acting.

Improve the agent, then compare

The improvement agent proposes changes from failed training jobs. Compare versions on jobs neither version has seen.

rehearse-agent
└ episode · refund-changed-mind
├ llm · deepseek-v4.1-flash
├ tool · create_refund
└ verifier · 3 checks passed

Every step traced

Each build and rehearsal is a Neatlogs trace: model calls, tool calls, and checks.

Coming soonTrain your own model on your practice worlds.Every episode already ends with a score verified in your database: the reward reinforcement learning needs.

From the dashboard, or from code

Everything works without writing code. When you want it in CI, the CLI and the Python SDK call the same API.

Google sign-inAPI keys per CI jobSame API everywhere
  1. 1Sign inWith Google or email. A workspace is created for you.
  2. 2Add your applicationPaste the repository URL, the commit, and the images you already publish.
  3. 3Build the practice worldWatch the compiler work live; every phase and tool call is visible.
  4. 4Rehearse an agentPick a model and instructions, run the jobs, read the verdict.

No code needed. The CLI and SDK do the same things for CI and scripts.

A readiness verdict, with evidence

For every agent on every application: ready to pilot, or not yet. Each verdict links to the episodes behind it.

Verified success

The outcome exists in your application's own records.

Rule violations

Anything your checks say must never happen, like touching the wrong account.

Duplicate side effects

A second refund, email, or shipment caused by a blind retry.

Recovery after faults

Whether the agent finished correctly after a request failed or timed out.

False “done” claims

The agent said it finished; the records say otherwise.

Unneeded questions

Interruptions to the customer beyond what the job required.

Pricing

Start free and keep the free plan. Pay when you rehearse more often. The open-source core stays free to self-host with your own model key.

Free

$0 forever

  • 1 application, built into a practice world once
  • 40 episodes a month, run in quiet hours
  • 1 sandbox at a time
Start free

Pro

Recommended

$29 / month

  • 3 applications, 2 world builds a month
  • 750 episodes a month, run at once
  • 2 sandboxes at a time
  • Top-ups when you need more
Start free

Team

$149 / month

  • 20 applications, 8 world builds a month
  • 3,000 episodes a month
  • 4 sandboxes at a time
  • Top-ups when you need more
Start free

Enterprise

Custom from $3,000 a month

  • Runner inside your own cloud account
  • Single sign-on, audit export, retention controls
  • Private held-out evaluation of vendor agents
Talk to us

Yearly plans get two months free. Need more in a month? Add 1,000 episodes for $30, or a world build for $15. Nothing renews by itself, and every job has a spend cap.

Questions

Find out what breaks before your customers do.

Design-partner pilot: four weeks, free for the first five teams shipping an agent into their own product.

Fictional data only. No production access. Isolated sandboxes.