Catch broken agents
before your customers do.

Mirrors rebuilds your agent's production environment as a simulation.
Every prompt, model, or code change replays real sessions in CI. Regressions fail there, not in front of customers.

This is the PR check your team sees: same session, two versions of the agent, one caught regression.

replay reportacme-air-support
session ›Cancel my Acme Air reservation HQ8ML2 and refund to the original card.
agent v1···
get_reservation_detailsprovided
100%
get_user_detailsmirror db
98%
cancel_reservationprovided
100%
issue_refundprovided
100%
One $420.00 refund to card ••4242.
agent v2···
get_reservation_detailsprovided
100%
get_user_detailsmirror db
98%
cancel_reservationprovided
100%
issue_refundprovided
100%
issue_refundprovided
100%
Two refunds. $840.00 to card ••4242.
v2 issued a second refund on order HQ8ML2.
1 regression caught before deploy. v1 refunded once, v2 refunded twice.

Run Mirrors on your own agent

Start with the files you already have. No waiting on production traffic. The collector keeps the mirror sharp afterward.

01
Drop in your traces

A trace export, agent code, tool code, or docs. Or stream sessions straight from production with the collector.

02
Mirrors builds your twin

Schema, seed data, and tool behavior mined into a runnable simulation of your environment, in minutes.

03
Every PR replays real sessions

The GitHub check runs your changed agent against recorded sessions. A regression fails before it merges.

Run in your terminal
claude mcp add --transport http mirrors https://api.runmirrors.com/mcp
Then run /mcp → mirrors → Authenticate via browser.

What changes with a mirror

without a mirrorin the mirror

A broken refund flow ships, and a customer finds it first.

The broken flow fails its replay before it ever deploys.

Reproducing the bug means poking at production.

You rerun the exact session in a fabricated copy of your world.

Every prompt or model change becomes a gamble.

Every change is checked against real sessions in CI.

Start free. Scale when you're ready.

Build on the free plan. When your team needs unlimited replays, CI checks, the API, and SSO, we'll tailor a Custom plan.

Free
$0/mo
Try it on your own agent
  • Build unlimited mirrors
  • 60 replay minutes / mo
  • Dashboard, CLI, and playground
  • Community support
FOR TEAMS
Custom
Let's talk
Built around your team
  • Everything in Free
  • Unlimited replays
  • Every change checked in CI
  • Public /v1 API, keys, and SSO
  • Priority support & onboarding

Frequently Asked Questions

Every mirror ships with a fidelity score for each tool plus drift diagnostics, so you can see which tools run real or synthesized code and which are approximated. The Replay screen diffs each recorded production call against its simulated counterpart. You judge the twin on your own sessions before you trust it with a merge gate.

The twin runs on invented data. Mirrors learns the shape and behavior of your environment from your traces, then fabricates the values it simulates against. Evals and replays run on plausible fake records, so a risky prompt or a shared report never exposes a real customer.

The collector is two lines of code and instruments LangChain, LangGraph, and the OpenAI and Anthropic SDKs automatically. It ships for Python, TypeScript, and Go, and anything else logs traces through one manual call. Evals and the playground attach to your agent script directly. LangGraph works today and more runners are coming.

Observability and eval platforms score your agent’s outputs, mostly after they happen in production. Mirrors rebuilds the environment your agent acts on, so changes are exercised against real sessions before they merge. Most teams run both: observability to see production, Mirrors to keep regressions out of it.

No. Drop in whatever you have: a trace export, agent code, tool code, or docs. Mirrors builds a runnable twin in one sitting. The collector sharpens the mirror from then on, since every real session becomes a candidate regression test.

Your next model upgrade shouldn't be a gamble.