Trace is Molar's flagship forensic replay surface — every Playwright, Cypress, Cartographer agent, and Guard run becomes a five-ribbon record: video, DOM, network, console, clone state, and agent thoughts on one playhead. Scrub backward and forward, ask the Debugger what broke, replay from any step with a fix — then hand confirmed diffs to Mender for a draft fix PR.
The Trace viewer stacks every event stream as a parallel ribbon — step, network, DOM, console, agent. The playhead is the same time cursor across all of them. Drop on a failure tick and the right pane already shows you the 404, the console error, and the planner's last thought.
discount.ts:14 returns amount * coupon.value — it should be amount * (1 - coupon.value). That inverts the 10% coupon into a 10× multiplier, so Stripe rejected the malformed receipt URL with a 404.Trace is a reporter for whatever you're already using. Drop a token, ship a CI run. Failures become permalinks the same day.
One line in your Playwright (or Cypress, Selenium, Cartographer) config. We capture video, DOM, network, console, and Clone state at every step boundary.
Every failed run becomes a permalink. Scrub the timeline, step through events, watch the DOM mutate. Pinned failures stay hot for 90 days — others tier down automatically.
The forensic chat reads NDJSON events, Clone state, and your source via the GitHub App. Replies cite events on the agent ribbon. Replay from any step with a one-line patch — or hand the confirmed diff to Mender for a fix PR.
amt=9000 [seq:16]. discount.ts:14 returns amount * coupon.value — should be amount * (1 - coupon.value).Playwright Trace Viewer is great if a human wrote the test and the test broke for a known reason. Trace is for the messier reality: an agent shipped a 14-line PR, two clones, four flaky assertions, and a failure that needs to be diffed against the last green run by next standup.
@molar/trace-mcp · Claude Code, Cursor, WindsurfA trace means something different to QA, an SRE, an engineer, and a coding agent. Trace gives each of them a doorway over the same NDJSON.
Triage today's failures by cluster, not by test name. Pin what matters; let the rest tier down.
Step through the failed PR run, ask the Debugger why, replay with your fix — without leaving the trace.
Watch pass-rate per scenario, regression rates per PR. Spot which flow degraded this week before the customer does.
Point Claude Code at @molar/trace-mcp. The agent searches traces, reads NDJSON, diffs runs, and proposes patches.
Molar is a small suite of tools for teams shipping with agents. Each tool is independently good; together they share state, identities, and storage so the four of them feel like one product.
An agent that learns your app by exploring it — produces an evergreen map of flows and screens.
cartographer →Snapshot-able sandboxes of the services your app talks to: Stripe, SendGrid, Postgres, your own.
clones →Pre-merge checks and production synthetics. Failed runs open in Trace; confirmed regressions flow to Mender for fix PRs.
guards →The forensic record. Every test execution becomes a navigable trace — scrub, diff, replay, share.
you are hereTrace earns its keep on the second failure of any given kind. By the seventh, it's saving an hour a week.
One playhead across step, network, DOM, console, and agent ribbons. Click a tick, jump to the moment.
Hashes of normalized URL + stack frames cluster identical failures so you fix one and close seven.
Forensic chat scoped to one trace. Replies link to [seq:N] so you can jump back to the exact event.
Restore clone state to a step boundary, apply a scenario or source patch, re-run later steps. Diff against the source trace.
Stripe, SendGrid, Postgres — every clone snapshots its state at step boundaries. Query with jmespath, diff across runs.
Full video for 90 days, NDJSON for a year, cold-tier NDJSON for three years. Pin to override. Predictable bills.
When Debugger or Layer 2 confirms the root cause, promote the diff to Mender. It drafts a fix PR with regression tests — you approve the merge.
“Failed · 24h”, “Awaiting Layer 2”, “PR #4521” — saved filters that show up as left-rail entries.
Paste a trace into a Linear ticket or a customer email. Read-only, expirable, hides Debugger and source SHA.
Mask selectors, headers, and query params before anything hits S3. Email-shape detection in console logs.
Pin a workspace to eu-west-1. BAA available on annual plans. Workers, S3, and Debugger calls stay in-region.
Subscribe to trace.failed, cluster.opened, layer2.succeeded. Or stream live ingests via SSE.
@molar/trace-mcp exposes trace search, read, diff, clone-state, and replay tools to your coding agent.
Trace ingests what you have, exports what you'll need, and stays out of the way otherwise. None of these require Molar everywhere.
Drop-in reporter. Same trace.zip you already export — richer index, hosted viewer.
reporter · npmPlugin loads in setupNodeEvents; ships video + HAR + console.
pytest listener for Python. CDP capture for Java/JS via testcontainers.
pypi · mavenAgent runs ship a trace automatically; clone state included.
nativeEvery Guard check produces a trace — failed gates open here for forensic replay, then hand off to Mender for fix PRs.
native · failure → trace → menderState at every step boundary, queryable with jmespath. Diffable across runs.
nativeApp reads source so the Debugger cites your code. PR check posts a trace summary.
app · cliUnfurls share links, posts clusters on threshold, replies with Debugger if asked.
appNo per-seat fees. No platform tax. Trace charges for GB-mo of NDJSON + video, for Debugger tokens, and for Layer 2 replays — three lines on the invoice. Everything else is included.
For tinkering, demos, and a single sandbox. Public traces only past 7 days.
For the team shipping daily with agents and a CI loop that matters.
For teams under audit or regional residency rules.
Also known as: Playwright trace alternative, test replay debugger, forensic CI debugging, Replay.io alternative, flaky test root-cause. See Trace vs Playwright Trace Viewer and Mender auto-fix.
No. Trace works standalone for any Playwright, Cypress, Selenium, or raw NDJSON source. The other Molar tools are nice to have because they ship traces automatically, but Trace doesn't require them.
Sentry and Datadog watch production. Trace watches your test loop. We don't compete with crash reporters; we sit at the seam between agent-written code and a green CI run. (We do post Trace links into Sentry incidents.)
The default trace is the recording (Layer 1). Layer 2 is a re-run: pick a step, restore clone state to that boundary, optionally apply a source or scenario patch, re-execute later steps. You get a new trace and a diff against the original.
Per-workspace redaction rules apply at ingest, before NDJSON hits S3. Mask selectors, request headers, query params, and email-shape strings in console logs. Redaction is irreversible. EU residency is one toggle.
Yes. POST /trace/v1/export bundles your workspace as NDJSON + video + clone snapshots into a single tarball. No lock-in, ever.
Opus is metered at the model's published rate plus a 10% margin. Haiku (cheap mode) is the same. You can set a monthly cap, a soft cap that flips to cheap mode automatically, and per-user budgets. Bring your own Anthropic key to bypass our markup.
For agent-era CI: yes, but we don't make you choose. The Playwright trace.zip is one of our supported artifacts. Open it in the local viewer when you're offline; open it here when you want clusters, Debugger, and replay.
Guard runs your scenarios; failures produce traces that open here for forensic replay on the five-ribbon timeline. Debugger cites [seq:N] events and reads Mender's classification when present. When you confirm a fix — via Layer 2 replay or Debugger — one click hands the diff to Mender, which drafts a fix PR with a regression test. A human always approves the merge.
Yes, on Enterprise. We ship a Helm chart that runs ingest, workers, S3-compatible storage, and the Debugger against your own model endpoint.
One token, one CI run, one permalink your team will paste in standup for the next year. The demo workspace already has 1,240 traces in it — open the failed checkout and start scrubbing.