Evidence capture for bug reports
Every report arrives with the annotated screenshot, the console errors, the network calls and the browser it happened in — nothing left to ask for afterwards.
Included on Free · Screen recording on Pro
A render of the ticket drawer in the panel. Ticket NT-248, “Discount code accepted but total unchanged”, is a bug of medium severity reported five minutes ago, and the header carries the MCP command that opens it, get_ticket NT-248. The report from Marta Oliva arrived with an annotated screenshot of the checkout — a red box drawn around the SPRING24 code and an arrow at the order total, marked “total unchanged” — a forty-two second screen recording, and a cluster of nine console and network entries captured in the twenty-two seconds before she sent it, among them a failed POST to /api/cart/discount and an uncaught TypeError. Below the report the drawer lists the environment it happened in: Chrome 128 on macOS, a desktop at 1512×982 with a 1280×712 viewport.
How it works
1
The reporter marks what is wrong
The widget captures the page they are looking at and hands them a pen to circle it. No screenshot tool, no file to attach.
2
The widget attaches the context
Console logs, network activity, page URL, viewport and browser travel with the report, because nobody remembers to include them.
3
Engineering opens one ticket
Screenshot, replay, logs and environment are already in the drawer when the ticket is read for the first time.
The first hour stops going to questions
The console and the network calls from the seconds before the report are on the ticket, grouped and levelled: the uncaught TypeError, the two POSTs that came back 500, the clicks in between. Reproduction starts on the first read instead of after three replies.
A render of the console and network log inside a ticket in the panel. One console error and two failed requests landed in the twenty-two seconds before the report, and the nine entries are listed with their timestamps: a warning that the cart totals were stale, two POSTs to /api/cart/discount that returned 500, an uncaught TypeError raised in applyDiscount, and the clicks between them. Errors are red, warnings amber, requests teal until they fail.
You can name everything it keeps
The context a ticket carries is a closed list — page path, first seen, browser, OS, device, screen, viewport, time zone and language. Request and response bodies are never captured, query strings are cut from every URL before it is stored, and IP addresses are kept salted-hashed.
A render of the environment a ticket in the panel carries. The rows read Path /checkout/confirm, first seen five minutes ago, Browser Chrome 128, OS macOS, Device desktop, Screen 1512×982 and Viewport 1280×712, with the full page URL, time zone Europe/London and language en-GB folded behind a line marked Environment.
Exact behaviour
- Capture
- Annotated screenshot, console, network, URL, viewport, browser
- Retention
- Captured logs 30 days; idle sessions 90 days; tickets are never removed by retention
- Privacy
- authorization · cookie · password · token · secret scrubbed from logs; bodies never captured; IPs salted-hashed
- Browsers
- Chromium, WebKit, Firefox; desktop and mobile
- Plan
- Free and Pro · screen recording on Pro
- MCP tool
- get_ticket · search_logs · get_errors
Works with
Questions teams ask before installing
Does the screenshot include what the user typed?
The screenshot is the page as the reporter saw it, and they draw on it and send it themselves — so anything visible on their screen can be in it. Session replay is the part that is masked: it never records typed characters.
Are request and response bodies captured?
No. Network activity is recorded as the call and its result, never the payload, and authorization, cookie, password, token and secret are stripped from captured logs.
What does capture cost the host page?
The widget runs inside a Shadow DOM under a written performance budget: it never blocks the host page's paint or input, and suspends itself on host-degradation signals.
Get the next bug report with its evidence attached.
Free plan includes evidence capture on one seat and five projects.