Home

For developers

Install in one script tag.

Add your project key and send a test error. Then open the evidence for that report.

Use the hosted module below, or npm install @bugtape/sdk with a bundler.

BugTape Live · terminal-first debugging

See the bug. Select it. Send it to your agent.

Select an issue in your terminal. Investigate through Claude Code, Codex or Cursor over MCP.

npx -y bugtape live

◈ BUGTAPE LIVE DEMO CONNECTED

SIMULATED DATA · storefront / production · no account connection

Checkout payment timed out24 affected users · 128 reports

↑↓ navigate · Space select · S preview · T theme

Simulation only. Nothing is sent. The CLI reads your authorised issues; agents get evidence over MCP.

Get started

Your first bug report in three steps.

  1. Create a project

    Setup shows your bt_live_* capture key once.

  2. Paste the script tag

    Call init once, after your cookie or consent banner allows it.

  3. Throw a test error

    Name it clearly. Setup confirms arrival and links to the report.

Browser · hosted ES module
<script type="module">
  import { init } from 'https://app.bugtape.ai/bugtape.mjs';
  init({ apiKey: 'bt_live_your_key_here' });
</script>

Web

Replay what led to the error.

The SDK buffers context in memory. An error or user report sends it.

  • Page replay from DOM events
  • Failed and slow requests: method, status and timing
  • Console output and the stack trace
  • Optional report button, or showButton: false and open() from your own link
  • Typed input values never leave the browser
  • Not screen video
Browser · hosted ES module
<script type="module">
  import { init, identify } from 'https://app.bugtape.ai/bugtape.mjs';
  init({
    apiKey: 'bt_live_your_key_here',
    release: '2026.09.30',
    privacy: 'strict',        // optional: page text becomes solid blocks
    showButton: false,         // optional: no floating button
  });
  identify({ userId: 'u_123' }); // optional: see who a bug reached
</script>

Node.js

Node.js servers, workers and Next.js.

No dependencies, Node.js 20 and later. The key comes from BUGTAPE_KEY.

  • Uncaught exceptions and unhandled rejections
  • Express 5xx errors with the route pattern
  • Next.js onRequestError
  • captureException and captureMessage
  • No browser replay or console
  • Never reads request bodies, headers or query strings
Node.js
npm install @bugtape/node

import * as bugtape from '@bugtape/node';
bugtape.init({ service: 'api', release: process.env.GIT_SHA });

Python

Python servers, jobs and Streamlit apps.

No dependencies, Python 3.9 and later. The key comes from BUGTAPE_KEY.

  • Uncaught exceptions in main and other threads
  • Log records at ERROR and above
  • capture_exception and capture_message
  • Streamlit page errors
  • Never reads frame locals
  • Numbers, amounts, emails, SQL and IDs are redacted from messages
Python
pip install bugtape

import bugtape
bugtape.init(service="reports", release="2026.09.30")

iOS and macOS

Capture handled errors in Swift.

Local Swift package (alpha). iOS 15+ and macOS 12+. No third-party dependencies. Setup provides the package and your installation snippet.

  • Handled errors and messages
  • Screen breadcrumbs
  • User reports
  • Fatal crash capture is not available
  • No DOM replay, video or screenshots
Swift
// startBugTape comes from Setup, with your installation IDs.
// Call it after your app has diagnostic consent.
let client = try await startBugTape(diagnosticConsent: true)

let captureID = try await client.report(
    title: "Checkout total is wrong", expected: "10", observed: "12", screen: "Checkout"
)

Any other sender

Send reports over HTTPS.

Use your project key from any runtime or cron job.

  • POST /v1/ingest with X-BugTape-Key
  • Optional stack, frames, release, environment and user ID
  • Missing fields are recorded as gaps, never rejected
curl
curl https://app.bugtape.ai/v1/ingest \
  -H "X-BugTape-Key: $BUGTAPE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Nightly export failed","platform":"server","url":"job://exports/nightly"}'

How the data flows

Follow a report from app to agent.

