Home

Product

Automatic bug reporting for web apps

Two meanings: a person reports and the tool adds the context, or nobody reports and the tool files it. What BugTape captures on its own, and its limits.

Short answer: Automatic bug reporting means one of two things. In the first, a person reports a bug with one click, and the tool attaches the technical context for them: logs, requests, device details and a replay. Gleap, Marker.io, Userback, Jam and BugTape's own report button all work this way. In the second, nobody reports anything. The tool sees a failure in the browser or on the server and files the report itself. BugTape does both. Its browser SDK reports uncaught errors, unhandled promise rejections, failed requests after a user action and requests that hang. It groups repeats into one issue, and your coding agent can read the evidence over MCP.

No account: npx -y bugtape --help prints the commands and does not sign you in. The demo MCP at https://app.bugtape.ai/demo/mcp needs no sign-in. Your own workspace needs one.

Page owner: Jaco Veldsman, hi@bugtape.ai. Last checked 2026-10-26. I build BugTape.

Two meanings of automatic

A person reports, the tool adds the context. The user or tester presses a button or a widget. The tool then attaches the browser, the device and the steps, so the developer does not have to ask for them. Widget tools work this way:

  • Gleap says its SDK attaches "the marked screenshot, session replay, console and network logs, device data and your custom data" to an in-app bug report (Gleap in-app bug reporting, checked 26 Oct 2026). Gleap also has Gleap.sendSilentCrashReport, which sends a report with no form. Your code calls it, for example for a caught exception or a failed request.
  • Userback lists "Screenshot, recording, console and network logs on every report" and says logs are captured when a report is submitted (Userback bug reporting, checked 26 Oct 2026).
  • Marker.io attaches browser, OS, screen size and URL on every plan. Console logs, network requests and a replay of what the reporter did come with every report on Team and Business (Marker.io pricing, checked 26 Oct 2026).
  • Jam keeps logs, network requests, user events and device details with a recording that a person makes (Jam, checked 26 Oct 2026).

Nobody reports, the tool files it. A user's checkout request fails, they close the tab, and they never tell you. Nobody opens a feedback widget, so it cannot help. BugTape's browser SDK and its Node.js and Python SDKs work this way. Error monitors do too: Sentry's JavaScript SDK "automatically reports errors, uncaught exceptions, and unhandled rejections" (Sentry JavaScript docs, checked 26 Oct 2026).

What BugTape captures on its own

What happens automatically
Web (browser SDK)Uncaught errors, unhandled promise rejections, failed requests after a user action, and requests that hang are reported without anyone pressing a button. The report carries a replay rebuilt from DOM events, the failed request, the console and the stack. The replay is not a screen video.
Node.jsUncaught exceptions, unhandled rejections, Express 5xx errors with the route pattern, and Next.js request errors through onRequestError. You can also send your own with captureException and captureMessage. No replay or console. Node.js docs
PythonUncaught exceptions in the main thread and other threads, ERROR log records, and Streamlit page errors. You can also send your own with capture_exception and capture_message. No replay or console. Python docs
iOS and macOS (Swift, alpha)Handled errors and messages that your code sends, breadcrumbs and user reports. It does not capture fatal crashes and has no replay. Swift docs
RepeatsEvery report of the same failure becomes one issue, with a count, the releases it hit and the users it reached when your app sends user IDs. A repeat report costs 0 credits. If you mark an issue fixed and the same failure arrives from a newer release, the issue reopens as a regression.
Privacy modesSetup offers three choices. Standard: form fields are masked and page text is recorded. Strict (privacy: 'strict'): page text becomes solid blocks, query strings are removed and request and response bodies are dropped before anything leaves the browser. Errors only (disableDomRecording: true): no page replay, and errors are still reported with their stack. In every mode, the SDK keeps a short buffer in memory and sends nothing until a failure or a report. Privacy guide
What your agent reads over MCPlist_recommended_critical gives the ranked inbox. get_repro_context gives one report's text, timeline, request, console and stack. ack_bug marks the issue as being worked on and records the pull request link. listen waits for the next new issue. MCP works on every plan: on Free and Prepaid credits each agent read of a bug costs 2 credits, and on Pro reads are free. MCP install

