TestRelic is your AI engine for testing ambitious software.
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.
Agent sessions
Ready when you are
Start a session and I'll open a browser
No session yet — start one to drive a live browser.

For the terminal
Ask your app's memory without leaving the shell.
An interactive TUI in the Claude Code idiom — type a question, get a grounded answer, open the result in Studio. No context switch, no dashboard tour.
curl -fsSL https://testrelic.ai/install.sh | shInstalls to ~/.testrelic/bin via Terminalread the script
✻TestRelic CLI v0.49.2 (BETA)
agentic testing, in your terminal
backend platform.testrelic.ai (session)
account sarah@acme.com · Growth
repo shop-e2e · 214 specs · 30 runs indexed
tips: /help for commands · @ add context · esc interrupts · ctrl+c twice exits
> Ask about your tests, runs, flakes… (@ context · /commands)
Ask, don't dashboard
Plain-English questions against the same memory the web app reads — answered where you already have a shell open.
One native binary
Rust, prebuilt for Linux, macOS and Windows. No Node or Python runtime to install alongside it.
Hosts your local MCP tools
The CLI doubles as an MCP host, sharing ~/.testrelic config and token with @testrelic/mcp.
Application memory
Memory of your app, not the internet.
Vanilla LLMs know expect().toBe(). TestRelic knows which of your tests flake at 3am and which selector your team changed last sprint.
Add a Playwright test for the saved-card checkout path.
same repo · same model · the only difference is where the app knowledge comes from
AGENTS.mdlast edited 47 days ago · v2.4.0- 10Use Playwright. Never Cypress.
- 11Prefer [data-test] over CSS or text selectors.
- 12The pay button is [data-test=pay-now].
- 13Wait for the network to settle before asserting.
tests/checkout.spec.ts
— none. A file is read, never written. Nothing this turn worked out is available to the next agent, or to this one tomorrow.
tests/checkout.spec.ts
For CI
The same binary, headless, in your pipeline.
Pipe-friendly print mode: run the suite, ship the report into memory, and gate the merge on what the memory already knows about this spec.
$ testrelic run --reporter junit --out results.xml
Every run becomes memory
The reporter uploads traces, timings and failures as the job finishes. No separate upload step to babysit.
Quality gates with real exit codes
Fail the job on new flakes, a coverage drop, or a risk threshold — the pipeline decides, not a dashboard.
Detects your CI automatically
GitHub Actions, Jenkins, GitLab CI, CircleCI and Azure DevOps — each run correlated to its commit and branch.
For Slack & Microsoft Teams
The answer arrives where the question was asked.
Full parity between the Slack and Microsoft Teams apps — the same memory, the same actions, in the channel your team already watches when a build goes red.
GitHub ActionsApp6:02 AM
/testrelic, in any channel
Ask in the thread where the failure was posted. The answer lands threaded under it, with charts and deep links.
Scheduled QA digests
Nightly and per-release summaries posted automatically — flake movement, new failures, what regressed and when.
Act without leaving the thread
Open in Studio, file a deduped Jira ticket, or quarantine the spec straight from the message actions.
Model Context Protocol
One memory layer. Every agent on the frontier.
Add one MCP block. Cursor, Claude Code, Copilot, Codex, Gemini CLI — any MCP client reads your app's memory as 39 tools, on every turn.
npx -y @testrelic/mcpAuthenticates with a single tokencreate one
{
"mcpServers": {
"testrelic": {
"command": "npx",
"args": ["-y", "@testrelic/mcp"],
"env": { "TESTRELIC_TOKEN": "••••••••" }
}
}
}One block, not one per tool
The same MCP server answers Cursor, Claude Code, Copilot, Codex and Gemini CLI. No per-IDE plugin to keep in sync.
Read on every turn, not on request
Your agent pulls the current flake profile and selector history as tools, so it is never working from a stale paste.
Scoped to the org, not the laptop
One engineer's run teaches every engineer's agent. The memory belongs to the repo, not to whoever ran the suite.
For the whole team
Query your app's memory in plain English.
Dashboards, test plans, QA reports, and stakeholder decks — generated from your real runs, not from generic web knowledge.
What's the flake rate on checkout this month?
QA Engineers
Stop re-deriving why a spec flakes. Ask once; the answer stays in memory for the whole team.
Engineering Leads
MTTR, escape rate, and blast radius without a dashboard tour or a status meeting.
Platform & DevX
One SDK, one MCP block, every engineer's agent working from the same application context.
Surfaces
Everywhere you work
One agent across every surface.
Studio
Watch an agent read a failing run, form a plan, and work the fix — every action visible before it lands.
Open StudioAgent session · working the fix
What it did
TUI
The same agent in your terminal. One Rust binary, artifacts rendered in your scrollback, a full MCP host.
Install the CLI▌why is checkout flaky on firefox?
✻ TestRelic
● Checked how often this spec fails(spec: "checkout.spec.ts")
⎿ 4/30 fails · P75 3.2s → 8.4s
● Diagnosed the failing run(run: "#4821")
⎿ 3 failures · 214 specs
▎Not a timing flake. [data-test=pay-now] was renamed to [data-test=pay-submit] in v2.4.1 — all 4 failures are post-deploy.
MCP
Point Cursor, Claude Code, Copilot or Codex at one server. 39 tools, one token.
Connect an agenttestrelic registered · one token
Server
SDKs
Playwright, Appium and Maestro — JS or Python. A run becomes memory the moment it finishes.
Get the SDKRun uploaded · 214 specs
One line in your config
Wire your AI agents into your app's memory.
TestRelic is the test-derived memory layer your team's AI coding agents are missing. Built on Playwright, Appium, and Maestro. Connects to Cursor, Claude Code, Copilot, and Codex over MCP.