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.
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.
| Tab | What it shows |
|---|---|
| Overview | A 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. |
| Replay | The 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. |
| Trace | The run's trace.zip in Playwright's own Trace Viewer. If it doesn't start, Try again. |
| Console | Lines grouped by the step that was running, with level filters, Copy all and Ask AI about this error. |
| Network | Requests 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. |
| API | The API calls the test made. |
| Files | Each attached file, with Show in folder and Copy path. |
| Eval cases | An eval test's cases against each metric, every score drawn against its threshold. |
| Visual | The test's visual comparisons. |
Test Paths
A static navigation / action / assertion flow parsed straight from a test's source, independent of any run.
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.
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.
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:
| Group | Sections |
|---|---|
| Get started | Setup |
| This project | Project rules, Reporter |
| Assistant | Engine & approvals, Chat, and links to Memory and Git permissions |
| Organization | Integrations, Usage & plan |
| This computer | Updates, 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.
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.
| Type | Severity | Test | What happened | |
|---|---|---|---|---|
| Failure | High | applies promo code at checkout | Expected cart total to update, timed out after 5s | |
| Flaky | Medium | signs in with saved session | Passed 4/5 retries — intermittent redirect delay | |
| Slow | Low | GET /cart returns current items | Step exceeded 2× the suite median duration | |
| Console error | Medium | login flow on iOS simulator | Uncaught TypeError logged during render | |
| Network | High | shows validation error for expired card | 502 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.
Apply a suggested fix and re-run in place — the diff view appears once the run finishes.
Terminal
An embedded terminal pane alongside chat.
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.