Users can still report

Some problems throw no error. The optional report button lets a user describe them in their own words. They add a title, a description and a severity, and the report includes the last ten minutes of page activity. Screenshots and voice notes in the form are not available yet.

If you want no button on the page, set showButton: false. Automatic reports still run, and instance.open() opens the form from your own link. Report button guide

What automatic capture cannot know

Automatic capture reports failures that the code can see, and only the failure types in the table above. It cannot judge whether a page is correct. Plan for these limits:

  • Problems with no error. A wrong price, a confusing step or a page that looks broken throws no error. If a request succeeds and returns the wrong data, no error is thrown, so nothing is reported. The same applies to a broken business rule that raises no exception. Use the report button for these.
  • Browser crashes and closed tabs. The SDK does not capture browser crashes or the moment a tab closes. Events still in memory are lost.
  • Time before install. Recording starts when the SDK loads. A replay cannot show anything from before that, and a short visit cannot hold ten minutes of history.
  • Gaps in replay. A web report can lack the events needed to rebuild a replay. Server and native reports have no browser replay.
  • Pages you cannot add scripts to. Shopify-hosted checkout pages do not load theme scripts, so BugTape does not cover them.
  • Why a user left. A report shows that a supported failure happened in that session. It does not prove why a person left or how much revenue was lost.

When a feedback widget is the better tool

Pick a widget-first tool when people give you the bugs:

BugTape does not take screenshots or record video or voice. You can run a widget for feedback and BugTape for the failures that nobody reports. Gleap, Marker.io, Userback and Jam each list an MCP server too (Gleap MCP, Marker.io MCP, Userback bug reporting, Jam MCP, all checked 26 Oct 2026). Your agent can connect to a widget's MCP server and to BugTape's at the same time.

Install

Steps 1 to 4 come from the Quickstart. Step 5 comes from MCP install.

  1. Sign up and open Setup. It creates a project and a capture key (bt_live_…).
  2. In the Privacy step, choose whether to show the report button and what the replay records.
  3. Paste the snippet that Setup gives you (the browser version is below). With a bundler, run npm install @bugtape/sdk instead.
  4. Trigger a named error in your app and check that its report arrives in the right project. A console sample does not prove your install.
  5. Connect your coding agent: npx -y bugtape connect claude (or cursor, codex), then click Allow once.
<script type="module">
  import { init } from 'https://app.bugtape.ai/bugtape.mjs';
  init({ apiKey: 'bt_live_your_key_here' });
</script>

FAQ

What is automatic bug reporting?

It has two meanings. Usually a person reports a bug with one click and the tool attaches logs, requests, device details and a replay. It can also mean capture with no person at all, where the tool reports uncaught errors and failed requests itself. BugTape does both.

Does automatic bug reporting record every user session?

BugTape does not. The browser SDK keeps a short buffer in memory and sends it only with a supported failure or a user report. Other tools differ, so check each vendor's own docs.

Can users still report bugs themselves?

Yes. BugTape's optional report button lets users describe a problem, and the report includes the last ten minutes of page activity. With showButton: false, the button is hidden and automatic reports still run.

Is it free?

BugTape's Free plan is $0 and needs no card. It includes 100 new issues and 150 credits a month. A repeat report of an existing issue costs 0 credits, and each agent read of a bug costs 2 credits. Pro is $29 a month. Pricing

See also

How to catch bugs users never report · Report button guide · Best bug reporting tools · Reproduce a bug a user reported · BugTape and Sentry · How it works

Start free. No card needed.

Your team reviews the PR. Agents do not silent-ship.