Edition II · AI-native · self-hosted · MCP-ready

The bug-reporting tool
built for the era
of AI coding agents.
Self-hosted.

Every report is triaged by Claude — severity, type, duplicates, repro steps — before you open it. Replay → Playwright turns a session recording into a runnable test. The built-in MCP server pipes bugs straight into Claude Code, Cursor, and Windsurf so an agent can fix them with full context. Your data never leaves your infra.

Claude triage on every report MCP for Claude Code & Cursor Free for individuals · GDPR by design
bugs.yourco.com
Reports
Triage 3
Projects
Integrations
Settings
All
New
In Progress
Checkout button unresponsive on iOS Safari
2 min ago · Safari 17 · sev 4
MAJOR
Avatar upload silently fails for HEIC files
1 hr ago · Chrome 131 · sev 3
FUNC
Dark mode toggle resets on page reload
3 hr ago · Firefox 126 · sev 2
MINOR

Observed in the wild on

· · · · · ·

10k+

Reports triaged daily

< 30s

From submit to triaged

100%

Self-hostable

GDPR-ready SOC 2 roadmap AES-256 at rest
Chapter 00 · the differentiator

Built for the era of AI coding agents.

Most bug trackers are databases with a UI bolted on. BugPilot treats every report as something an AI can read, reason about, and act on — natively, end-to-end.

flagship № 01

MCP server, built-in.

Plug BugPilot directly into Claude Code, Cursor, Windsurf, and VS Code via the official Model Context Protocol. Your agent gets first-class access to bug context — no copy-paste, no screenshots in chat, no losing thread.

// ~/.config/claude-code/mcp.json
{
  "mcpServers": {
    "bugpilot": {
      "transport": {
        "type": "http",
        "url": "https://bugs.you.com/api/v1/mcp",
        "headers": { "Authorization": "Bearer bpk_…" }
      }
    }
  }
}
  • bugpilot_search_reports · filter by severity, status, project, full-text
  • bugpilot_get_report · full payload incl. AI analysis, pinned element, replay link
  • bugpilot_get_replay · rrweb event array for the agent to reason over
  • bugpilot_get_playwright_test · runnable test that reproduces the bug
  • bugpilot_update_status · agent moves the report through the workflow
  • bugpilot_add_comment · agent leaves a note when it's done
  • bugpilot_assign_tags, bugpilot_set_known_issue, bugpilot_get_similar

Two scopes — mcp for read access, mcp:write for mutations. Independent. Self-hostable. Bug data never leaves your infra (counter-positions Jam.dev, which is cloud-only).

automated № 02

AI triage on every report.

Claude Haiku-4-5 reads the screenshot, console errors, network failures, and the user's description, then writes back: severity (1–5), type, clean title, repro steps, duplicate detection, and spam filtering. Async via BullMQ — your dashboard updates live via SSE.

on-demand № 03

Fix suggestions with code context.

Click "Suggest a fix" on any report. Optionally paste the relevant code. Claude returns root cause, affected areas, and a 2-3 sentence actionable fix — with a confidence badge. Cached on the report so re-fetches don't re-prompt.

replay → test № 04

Replay → Playwright export.

The widget records the last 30 seconds of user interactions as rrweb events. We extract a clean action timeline (clicks, inputs, navigations with selectors) and ask Claude to translate it into a runnable .spec.ts. Drop it into your test suite — passive evidence becomes an active regression test.

precision № 05

📍 Pin the element.

The reporter clicks any element on the page; the widget records its CSS selector + XPath + bounding box (page-coordinate, scroll-aware). The selector flows into the AI repro steps — your devs jump straight to the broken DOM node in DevTools, no archaeology required.

privacy № 06

PII redaction before AI sees it.

Per-project, opt-in. Server-side scrubber runs on ingest, before the report hits Claude or your storage. 15 categories — emails, credit cards (Luhn-validated), JWTs, API keys, AWS keys, IBANs, crypto wallets, PEM private keys, DB connection strings with embedded credentials, and more.

Self-hosted · your Claude API key · your data, your servers

