Changelog

What shipped recently in CLI.

October 2026


CLI·

Studio's tool rules and secret masking hold on every engine

The Auto, Ask and Off rules you set for an MCP server's tools, and the Live Browser's masking of secrets, now apply whichever engine runs the turn.

  • Masked snapshots for every engine. Claude Code, Codex and Cursor now receive page snapshots with typed secrets masked, as the TestRelic Cloud engine already did.
  • Off and Ask hold for Codex and Cursor. A tool set to Off is hidden from them and refused. A tool set to Ask is refused with a reason, because neither engine can stop to ask. This holds in Studio, in tr -p and in the terminal UI, and for remote MCP servers too.
  • Ollama asks first. In Local mode, Ollama's file writes, deletes and commands now wait for your approval, in Studio and in the terminal UI. A server turned Off is no longer started for the TestRelic Cloud or Ollama engines.
  • The terminal UI asks before a tool set to Ask runs, with a yes/no prompt.
  • Cursor finds its servers in a monorepo. Studio writes .cursor/mcp.json at the root of the git repository, where Cursor reads it, so a workspace opened on a package folder gets the Live Browser and the session's other servers. If that repository is your home folder, nothing is written, and the turn says why.
  • Screenshots and recorded locators are masked. Screenshot the page in the Live Browser's right-click menu masks secrets the way a step capture does. A recorded locator that would carry a secret is left out, and the CSS path stays as the fallback.
  • Errors from a remote MCP server show only its origin, so a key in its URL no longer reaches the screen or the model.

Also in this release:

  • Run selected and a file's or folder's Run no longer end in "No tests found" for tests declared with tags, or for never-run tests whose titles are longer than 80 characters.
  • In the terminal UI on Linux, a message now reaches the engine at once. Before, it took about 8 seconds.

Released as testrelic-cli 1.3.0.

Cloud PlatformCLI·

Ask AI: reply to Studio and CLI sessions from the web

Ask AI's Remote tab no longer only follows Studio and CLI conversations: you can now take part in them from the web. The device still runs every turn itself, with its own tools and permission rules.

  • Reply or queue a message. A message sent while a turn is running waits in a queue, and you can send a held one with Send now or remove it.
  • Answer approvals. An approval the session is waiting on can be answered from the web with Allow once, Deny, or Deny and say what instead. "Don't ask again" and Full autopilot stay on the device.
  • Stop a turn. Stop interrupts the device's current turn; the session stays open.
  • Start a chat on your own computer. New remote session lists the Studio apps you're signed in to under Your devices. Pick a recent folder, say what the agent should do, and the chat opens and runs in Studio there.
  • Control stays with you in Studio. Each chat has a Web control on / Web control off switch in its header, and messages from the web carry a From the web label. Under TestRelic web app in Settings → Chat, Web control in new chats sets the default and Start chats from the web decides whether the web may open chats here. Both are on by default.
  • In the CLI, turn web control off with --no-remote-control, the remoteControl config key or TESTRELIC_REMOTE_CONTROL, or mid-session with /remote off. The web can still watch.

Replying from the web needs Studio or the CLI 1.2.1 or later. Older versions can still be watched, and the session asks you to update.

Released as testrelic-cli 1.2.1.

CLI·

Run Ask AI sessions on your own CI or cloud machines

