Skip to content

Where the agent actually works.

curl -fsSL https://testrelic.ai/install.sh | sh

Every test run becomes shared context for Cursor, Claude Code, Copilot, and Codex — over MCP. So your whole team ships at senior-IC speed, not just the engineer who's been here longest.

Used every day by teams shipping software with AI
Purple Plum FI
ClubQ
Virtu
Levich

Inside the Studio

One workspace, every failing run

Six regions, one session. Everything but the one being named is masked back — the agent's plan, a live browser it drives, your terminal, and the rail that scopes all of it.

LocalCloud
Search chats…

Agent sessions

Fix the coupon total
Record checkout flow
Nightly triage
Settings
shop-e2ePlaywright Sign in

✻ Ready to test shop-e2e

✓ live browser connected — everything I do is visible in the Live Browser tab

Fix the failing test "checkout applies coupon" in tests/cart.spec.ts

✻ TestRelic

Recalled project memory3 notes

Read tests/cart.spec.ts42 lines

Opened demo.testrelic.shoppage loaded · 0.9s

Looked at the live pagefound #code, .cart-total

From memory of this app
[data-test=pay-now] was renamed to [data-test=pay-submit] in v2.4.1 · 6d ago
the cart total re-renders once after the coupon call settles · 3w ago
checkout.spec.ts has failed 4 of the last 30 runs · today

The coupon applies, but the total re-renders after the assertion runs — so it reads $50 before settling to $45. Asserting on the settled value fixes it.

tests/cart.spec.tsUPDATE
- await expect(total).toBe("$45");
+ await expect(total).toHaveText("$45");
ApproveRejectApplied to tests/cart.spec.ts · +1 −1

Saved tests/cart.spec.ts+1 −1

Ran the tests3 passed (8.0s)

Saved to project memoryselectors

Remembered for next time
Remembered: the cart total settles after a re-render — assert on the settled text, not the raw value. · selectors · shop-e2e
> Describe what to test…
✻ shop-e2e↑ 1.1k tokens
✻ AGENT DRIVINGyour checkout pageTake over
ddemo.shopCartCheckoutPayment

Complete your order

Contact

Payment

Order summary

Trail Runner 42UK 9 · Slate$38.00
Merino socks2 pairs$12.00
Subtotal$50.00
Coupon SAVE10−$5.00
ShippingFree
TerminalAsk AIengineTestRelic

$ npx playwright test

Running 13 tests using 4 workers

✓ remove item from cart (1.9s)

✘ checkout applies coupon (4.2s)

▲ logout clears session (2.6s, retry 1)

11 passed, 1 failed, 1 flaky (18.4s)