No middleware vendor between your bugs and your AI. Bring your own CLAUDE_API_KEY and own the whole pipeline.

Side by side

How BugPilot compares.

BugPilot Marker.io Bird Eats Bug Userback
AI triage (severity, dupes, repro steps) ✓ ✗ ✗ ✗
Self-hostable ✓ ✗ ✗ ✗
Annotated screenshots ✓ ✓ ✓ ✓
MCP server (Claude Code / Cursor / Windsurf) read + write tools ✗ cloud-only ✗
Replay → Playwright export ✓ ✗ ✗ ✗
AI fix suggestions with code context title-only rewrite ✗ ✗
Session replay ✓ ✗ ✓ ✗
Server-side PII redaction 15 categories, per-project ✗ ✗ ✗
GitHub / Linear / Jira ✓ ✓ ✓ ✓
Free tier free for individuals 14-day trial 14-day trial 14-day trial
Vendor lock-in none — your data, your infra SaaS only SaaS only SaaS only

Field reports

What teams say.

"AI triage saved our QA lead at least an hour a day. Severity is right ~9 times out of 10."
— Engineering lead, B2B SaaS · 14-person team
"Self-hostable was non-negotiable for us. BugPilot was the only one that didn't make us compromise."
— Platform engineer, fintech
"We were drowning in dupes. The AI flags them on intake — our triage backlog dropped 40%."
— Product manager, indie dev tool

Hands on

There's a real bug button
on this page.

Click the floating button in the corner to open the actual BugPilot widget. Capture a screenshot, draw on it, write a report. See exactly what your team would see — minus the dashboard, since this is just a demo page.

  • One-line embed. <script src="/bugpilot.js" data-key="…"></script>
  • Annotations stored as SVG, not flattened into the screenshot.
  • Console errors and network failures captured automatically.

No signup. No data leaves your browser unless this page has a live API endpoint configured.

Security & compliance

Built for enterprise.

Data residency

Self-host on your own infrastructure. Your reports never leave your network unless you choose otherwise.

Encryption

AES-256 at rest for credentials and TOTP secrets. RS256 JWT, HTTPS everywhere.

GDPR-ready

User data export, account deletion with 30-day grace, DPA template available on request.

SOC 2 roadmap

Working toward SOC 2 Type I in 2026. Audit log, RBAC, and observability shipped.

# specimen BP-26-0420-001
CAPTURED
title: "Checkout unresponsive on iOS Safari"
screenshot: annotated.png // red arrow + blur
console: [TypeError: o.then is not a function]
network: POST /checkout → 500
AI TRIAGED
severity: 4 / major
type: functional
duplicate_of: null // 0.84 confidence
repro: ["Open cart", "Tap 'Buy'", "Nothing happens"]
status: → new
Chapter 01 · anatomy

Every report, fully prepped before you read it.

Regular bug reports are "it's broken, please help". BugPilot reports are a specimen slide — by the time a human looks at one, the context is already there.

  • Screenshot is captured, annotated, and stored on your infrastructure.
  • Console errors and failing network calls are attached automatically.
  • Claude writes a clean title, extracts repro steps, flags duplicates.
  • Severity and type classify the report before it hits your inbox.
Chapter 02 · specimens

Everything you need. Nothing you don't.

Twelve features, zero fluff. Built for small teams who want professional bug tracking and first-class AI workflows without the enterprise price tag.

№ 003 · AI
🛠️

Fix suggestions

Claude reads the report + optional code snippet you paste, returns root cause + actionable fix + confidence. Cached per-report. Available via the dashboard and as an MCP tool.

№ 004 · AI · unique
🎬

Replay → Playwright

Captured rrweb session becomes a runnable .spec.ts. Drop it in your test suite to repro the bug end-to-end. None of the visual bug tools do this.

№ 005 · capture
📍

Pin the element

Reporter clicks the broken element; widget records its CSS selector + XPath + bbox. The selector flows into AI repro steps — devs jump straight to it in DevTools.

№ 006 · privacy
🛡️

PII redaction