Privacy runs locally. A report sends the captured context.

  1. 1

    Your app records

    The browser buffers page events, requests, console and errors in memory. Input masking and strict text masking run before buffering. Server SDKs act when an error happens.

    On the user’s device or your server

  2. 2

    A report sends the context

    Uncaught errors, failed or hanging requests after a click, and user reports send context to POST /v1/ingest over HTTPS. X-BugTape-Key authorises capture only, never reads.

    HTTPS · capture key

  3. 3

    BugTape groups it

    The API checks the key and fingerprints the occurrence. Matching reports join one issue with counts, affected releases and users.

    BugTape API · Sydney

  4. 4

    Events expire with your plan

    Postgres stores issues and events in Sydney. Events expire after 7 days on Free or 30 days on Pro and Prepaid credits.

    Postgres · Sydney

  5. 5

    People and agents read it

    Your team uses the console. Agents read the evidence over MCP, limited to the projects and scopes you grant.

    Console · MCP

  6. 6

    Updates go where you work

    Send new issues, regressions and agent progress (picked up, PR opened) to Slack, email or a webhook.

    Slack · email · webhooks

Privacy

Choose what leaves the browser.

Privacy settings run locally, before sending.

STANDARD

Inputs masked

Typed values are masked and emails, card numbers and tokens are scrubbed. Mark any element with data-bugtape-ignore to leave it out of the replay.

STRICT

Page text becomes blocks

privacy: 'strict' turns page text into solid blocks (“Anna Smith” → “▇▇▇▇ ▇▇▇▇▇”), drops query strings and never keeps request bodies. Clicks and layout stay.

ERRORS ONLY

No replay at all

disableDomRecording: true sends errors and failed requests without a replay.

Before installing on screens with client data, follow the privacy checklist → Security and storage details: Security →

Agents over MCP

Give your agent scoped access.

Add https://app.bugtape.ai/mcp to your MCP client. Sign in with OAuth where supported, or use a scoped agent token from Settings → Agents. MCP works on every plan. On Free and Prepaid credits, each agent read of captured events costs 2 credits; other reads are free. On Pro, event reads are included.

  1. list_recommended_critical — issues sent to the agent first, then the ranked inbox
  2. get_repro_context — report text, timeline, request, console and stack
  3. ack_bug — “Picked up”, then the pull request link
  4. listen — wakes the agent when a new issue arrives
Claude Code
claude mcp add --transport http bugtape https://app.bugtape.ai/mcp \
  --header "Authorization: Bearer bt_pat_YOUR_TOKEN"

REST API

Use BugTape from your own tools.

Base URL https://app.bugtape.ai/v1. Three kinds of credential, each limited to its job.

CredentialHeaderUsed for
Capture keyX-BugTape-Key: bt_live_…Sending reports only
Agent tokenAuthorization: Bearer bt_pat_…MCP and agent actions, for the projects and scopes you grant
Console sessionAuthorization: Bearer <jwt>Reading and managing issues, team and settings

API reference → Authentication → Who can see what →

Built with your input

Help shape what comes next.

Browse requests, vote or submit a feature for review.

One vote per account. Team ideas say “Proposed by BugTape”. Votes guide priorities; requests do not promise delivery.

Docs

Docs for you and your agent.

Every page is also served as .md, and /llms.txt lists them for agents.

Send your first report.

Setup provides your key and install snippet.

  • Free plan
  • No credit card
  • Guided setup

Facts

BugTape facts
What it recordsSupported browser errors, failed requests, and a short DOM replay with the report. It does not record every visit.
No accountnpx -y bugtape --help prints the commands and does not sign you in. The live demo stays in the browser. The demo MCP at https://app.bugtape.ai/demo/mcp needs no sign-in. Your own workspace needs one.
PriceFree is $0. Prepaid credits are $10 for 2,000 credits. Pro is $29 a month.
Not includedHosted screenshots and voice notes are not stored. Fatal iOS crash capture is not available.

FAQ

Can I try BugTape with no account?

Yes. npx -y bugtape --help prints the CLI and does not sign you in. The live demo runs in your browser and sends nothing. The demo MCP at https://app.bugtape.ai/demo/mcp needs no sign-in. Your own workspace needs one.

Does BugTape record every session?

No. It keeps a short buffer in the browser and sends that buffer with a supported error or a user report.