⌨ Terminal Ctrl+`report 3m ago TestRelic Local only

The complete AI testing harness

Six surfaces, one session

Studio isn't a chat box with test results bolted on. It's the harness an agent needs to work on your app safely — rules, scheduled work, tools, your own MCP servers, memory, and everything it produced.

Rules

Nothing mutates without you. Approve once, or write a rule — allow every edit this session, or stop asking about a whole command prefix. Rules are session-scoped and never broader than what you were shown.

ApprovalLocal · nothing uploaded
Editcheckout.spec.tswaiting
Yes, run itthis once
Yes, allow all editsthis session

Yes, don't ask again for "npx playwright …"

No, and tell it whyfeedback goes back

Allow rules · 2 this session

Autopilotexplicit, and clearly labelled

Automations

Work Studio runs for you — on a cadence or once in the background. Nightly triage, a flake sweep every six hours, a coverage audit each Monday. You read the results, not the queue.

AutomationsScheduled · Tasks
Nightly triagedaily · 02:00on
Flake sweepevery 6hon
Coverage auditweekly · Monon
Re-run checkoutonce · in 20mqueued

Last run

Run #48213 issues opened3m ago
Cadencehourly · every6h · daily · weekly · once

Tools

The built-in harness every new chat starts with: TestRelic for creation, healing, triage and coverage, plus Playwright, Appium and Maestro wired to drive real browsers and real devices.

ToolsStudio harness
TestReliccreation, healing, triage, coverageon
Playwright@playwright/mcp · Live Browseron
Appiumreal devices and emulatorson
Maestroneeds the Maestro CLIoff

Every new local chat starts here

tr_diagnose_run+ 38 more
Your own serversunder Infrastructure

MCP client

Studio is an MCP client, so your own servers join the same session — an issue tracker, a database, your internal tooling. Add them once and every new chat can reach them.

See the MCP integration
Infrastructure~/.testrelic/mcp.json

Servers

jiranpx @acme/jira-mcp12 tools
postgresuvx mcp-server-postgres8 tools
internal-apinode ./tools/mcp.js5 tools

ARGS -y @acme/jira-mcp --project "TEAI"

ENV JIRA_TOKEN=••••••••

Applies tonew chats
Running chatskeep the servers they started with

Memory

What Studio knows about your app, and what it is handing the agent right now. Read it as a lifecycle, a list, a graph or a coverage map — and see which notes are serving, fading or archived.

How memory works
Memoryshop-e2e · repo
LifecycleListGraphCoverage
Serving nowgiven to the agent right now12
Savedremembered and ready184
Fadingpin it to keep it fresh9
Archivedrestorable any time41

[data-test=pay-now][data-test=pay-submit]

Written byStudio · CLI · MCP · Ask AI

Artifacts

Every file a chat produced, attached to the chat that produced it — traces, DOM snapshots, screenshots and root-cause writeups. The agent opens holding all of it, so nothing gets pasted into a prompt.

ArtifactsRun #4821
failure.pngscreenshot148 KB
trace.zipplaywright trace2.1 MB
dom-step-4.htmlDOM snapshot96 KB
rca.mdroot-cause writeup4 KB

Attached to the chat that made them

uploaded6.7 MB
Retentionfollows your plan

How a session gets to the Studio

From a failing test to a working fix

Without leaving the surface you're already in.

A run fails

Playwright, Appium or Maestro reports a failure. TestRelic captures the full session as application memory.

GitHub Actionse2e.yml
e2eshard 1/4passed
e2eshard 2/4failed
e2eshard 3/4passed
shard 2/46.1s
1 failed1 flaky · 11 passed18.4s
Uploadedrun #4821 · 3 artifacts · 6.7 MB
Capturedvideo · steps · network · console

An agent opens it in the Studio

The agent reads the run over MCP — video, steps, network, console — and forms a plan before touching anything.

Reading the run#4821
Recalled project memory— 3 notes
tr_diagnose_run— 3 failures
tr_suggest_locator— 3 alternatives
Opened demo.shop— 0.9s
Looked at the live page— .cart-total
Plan formednothing touched yet
Read overMCP

You watch it work, and approve

Selector patches, root-cause writeups, new test drafts — proposed live, applied only once you say go.

Proposedcheckout.spec.ts

− await expect(total).toBe("$45");

+ await expect(total).toHaveText("$45");

✓ ApproveReject
Ran the tests— 3 passed (8.0s)
Saved to project memory— selectors
rca.md— root-cause writeup drafted
Appliedonly once you said go
Re-runqueued on the next push

One protocol, three ways in

Studio is one of three surfaces MCP feeds

The cloud platform is the single source of truth. MCP distributes it out — the same run, the same memory — to the Studio, the CLI and your agent.

Studio

The workspace on this page. Reads and writes through the same MCP layer as everything else — a fix proposed here is visible everywhere else, instantly.

Studiodesktop app
Live Browserwatch it drive, take over
Tests13 · 10 detail tabs
Automationsscheduled and one-off
Memorylifecycle · graph · coverage

Reads and writes over

MCP → cloud platform

ModeLocal · Cloud

The CLI

The same agent in your terminal. Start a fix in the Studio and pick it up here, or the other way round — it's one session, not a copy.

Install the CLI
The CLItestrelic · tr

$ testrelic studio

Launched TestRelic Studio on ~/src/shop-e2e.

$ tr

Ask AIthe same agent, in your terminal
Sessionspicked up where you left them

Same memory, same run

ModesCloud · Local

Your coding agent

Cursor, Claude Code, Copilot or Codex, connected over MCP to the same cloud platform — the single source of truth for every surface.

Connect an agent
Your coding agentover MCP
Cursormcp.jsonconnected
Claude Codemcp addconnected
Copilotmcp.jsonconnected

Tools it gains

tr_diagnose_run+ 38 more

Bearer tr_mcp_••••

Source of truththe cloud platform

Getting started

Three commands from here to a working session

Studio runs on your machine. In Local mode nothing leaves it.

Install it

One line. It installs the TestRelic CLI, which carries the Studio desktop app with it — same binary on macOS, Linux and Windows.

curl -fsSL https://testrelic.ai/install.sh | sh

Run in Terminal · macOS / Linux

InstallmacOS · Linux · Windows

$ curl -fsSL https://testrelic.ai/install.sh | sh

resolving latest…

✓ installed testrelic → ~/.testrelic/bin

Also linkedtr · ask-ai

PowerShell: irm https://testrelic.ai/install.ps1 | iex

Nexttestrelic studio
Sizeone binary, no runtime

Open it on your repo

Run it from the project you're testing and the Studio opens already pointed at it. No workspace to configure, no folder to pick.

testrelic studio
Open on your reposhop-e2e

$ testrelic studio

Launched TestRelic Studio on ~/src/shop-e2e.

Repodetected from cwd
--pathopen a different folder
--stopfree the port and exit
Sessions restored3
ModeLocal · nothing uploaded

Open a failing run

Once the SDK has uploaded a run, every failure is one click from a session — and the agent starts holding the video, steps, network and console.

Read the quickstart
Open a failing run#4821
1 failedcheckout.spec.tsopen

Attached automatically

video1 trace6.1 MB
steps214 specs
network142 requests2 × 500
console7 warnings1 error
No key yet?the SDK writes the first run

Stop reading logs. Start watching the fix happen.

Studio is included in the Pro plan, from $99/month.