Where the agent actually works.
curl -fsSL https://testrelic.ai/install.sh | shEvery 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.
✻ 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 memory — 3 notes
Read tests/cart.spec.ts — 42 lines
Opened demo.testrelic.shop — page loaded · 0.9s
Looked at the live page — found #code, .cart-total
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.
- await expect(total).toBe("$45");+ await expect(total).toHaveText("$45");
Saved tests/cart.spec.ts — +1 −1
Ran the tests — 3 passed (8.0s)
Saved to project memory — selectors
Complete your order
Contact
Payment
Order summary
$ 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)

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.
Agent sessions
✻ 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 memory — 3 notes
Read tests/cart.spec.ts — 42 lines
Opened demo.testrelic.shop — page loaded · 0.9s
Looked at the live page — found #code, .cart-total
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.
- await expect(total).toBe("$45");+ await expect(total).toHaveText("$45");
Saved tests/cart.spec.ts — +1 −1
Ran the tests — 3 passed (8.0s)
Saved to project memory — selectors
Complete your order
Contact
Payment
Order summary
$ 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)
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.
Yes, don't ask again for "npx playwright …"
Allow rules · 2 this session
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.
Last run
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.
Every new local chat starts here
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 integrationServers
ARGS -y @acme/jira-mcp --project "TEAI"
ENV JIRA_TOKEN=••••••••
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[data-test=pay-now] → [data-test=pay-submit]
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.
Attached to the chat that made them
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.
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.
You watch it work, and approve
Selector patches, root-cause writeups, new test drafts — proposed live, applied only once you say go.
− await expect(total).toBe("$45");
+ await expect(total).toHaveText("$45");
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.
Reads and writes over
MCP → cloud platform
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$ testrelic studio
Launched TestRelic Studio on ~/src/shop-e2e.
$ tr
Same memory, same run
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 agentTools it gains
Bearer tr_mcp_••••
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 | shRun in Terminal · macOS / Linux
$ curl -fsSL https://testrelic.ai/install.sh | sh
resolving latest…
✓ installed testrelic → ~/.testrelic/bin
PowerShell: irm https://testrelic.ai/install.ps1 | iex
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$ testrelic studio
Launched TestRelic Studio on ~/src/shop-e2e.
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 quickstartAttached automatically
Stop reading logs. Start watching the fix happen.
Studio is included in the Pro plan, from $99/month.