Run on infrastructure (in Ask AI's New remote session dialog, under A runner from Infrastructure) starts an Ask AI session on a machine you control. The CLI that runs it there ships in this release.

  • testrelic runner session --id <session-id> claims one session, makes a shallow clone of its repository and branch into a temporary directory, installs dependencies with the package manager your lockfile names, runs the Ask AI agent there, and can open a pull request with the result.
  • testrelic runner daemon --target <target-id> keeps a cloud machine (AWS, GCP or Azure) waiting for sessions dispatched to it and runs them one at a time. On first start it enrols the machine, which TestRelic accepts only from the target's recorded public IPs.
  • In CI, no TestRelic secret is stored. A GitHub Actions job identifies itself with GitHub's OIDC token (permissions: id-token: write); a GitLab job uses an ID token (TESTRELIC_ID_TOKEN). TestRelic starts the job with the session id.
  • Progress, the agent's replies and a stop button are in the web app while the session runs.

On Linux, run the CLI as testrelic: tr there is the coreutils command. See Infrastructure for execution targets.

Released as testrelic-cli 1.2.1.

CLI·

Studio's Live Browser stays up

Studio's Live Browser could crash mid-session, taking every tab, the agent's Playwright connection and the pane down with it. It no longer does, and it recovers when its browser dies for any other reason.

  • No crash when a tab goes away. Studio only wires up a live page, so a tab that disconnects while being attached no longer brings the browser down.
  • The mirror keeps going. When the mirrored tab closes, the pane follows the next live tab or opens a new one, instead of freezing.
  • The browser comes back by itself. If it dies, Studio restarts it on the same port, up to three times in two minutes, and the agent's Playwright MCP reconnects on its own. The pane re-attaches and restores the last page. Past that limit, the pane offers Relaunch browser.
  • A page whose renderer crashed or was killed for memory is reported and recovered, instead of stalling for about two minutes.
  • Two Studio windows on one repo share one browser. Closing or reopening one no longer kills the other's browser, and closing one window no longer closes every Studio browser on the computer.
  • The device toolbar's emulation and throttling carry over to a restarted browser and a followed tab.

Released as testrelic-cli 1.1.1, and included in 1.2.1.

Cloud PlatformCLI·

Signing in to Studio no longer signs the CLI out, or the other way round

On a computer with both Studio and the CLI, signing in to one used to revoke the other's token, so its next request failed with "Authentication required". Each now keeps its own.

  • Separate tokens per app. Studio's sign-in token is now named TestRelic Studio (<computer name>) in Settings → MCP Tokens, and the CLI's stays TestRelic CLI (<computer name>). Signing in again replaces only the same app's earlier token on that computer.
  • Mind the 10-token limit. A computer that uses both apps holds two tokens, and each user can hold 10. If you're at the limit, delete an unused token in Settings → MCP Tokens before signing in.
  • A clearer MCP error. A revoked or expired token on the MCP endpoints now answers "Bearer token is invalid, expired, or revoked. Mint a new MCP PAT at /settings/mcp-tokens."
  • Ask AI usage counts each model call once. A reply that both reasoned and called a tool was counted two or three times against your token meters.

Until a computer's next Studio sign-in, its existing Studio token can still be listed as TestRelic CLI (<computer name>).

CLI·

Studio's chat never goes quiet on a message, and leaves no processes behind

A message sent in Studio's chat is now always either answered or reported, and Studio cleans up the processes it starts.

  • No more endless "Working on it…". The CLI acknowledges each message. If the assistant doesn't, Studio says "Your last message wasn't answered." and offers Restart the assistant, which keeps the chat and sends the message again. The composer stays usable throughout.
  • Messages aren't lost while the assistant restarts. One sent meanwhile is held and delivered when it's back, and a reconnect can no longer drop a message or run it twice.
  • No leftover processes. MCP servers such as Playwright MCP now stop with the session that started them, and closing Studio ends its chat sessions instead of leaving tr running.
  • One update at a time. Studio and CLI updates can't run in two windows at once or replace the binaries under a running chat.
  • The token stays off the command line. Studio hands its token to the CLI in the TRC_TOKEN environment variable, and the CLI keeps it from every process it starts, MCP servers included.
  • Clearer sign-in failures. Sign-in errors now include the server's own hint, and testrelic config list shows the Claude API key only as set.

Released as testrelic-cli 1.1.0.

September 2026


CLI·

Studio 1.0: one design, and screens that agree about your suite

Studio 1.0 moves every Code-mode screen onto one design and one vocabulary. It also fixes places where Studio said something about your suite that wasn't true.

  • A file Playwright won't load is called out. When a duplicate test title makes Playwright refuse a file, its tests read Blocked and sort right after failures, the status bar says "1 file can't run", and a run that would include it asks first, offering Fix with AI or Run the other N.
  • Roll-ups stop over-claiming. Needs rework no longer shows a clean run while a file can't run. Planner gains Partly proven and Blocked verdicts, and never reads Met off a partial run. Red means a failure and nothing else.
  • Uploads are named plainly. With uploading switched off, a run reads Upload off rather than failed, and the status bar says Uploads on or Uploads off. A run whose upload nobody can confirm is recorded in Test runs as Not confirmed.
  • Agent runs upload their own report, including a run whose card opened late, and never pick up an earlier run's report. The Upload step says "Nothing to upload" when there was nothing to send.
  • A past run no longer takes over the app. Picking one in Test runs shows it in Tests only, with Back to latest. The status bar, Planner and Settings keep showing the latest results.
  • Memory says which cloud project it's showing, and says when the folder isn't linked to one.
  • Pages are named after their nav labels, such as Source control, App servers and Run targets. Across these screens, text meets AA contrast, rows open from the keyboard, and reduced motion is respected.

Released as testrelic-cli 1.0.0.

CLI·

Studio keeps your chats and your uncommitted work

Studio 1.0 also closes the ways a chat's history or an uncommitted change could be lost.

  • Chats are never deleted behind your back. Reopening a chat after a relaunch no longer empties it, and a full storage quota no longer makes newer chats vanish at the next launch. A chat whose list entry went missing comes back under Archived (the chat list's filter, Status).
  • A Cloud chat continued on another device shows the turns taken there after the ones this computer already had. A reconnect never doubles it.
  • Discarding keeps a copy. Discarding changes in Source control, and Throw them away when you switch branch, first save a restore point holding everything they drop (staged edits, new files and ignored files included), so Undo or History → Journal can bring it back. If Studio can't make that copy, it refuses and changes nothing. Undo says plainly when something couldn't be put back, and where the copy is.
  • A branch switch never replaces a file you haven't committed. If the other branch tracks a file with the same name as one of your untracked or ignored files (a local .env, for example), the switch stops and changes nothing. Move the file aside to switch.
  • Sync no longer offers a force-push that would delete a teammate's commit after Studio undid a pull.
  • Fewer background processes. The CLI no longer starts its preset Appium MCP server on a computer with no Android SDK, adb or Xcode. It cost about four processes and 150–300 MB per chat.

Released as testrelic-cli 1.0.0.