15 categories scrubbed server-side before storage: emails, credit cards (Luhn-validated), JWTs, AWS keys, IBANs, crypto wallets, PEM private keys, DB connection strings, and more. Per-project, opt-in.

№ 007 · capture
📸

Annotated screenshots

Users draw, highlight, blur, arrow, rectangle, circle directly on their screen before submitting. Annotations stored as SVG, not flattened into the screenshot.

№ 008 · capture
🎥

Session replay

Opt-in 30s rolling rrweb buffer with periodic FullSnapshots. Inputs masked at capture time. Replayer + scrubber in the report detail. Same capture powers Replay → Playwright.

№ 009 · install
🧩

Chrome / Firefox extension

Bug-report on any site without an embed. QA teams, agencies testing client sites, support reps — load unpacked or sideload via web-ext. Reuses the same widget IIFE.

№ 010 · integrations
🔗

GitHub · Linear · Jira

Two-way sync via webhooks (HMAC-verified). Auto-create issues after AI triage based on per-project severity threshold. Estimate endpoint shows you exactly what would have triggered last 30 days.

№ 011 · realtime
⚡

Real-time dashboard

SSE push updates the UI the moment AI finishes processing. New reports, comments, status changes appear live. Keyboard-first triage inbox: J/K/Space/A/D bulk-triage.

№ 012 · hosting
🏠

Self-hosted, always

Docker Compose, five services, up in under five minutes. 2FA, SSO (OIDC per-org), audit log with tamper-evident hash chain, GDPR export + soft-delete, scoped API keys — all on the free tier.

Chapter 03 · method

From report to fix, in four moves.

Zero friction for your users. Zero noise for your team. No ceremony in between.

i

Drop in the widget

One script tag in your HTML. Pass your widget key and optionally pre-fill reporter info for logged-in users.

<script src="/bugpilot.js" data-key="proj_abc"></script>
ii

User files a report

They click the floating button, annotate the screenshot, type a description, hit send. Under thirty seconds, start to finish.

iii

AI triages instantly

Claude analyses the report, assigns severity, writes a clean title and summary, extracts repro steps, checks for duplicates.

iv

Your team acts

Dashboard updates live. Approve from the triage inbox, push to GitHub or Linear, mark resolved — all in one place.

Chapter 04 · pricing

Simple, honest pricing.

Free for individuals and open-source projects. A commercial license is required if you use BugPilot in a for-profit product.

Personal
Free forever

For individuals, hobbyists, and open-source projects. No license key, no phone-home, no upgrade prompts.

  • 100 AI-triaged tickets / month
  • Unlimited projects
  • GitHub & Linear & Jira integrations
  • Annotated screenshots & replay
  • Self-hosted — your data, your server
  • For-profit commercial use
Get started free
Enterprise
Custom

For larger orgs with strict compliance needs, custom integrations, and an SLA.

  • Unlimited tickets — no overage
  • Unlimited team members & orgs
  • Dedicated onboarding & SLA
  • Custom integrations
  • SOC 2 evidence pack on request
  • Invoice billing & DPA
Contact us

Solo developer on a side project? It's free. Company shipping a product to customers? You need a commercial license. Still unsure — hello@bugpilot.dev.

Self-hosted · 5 min

Your infrastructure.
Your rules.

BugPilot ships as a Docker Compose stack — MongoDB, Redis, MinIO, the API, and the dashboard, wired together, health-checked, production-ready.

  • Named volumes for data persistence across upgrades
  • Nginx with gzip, asset caching, and SSE-aware proxy
  • RS256 JWT auth — no shared secrets
  • MinIO for screenshot storage (S3-compatible)
~/bugpilot ● zsh
# Clone and configure
git clone https://github.com/your-org/bugpilot
cd bugpilot
cp .env.example .env  # fill in secrets

# Generate RS256 key pair
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pem

# Start all services
docker compose -f infra/docker-compose.yml up -d

✓ mongo      healthy
✓ redis      healthy
✓ minio      healthy
✓ api        started on :3000
✓ dashboard  live on :80
ship it.

Stop guessing what broke.

Your first bug report — fully triaged — in under ten minutes from now.