TestRelic AI
Go to App
Studio

Workspace

The Code and Cloud views, the Tests list, test detail, chat (agent runs, cards, the changes chip and the Local mode Skill), Settings, Automations, Run targets, issue detection, fix & re-run and the terminal inside TestRelic Studio.

TestRelic Studioshop-e2eCloud · synced
Playwright
you@shop.dev
shop-e2e
Playwright · TypeScript
5passed1failed1flaky15.3s
⌘ Terminal Ctrl `engine
Fix flows can drive your local `claude` CLI directly, scoped to this repo.
report 4m ago
TestRelicCloud · synced

Code and Cloud views

The header's Code | Cloud switch picks what Studio shows. Code is your workspace: this project's tests, runs, source control and chats, on this computer. Cloud is your team's view of TestRelic Cloud: uploaded runs, monitoring, alerts and shared memory (see Cloud view).

Studio opens on the Cloud view. It opens on Code instead when you launch it on a project with testrelic studio, on the first run while its tools install, or when you've picked Code mode under Settings → Engine & approvals → Default mode for new chats. Moving between views with the switch doesn't change that default, and each chat keeps the mode it was started in.

In the Code view, the sidebar groups its destinations under three headings:

  • Test: Planner, Tests, Needs rework and Source control.
  • Project: App servers and Run targets, the app your tests run against and where they run.
  • Assistant: Capabilities, Memory, Context, Automations and Artifacts.

Tests

Open any local repo (the framework is detected for you) and Tests lists its tests as a table you can select from, copy, group and export, like a spreadsheet.

  • Select and copy. Click a cell; use Shift+click or Shift+arrow keys for a block, a row number for the whole row, or Ctrl+A (Cmd+A on a Mac) for everything. Ctrl+C copies the selection as cells that paste straight into Sheets or Excel, and Ctrl+Shift+C adds the column names. While cells are selected, the footer totals them.
  • Columns. Test, Status, File, Folder, Type, Tags, Project, Duration, Retries and Error. Sort from a header, and drag a column's edge to resize it. The Columns menu shows and hides columns and turns on Compact rows.
  • Groups. Group up to three levels deep by Folder, File, Describe, Type, Status, Tag, Project or Modules: add a level from the group bar, or drag a column header into it. A project you haven't regrouped groups by Folder › File.
  • Export CSV saves the visible columns, in their current order, to your Downloads folder.

A single click selects a cell. To open a test, double-click it, press Enter, or use Open when you hover the row.

When a spec file can't load, Tests says so, for example "1 file can't run", and offers Run the other N for the rest and Fix with AI for the file.

Test detail

Open a test and its detail leads with the result, then one tab strip takes you into the evidence from your local .testrelic-report/. Overview is always there (an eval test opens on Eval cases instead); the other tabs appear when the run has something for them, and a tab flags what needs a look, such as "1 error" on Console or "1 failed" on Network.

TabWhat it shows
OverviewA sentence about the outcome and the step the test broke at, a strip of its last 10 runs labelled, for example, New failure, Keeps failing, Fixed, Retried in 2 of 10 or Stable, and What happened, the steps in order. The failed step opens in place with Expected, What it got, Waited on, Watch this moment and Copy bug report. A flaky test shows both tries side by side.
ReplayThe video, with a tick on the scrubber for each step, previous and next step, speed, fullscreen, Where it broke and an All steps / Assertions filter.
TraceThe run's trace.zip in Playwright's own Trace Viewer. If it doesn't start, Try again.
ConsoleLines grouped by the step that was running, with level filters, Copy all and Ask AI about this error.
NetworkRequests with type filters, search and a details panel. Share this request copies one as cURL (bash / zsh or PowerShell) or as an AI prompt, with Hide cookies and tokens on by default.
APIThe API calls the test made.
FilesEach attached file, with Show in folder and Copy path.
Eval casesAn eval test's cases against each metric, every score drawn against its threshold.
VisualThe test's visual comparisons.
TestRelic Studioshop-e2e · Runs
Run history
Latest local run
198
passed
3
failed
5
flaky
8
skipped
3m 14s
duration
Cloud run historysynced
pass rate · oldest → newest
fix promo-code race conditionGITHUB
maina1c9e02
2063m 08s12m ago
wip: retry checkout flowGITHUB
fix/checkout7fbe114
1988✗3m 41s1h ago
add promo-code coverageGITHUB
main4d02af9
2012m 55s5h ago

Test Paths

A static navigation / action / assertion flow parsed straight from a test's source, independent of any run.

TestRelic Studiocheckout.spec.ts
Workflow · tests/checkout.spec.ts
→navigate
go to /checkout
→
●action
fill card number "4242 4242 4242 4242"
→
●action
enter promo code "SAVE10"
→
●action
click "Apply"
→
◆assert
expect cart total to reflect the discount
5 nodes·3 actions · 1 checksindependent of any run — parsed straight from source

Chat

The primary pane: a persistent Ask AI session backed by the same engines as the CLI (TestRelic Cloud, Claude Code, Codex, Cursor and Ollama), with tool approvals and an artifacts gallery. The sidebar lists your chats, and its Status filter shows Active, Archived or All. A chat whose sidebar entry was lost comes back under Archived at the next launch instead of being deleted. See Live Browser for what happens when the agent needs to drive a page.

TestRelic Studioshop-e2e · Chat
The checkout test keeps failing on the promo code step — can you take a look?
TTestRelic
✻ Worked for 4.2s
⏺ 3 actions · read checkout.spec.ts, ran the suite, opened the trace

Found it — the promo field is queried before the cart total re-renders, so the assertion races a stale value. I moved the check onto expect.polland re-ran it 5× clean.

Describe what to test — e.g. “Record a login test on my app”
+🎙TestRelic
📎 Attach a file/ Commands@ Reference a test

The agent runs your tests

Ask the agent to run your tests and it does, after asking.

  • In both views. In the Code view, a chat writes and runs your tests under your approval settings. In the Cloud view, an Agent session can run your tests and the scripts it needs, and edit files, asking first. An Ask AI chat (Chat) only answers.
  • Claude Code asks too. With Claude Code as the engine, a test command shows an approval card such as "Run "npx playwright test" in your project?". Your approval mode and "don't ask again" choices apply, and a force-push is always refused.
  • Runs go to your run target. Each test run the agent starts goes to the default run target for that view, the same way a run from Tests does. A target that can't take the run refuses it and says why; the run never moves to this computer instead. Claude Code, Codex and Cursor run tests in their own shell, on this computer.
  • The run card matches the run. It shows only this run's results. When the engine cut the output short, it reads "Saw N of M · output cut short" rather than guessing at the rest.

Local mode, per chat

Every chat runs in Cloud mode: test runs upload and project memory is read and written. To keep one chat on this computer, open the composer's + menu in a Code chat and pick Skills → Local mode. While it's on, a Local mode chip sits by the input and nothing leaves this computer: test runs aren't uploaded and project memory is read-only. You can switch it between turns, and the conversation carries on. The Skill isn't offered in the Cloud view. The terminal CLI keeps its own mode switch; see Modes & engines.

Cards, and who the answers are for

When an answer is structured, the agent shows it as a card: test cases, bug reports, checklists, run results, metrics, charts, coverage, test steps, locators, API calls, next steps and plans. A card shows only what the agent actually gave. Test cases export as CSV, which imports into TestRail, Xray, Zephyr and qTest, or as Markdown.

The Manual / Automation switch in the chat header sets what answers lead with. Manual puts test cases, checklists and bug reports first; Automation leads with runnable code, locators, runs and API calls.

What a chat changed

The chip in the chat header, such as 2 files · 1 run · 1 commit, counts what the chat has done: files written by any engine, test runs, and commits from any shell or from a git card you approved. Click it for the list. Each file says where it stands now: still changed, with its +/− counts and a diff; in one of this chat's commits, which opens in History; or "no changes now". The footer says how many files aren't committed yet, with Review & commit, or "Nothing from this chat is left to commit."

Settings

Settings holds Studio's preferences as controls instead of typed commands. Its sections are grouped by whose setting it is:

GroupSections
Get startedSetup
This projectProject rules, Reporter
AssistantEngine & approvals, Chat, and links to Memory and Git permissions
OrganizationIntegrations, Usage & plan
This computerUpdates, Storage, Account

In the Code view, press Ctrl+K (Cmd+K on a Mac) to search settings and commands.

Engine & approvals is saved to ~/.testrelic/cli-config.json, the same file the tr CLI reads:

  • Assistant engine: TestRelic Cloud, Claude Code, Codex, Ollama or Cursor. See Modes & engines.
  • Default mode for new chats: Code mode ("Write, run and fix this project's tests on this computer") or Cloud mode ("Your team's uploaded runs, CI, build triggers and shared memory"). Cloud is the default.
  • Approvals: how much the assistant does before checking with you. Plan first, Ask every time, Write tests freely (recommended) or Full autopilot. A change reaches chats already running.

Chat:

  • Show tool activity: each step the assistant takes, or a compact summary.
  • Reply language: the language replies are written in, English (US) unless you pick another. A message can still ask for a different one, and open chats pick up the change from their next turn.
  • TestRelic web app: Web control in new chats lets new chats run messages sent from the web app and answer approvals from there, one action at a time ("don't ask again" and Full autopilot stay in Studio). Each chat also has its own switch in its header. Start chats from the web lets the web app start a chat in a folder Studio has open recently. See Ask AI.
  • Idle chats: with Let idle chats sleep on (the default), a chat you haven't used for 30 minutes stops its assistant, and the browser tools and memory that come with it, until you send it a message, and no more than 5 chats stay awake. Its history stays where it is. A chat that is working, waiting for your approval or holding a queued message never sleeps. Both limits can be changed here.

Storage limits what Studio keeps on this computer. Each limit is on by default and has its own switch:

  • Keep evidence for the last 10 runs: screenshots, videos and traces are kept for the newest 10 test runs; older runs keep their reports and results. Off, the newest 20 runs keep theirs, and so does any older run that still holds a test's latest result. Turning it off doesn't bring back evidence already removed.
  • Limit downloaded Cloud files to 1 GB and Limit extracted trace frames to 512 MB: the files opened longest ago go first, and come back the next time you open them.

Secrets like a Claude API key show only a redacted status, never the raw value, and can't be set from this UI — typing one into a native dialog would leak it into the process list.

Automations

Automations holds work Studio does for you, and what came back. It runs them while Studio is open. An automation is a saved task with a trigger: Scheduled (every hour, every few hours, or at a time on every day, weekdays or the days you pick), One-time (at a moment you choose) or Manual. Activity lists what has run, and Set up lists what's configured. Start one with New automation.

An automation runs as a chat, so its test runs go to your run target like any other chat's.

TestRelic StudioSessions & workbench
Open sessions
shop-e2e · checkout fix
shop-e2e · nightly regression
shop-api · contract tests
checkout-mobile · smoke
Automations Tests Studio runs for you
Artifacts 3
Morning smoke suite
Daily · 8:00 AM · next in 6h
Nightly regression sweep
Daily · 11:00 PM · paused

Run targets

Run targets ("Where your tests run. Pick a default for each mode.") sets where test runs go:

  • A default for each mode. The Code default takes runs from Tests, Planner runs unless you pick another target there, and the assistant's test runs in Code chats and automations. The Cloud default takes the assistant's test runs in Cloud chats and automations. The composer's session settings show the same default as Default run target, and you can change it there too.
  • Where tests can run lists the targets you have, with Start and Stop for the ones that can be started and stopped. Add a place to run tests lists the providers you can add.
  • Results go where the upload switch says, in both modes.

Claude Code, Codex and Cursor run tests in their own shell, on this computer, whatever target is picked; the picker says so.

Issue detection

Local, no-run heuristics, under Needs rework: failures, flaky-by-retry, slow steps, console errors, and 4xx/5xx network calls.

TestRelic StudioNeeds rework
Needs rework
5 to rework · 2 high severity · from your latest run
FailureFlakySlowConsole errorNetwork
TypeSeverityTestWhat happened
FailureHighapplies promo code at checkoutExpected cart total to update, timed out after 5s
FlakyMediumsigns in with saved sessionPassed 4/5 retries — intermittent redirect delay
SlowLowGET /cart returns current itemsStep exceeded 2× the suite median duration
Console errorMediumlogin flow on iOS simulatorUncaught TypeError logged during render
NetworkHighshows validation error for expired card502 from /api/payments/validate

Fix & re-run

Apply a suggested fix and re-run the test in place, with an edit → rerun → diff view. Fix flows can drive your locally installed claude CLI directly, scoped to the repo, in addition to the primary chat engine.

TestRelic Studiocheckout.spec.ts · applies promo code at checkout
Run failed (exit code 1)
✗ applies promo code at checkout
  Expected cart total "$81.00" but received "$90.00"
  at tests/checkout.spec.ts:42

Apply a suggested fix and re-run in place — the diff view appears once the run finishes.

Terminal

An embedded terminal pane alongside chat.

TestRelic Studioshop-e2e · Terminal
➜ shop-e2e git:(main) npx playwright test checkout.spec.ts
Running 7 tests using 4 workers
✓ adds item to cart and checks out (2.4s)
✗ shows validation error for expired card (3.1s)
➜ shop-e2e git:(main) ▌

Cloud view

Switch the header to Cloud and Studio shows TestRelic Cloud with the web app's own layout and words. Studio signs in with its own token, separate from the CLI's, so signing in to one doesn't sign the other out (see Authentication).

  • The web's navigation. The sidebar holds Ask AI, Repositories, Test Runs, Monitoring, Alerts and Artifacts. A repository opens on the web's tabs: Overview, Test Cases, Test Runs, Test Plans, Monitoring, Memory, Integrations, Alerts and Settings, whose sections include Lanes and Telemetry. The time window starts at Last 30 days.
  • Two-way sync. Acknowledge an alert in Studio and the web app refreshes and says so. Edit a lane on the web and Studio redraws. Neither needs a reload.
  • From the cloud to your code. A cloud test offers Open in Code, Run locally (which runs the matching test in the open folder, and says so instead of guessing when it can't find one) and Debug in Live Browser.
  • Two kinds of Ask AI conversation. An Agent session works through it with you: it can act, and asks first. A Chat answers one question and never acts.
  • No dead ends. A screen that fails to load says so and keeps what it last showed, and a change that fails offers Retry.

In the Cloud view, Ctrl+K (Cmd+K) opens its own command palette.

TestRelic Studioshop-e2e
Switch to Cloud?
Cloud chats and test runs sync with TestRelic Cloud, so your team sees results, insights, and history. You'll land in your latest Cloud chat.

Next steps

→ Pipelines · Live Browser · Modes & engines

Was this page helpful?

On this page