Your coding agent can watch the bug happen — then fix it.

BugTape groups failures into issues with DOM replay, network, and console evidence — then hands the pack to Claude Code or Cursor over MCP. Humans approve the PR; agents do the reading.

Two lines to install: import { init } from '@bugtape/sdk' · Pro unlocks MCP · Free: 100 issues / month
app.bugtape.ai/console
Issues · 128
Live · 4
Ops
Team
TypeError: Cannot read properties of undefined (reading 'total')
41× · checkout · ✦ race in token refresh
Critical412 min
Failed to fetch: POST /api/payments/intent — 502
17× · 3 pages · ✦ upstream timeout
Critical1711 min
404 GET /api/cart/recommendations
regression · reopened by deploy 4f2c91
High1238 min
Rage clicks on #apply-voucher
7 users · 11 clicks in 2s
High91 h
Auth refresh loop: 401 → refresh → 401
account · ✦ token rotated twice per tab
Medium54 h
Trusted by teams that ship every day

One issue, every occurrence underneath.

Repeated bugs roll up into one grouped issue, but every occurrence keeps its own user, session, release, environment, and timestamp. The first screen answers who was affected, when it last happened, whether it is spreading, and which replay to open first.

  • Duplicates collapse into one triage surface — no noise.
  • Frequency, severity, and recency without losing the evidence.
  • Watch new occurrences arrive in real time on the live feed.
Issues — acme-web · production128 open
Checkout pay button freezes on Safari
7 occurrences · 4 users · 2 releases
Critical7
Uncaught (in promise) AbortError: signal aborted
23× · search · last seen 6 min ago
High23
CSP violation: blocked inline script on /billing
extension capture · page load
High11
Stale cart total after coupon removal
no error thrown · 3 users · replay attached
Medium3
Image decode failure: hero.avif on iOS 17
resource error · 2 devices
Medium2

The last ten minutes, already recorded.

Like a DVR, BugTape silently keeps the last 10 minutes of DOM changes, network requests, console logs, and errors in a bounded in-memory buffer. When a bug is reported, the report arrives with the session, URL, environment, and device context you actually need — nothing is shipped until then.

  • Full DOM replay: clicks, scrolls, and page transitions.
  • Console errors and failed requests, attached to the exact run.
  • If no bug is reported, the buffer simply expires.
Occurrence #4318 — stack & networkchrome 126 · macOS
TypeError: Cannot read properties of undefined (reading 'total')
  at renderSummary (checkout.js:214:18)
  at onPaymentIntent (checkout.js:182:9)
  at async submitOrder (cart.js:96:3)
GET /api/cart
84
POST /api/auth/refresh
203
POST /api/payments/intent
502
GET /api/cart/summary
91

AI triage that reads the evidence.

BugTape generates titles, severity, likely repro steps, and suggested investigation paths from the captured session data — the replay, the console, the network trail. Use AI where it helps, not as the whole story: every claim links back to the event that supports it.

  • Auto-triage and duplicate detection on every report.
  • Deep analysis on demand for the gnarly ones.
  • Voice notes transcribed and included automatically.
AI analysis — issue #2841deep

Likely root cause High confidence

The token refresh fires twice when two tabs share a session. The second refresh rotates the token the first request already holds, so POST /api/payments/intent is sent with a revoked bearer and the summary renders before the retry resolves.

event 1402 — auth/refresh 200 (tab A) → token v2
event 1404 — auth/refresh 200 (tab B) → token v3
event 1409 — payments/intent 502 with token v2
Suggested fix: serialise refresh behind a shared lock (BroadcastChannel or storage event) and retry the intent once on 401/502.

Built for issue grouping, occurrences, and live triage.

BugTape is strongest when you need the grouped issue and the specific affected session at the same time.

Session replay

Watch exactly what the user saw and did. Full DOM replay with mouse movements, clicks, scrolls, and page transitions.

Screenshot annotation

Capture pixel-perfect screenshots and draw on them to highlight exactly where the bug is. Colors, arrows, text — all built in.

Voice notes

Users can record a voice description of the bug. Automatically transcribed by Whisper and included in the report. No typing needed.

Chrome extension

Manifest V3 extension with side panel and early error buffering. Works on any site without code changes — catches CSP violations, resource loading errors, and page-load errors other tools miss.

Always-on capture

Continuous browser capture with bounded buffers and replay sampling — the data needed to turn one report into a grouped issue with real affected-user context.

Live feed

Watch new occurrences arrive in real time, then jump straight into the affected issue with the specific session and user context that triggered it.

How BugTape works.

A browser starts recording. A real person hits the bug. One grouped issue appears with the exact user, session, and occurrence you need to inspect next.

1

Drop BugTape into the browser

Two lines of JS or the Chrome extension. BugTape starts recording DOM mutations, network activity, console output, and errors inside a 10-minute ring buffer. Nothing is shipped until a bug is reported.

DOM · network · console · errors
2

The report arrives with context

The user or tester clicks the bug button and describes what went wrong. The report arrives with the screenshot, note, session, URL, environment, and device context you actually need.

screenshot · voice note · environment
3

BugTape groups the evidence

Repeated failures become one grouped issue while every occurrence stays underneath it — how many users hit it, when it started, and which sessions are affected.

grouped issue · affected users · release
4

Inspect the exact occurrence

Open the grouped issue, jump into the exact occurrence, and inspect the events, environment, screenshot, and user trail without guessing which report mattered most.

issue detail · timeline · replay

Two lines of code.

Install the SDK, initialise it with your project key, and BugTape starts recording. That's the whole integration.

Terminal
npm install @bugtape/sdk
app.js
import { init } from '@bugtape/sdk';
init({ apiKey: 'bt_your_key' }); // recording starts — widget appears bottom-right
Prefer no code changes? The Chrome extension captures on any site, and reports land in the same console.

Pick the capture surface.

Both options land in the same BugTape console. The difference is whether the capture entry point lives inside your product or inside your team's browser.

Option 1

SDK inside your app

Ship the BugTape button in your product so real customers can report the issue exactly where it happened, with replay and console context already attached.

  • Best for production apps and live customer feedback.
  • Floating widget opens on the page where the bug happened.
  • Same issue thread in the console, with less back-and-forth.
Option 2

Chrome extension

Install it once and capture bugs on any site without changing that site's code. Ideal for QA, product, support, and design review sessions.

  • Best for testers, staging environments, and third-party apps.
  • Capture from the browser side panel instead of shipping code.
  • Reports still arrive in the same console and grouped issue model.

The right tool for the right job.

Mixpanel, Datadog, Sentry, BugTape, and DevTools each own a different part of the debugging lifecycle. They're complementary — here's where each one shines.

Mixpanel

Measure

"Conversion dropped 5% this week"

Datadog

Monitor

"P99 latency spiked, API errors up 3x"

Sentry

Detect

"TypeError in checkout.js, 47 times today"

BugTape

Capture

"Here's exactly what the user did, with AI analysis"

DevTools

Investigate

"Set breakpoint, inspect state, profile memory"

Why not just use Chrome DevTools?

We use DevTools every day. It's the best local microscope shipping — the Recorder panel, Performance tab, Issues pane, and Gemini's "explain this error" are remarkable.

DevTools has one blind spot: it only runs when a developer is sitting at the keyboard. It captures nothing from the user on a 4G connection in Karachi who hits a checkout bug at 2 AM on mobile Safari.

BugTape captures that session — the last ten minutes of DOM, network, and console — scrubs PII, fingerprints the error, dedupes it against the 43 other users who hit the same thing, and drops it in your inbox with an AI summary and a ticket link.

DevTools is the developer's microscope on localhost. BugTape is the user's black box recorder on production.

Feature comparison.

Complementary tools solve different problems — use them alongside BugTape. Alternatives overlap with BugTape's problem space.

Complementary Alternatives
Feature BugTape Sentry Datadog Mixpanel LogRocket Jam.dev
User-initiated bug reports
Automatic error detection
Always-on session recording ✓ Ring buffer● Breadcrumbs✓ Full DOM
Multi-provider AI triage ✓ 5 providers● GPT only
Chrome extension
Embeddable SDK ✓ Browser SDK✓ ~72kB✓ Agent✓ ~40kB✓ ~200kB
Screenshot annotation
Voice notes
APM & distributed tracing ● Basic
Infrastructure monitoring
Log aggregation
Conversion funnels
Retention & cohort analysis
Works without event instrumentation ✓ Automatic✓ Errors only✗ Agent setup✗ Manual setup
Debug individual user sessions ✓ Full replay● Breadcrumbs✗ Traces only✗ Aggregate only
Network request capture ✓ Full detail● Minimal✓ Backend
Console log capture ● Breadcrumbs✓ Server logs
Non-engineer friendly
E2E encryption ✓ AES-256-GCM
PII auto-scrubbing ✓ Basic✓ Basic✓ Basic
Open source ● SDK (Apache-2.0)
Free tier ✓ 100 bugs/mo✓ 5K errors/mo✓ 14-day trial✓ 20M events/mo✓ 1K sessions/mo✓ Limited

Plays well with your stack.

BugTape fires webhooks instantly when bugs arrive — right to the tools your team already lives in.

Slack
Rich bug cards with screenshot previews directly in your channel.
Live
Discord
Send formatted bug reports to any Discord channel via webhook.
Live
GitHub Issues
Auto-create GitHub Issues with full context, labels, and console logs.
Live
Any webhook
POST to any URL — Jira, Linear, PagerDuty, Zapier, or your own endpoint.
Live
Email
Digest summaries and instant alerts for critical regressions.
Soon
Jira
Native Jira ticket creation with priority, component, and attachment.
Soon
Linear
Create Linear issues with auto-assigned priority from AI triage.
Soon
PagerDuty
Trigger PagerDuty incidents for high-severity crashes automatically.
Soon
Want an integration that's not here? BugTape supports any HTTP webhook. Open an issue and we'll prioritise it.

Your users' data is sacred. We treat it that way.

BugTape implements defense-in-depth security at every layer. Sensitive data is scrubbed before it ever enters memory, reports are encrypted client-side, and only you hold the keys.

PII auto-scrubbing

Emails, credit cards (Luhn-validated), SSNs, phone numbers, JWTs, API keys, and bearer tokens are detected and masked at capture time — before data enters the ring buffer. Sensitive data never touches memory in cleartext.

Layer 1: capture

AES-256-GCM encryption

Bug reports are encrypted client-side using AES-256-GCM. Each report gets a unique 96-bit IV and 128-bit salt. Keys are derived using PBKDF2-SHA256 with 100,000 iterations.

Layer 2: transit

Zero-knowledge architecture

BugTape servers never see your encryption key. Reports are encrypted before leaving the browser. Only your team can decrypt them — we literally cannot read your data, even if subpoenaed.

Layer 3: storage

Auto-expiring buffer

The ring buffer auto-deletes events older than 10 minutes. No long-term storage of user sessions. If no bug is reported, the data simply vanishes. Memory-only — nothing written to disk.

Data minimization

Configurable redaction

Define custom PII patterns, choose which fields to always redact, and whitelist safe fields. Default redact list includes password, token, apikey, authorization, credit_card, ssn, cvv, and more.

Customizable

GDPR & SOC 2 ready

No tracking. No third-party data sharing. Data processing happens entirely in the browser. Self-host option means your data never leaves your infrastructure.

Compliance

Origin allow-list controls

Production API deployments can enforce explicit CORS allow-lists with exact origins, wildcard subdomains, and extension-origin patterns. Lock traffic to only the domains you trust.

Perimeter

API key gate + rate limits

Ingest endpoints require project-scoped API keys, then enforce per-key throttling and backend validation. Invalid or rotated keys are rejected before write operations.

Abuse protection
Enabling bank-grade security
BugTape.init({
  apiKey: 'bt_...',
  // AES-256-GCM encryption (reports encrypted before leaving browser)
  encryptionKey: 'your-secret-key',
  // PII scrubbing (on by default, customize patterns)
  pii: { redactFields: ['password', 'ssn', 'custom_field'] },
  // Secure endpoint
  endpoint: 'https://api.your-domain.com/v1/ingest',
  // Backend CORS allow-list example: https://console.your-domain.com,chrome-extension://*
})

Simple pricing. MCP is the upgrade.

Free for the console. Pro unlocks the agent loop — the reason to pay.

Free

$0 / month
See issues land. Prove the product on one project.
  • 1 project
  • 100 issues / month
  • Replay buffer + console/network evidence
  • Up to 3 team members
  • 7-day retention
  • MCP for coding agents
  • Deep AI analysis budget
  • Webhooks
Start free

Team

$99 / month
Shops and multi-app portfolios.
  • Unlimited projects
  • 25,000 issues / month
  • 90-day retention
  • Up to 50 seats
  • Everything in Pro
  • Higher AI budget
Start Team

Self-serve only. No sales call. Enterprise SSO/SOC2 is not year-1 — talk to us if you need it later. Annual = 2 months free on Pro/Team.

Ship the agent loop today.

Install the SDK, open the console, connect MCP on Pro — your next production bug can become a PR.

Try the live demo →