Drop-in bug capture for AI agents

Point at the bug.
Ship the prompt.

The slow part was never the AI fixing it. It was turning "that button is broken" into a prompt your agent can act on. BugToPrompt records what happened and writes that prompt for you.

One click on any tab, no code in your site. It works once you allow that site from the popup, and never runs anywhere else.

Example: an AI-ready bug report BugToPrompt generates from a single click on a broken element.
bug-report.md

# Checkout button does nothing on the cart page

## Steps to reproduce
1. Open /cart with 2 items
2. Click "Proceed to checkout"
3. Nothing happens, no navigation, no error toast

## Element
button.checkout-cta (text: "Proceed to checkout")
selector: main > section.cart > button.checkout-cta

## DOM context
<button class="checkout-cta" disabled=""> is rendered
with disabled set while cartTotal is still 0 on first paint.

## Expected
Button enabled once items load, navigates to /checkout.

## Actual
Button stays disabled, onClick never fires.
Outputs your agent already speaks
  • Cursor
  • Claude Code
  • GitHub
GitHub repository star count MIT · client-side
The bottleneck

The agent can fix it. If you describe it right.

Coding agents are good at fixing bugs. The slow part is turning "that button is broken" into something they can act on: the exact element, how to reproduce it, what the DOM looked like, expected versus actual. Most of that lives in your head, so you under-describe, the agent guesses, and you run another round.

What you say

the save button is broken

// fix it pls

No selector, no steps, no state. The agent has to ask, or guess.

What the agent needs

selector: button.btn-save[data-id="42"]

route: /invoices/42/edit

repro:

1. open invoice, edit a line

2. click Save

expected: row persists, toast shown

actual: 500 on save, row does not persist

+ DOM snapshot, screenshot, voice transcript

Selector, repro, state, expected versus actual — one pass, no follow-up questions.

The BugToPrompt overlay writes that right-hand brief for you — free, open source, and entirely client-side. You point and talk; it captures the selector, DOM, repro, and your narration, then renders the prompt your agent already understands. That's the free LITE wedge, shipping as a one-click desktop app with no Node.js to install. PRO takes the next step: cloud transcription and hosted GitHub filing, so teammates without gh installed can file issues too.

How it works

Point at the bug. Ship the prompt.

  1. 01

    Point

    Open the overlay and click the element that is wrong. Add a line of context, or say it out loud.

  2. 02

    Capture

    Clicks, route changes, interactive DOM snapshots, screenshots, and your voice, all recorded as you go.

  3. 03

    Render

    Everything collapses into one issue-format prompt: selector, repro steps, expected versus actual.

  4. 04

    Ship

    Paste it into Cursor or Claude Code, or file it straight as a GitHub issue through your own gh CLI. On PRO, filing goes through the hosted backend instead, no gh CLI needed.

Features

One drop-in. Everything captured.

The overlay brings its own UI and stays out of the way until you open it. No config, no wiring, no design work.

core

Zero-config drop-in

Add it once with no props and no setup. It ships its own UI and CSS, mounts itself, and waits until you reach for it.

// render once, anywhere in your tree
<BugToPrompt />
01 Four ways to add it
React component, standalone script tag, a console one-liner, or the Chrome extension (planned).
02 Three output modes
Copy to the clipboard or download as markdown with no backend at all, or file a GitHub issue through the desktop app: LITE uses your own gh CLI (one project), PRO files through the hosted backend with no gh CLI needed (unlimited projects).
03 Local capture history
Every capture is listed on the device. Copy, download, or delete each one when you are done with it.
04 Voice narration, local or cloud desktop app · waitlist
Talk through the bug while you point. LITE transcribes on-device with Parakeet-MLX; PRO can transcribe in the cloud with AssemblyAI.
05 Persists across navigation
Survives route changes and reloads, and stays client-side by default. Your data never leaves the machine.
Install

Add it once. Point at any bug.

BugToPrompt is a Chrome extension: one click, no code in your site. It only runs on a tab once you allow it there, and never anywhere else.

Chrome extension recommended

One click on any tab

// injects the same overlay build, no code in your site

First-run onboarding, popup pairing, and per-site permission. It only runs on a site once you allow it there.

// not on the Chrome Web Store yet: download the zip, unzip it, then load it at chrome://extensions with Developer mode on

Examples

This is what your agent receives.

Not a screenshot. A precise, repo-aware prompt: the element, the selector, the steps to reproduce, and the gap between expected and actual. Paste it into Cursor or Claude Code and it has everything. On PRO, filing goes straight through the hosted backend, so teammates without gh installed can still file the issue.

bug-report.md — example capture
# Checkout total ignores applied coupon

The order summary keeps the full price after a valid coupon is applied. The
discount line shows up, but the total does not change.

## Repro steps
1. Add any item to the cart and open /checkout
2. Enter coupon code SAVE10 and click "Apply"
3. Discount row appears (-$10.00), total stays at $99.00

## Element
- Text: "Total $99.00"
- Selector: `section.order-summary [data-testid="cart-total"]`
- Nearest component: <OrderSummary />

## DOM context
<div class="summary-row total">
  <span>Total</span>
  <span data-testid="cart-total">$99.00</span>  <!-- expected $89.00 -->
</div>

## Expected vs actual
- Expected: total recalculates to $89.00 after the coupon applies
- Actual: discount is recorded but the total field is not recomputed

## Environment
- URL: /checkout
- Viewport: 1440x900, devicePixelRatio 2
- Browser: Chrome 126 on macOS
- Route changes during capture: /cart -> /checkout

---
captured with BugToPrompt
ways out:
  • File as GitHub issue
  • Copy to clipboard
  • Download as .md
  • Hosted filing, no gh CLI needed (PRO)
Pricing

Free to drop in. Paid only when it's hosted.

The overlay is open source and free forever. LITE and PRO, the desktop apps for local or cloud transcription and GitHub filing, are both in development — join the waitlist for early access.

Open-source overlay

free forever · MIT

Runs entirely client-side, no backend, no account, no credits. Get it as the Chrome extension — one click, early access today.

// injects the same overlay build, no code in your site

point at the bug → paste-ready prompt

  • Clipboard, download, and inline output modes
  • Selector + DOM context + screenshots
  • No telemetry, nothing leaves the browser
Desktop app In development

LITE

$0/mo

  • Local transcription (Parakeet-MLX)
  • GitHub issues via your own gh CLI
  • 1 project
Join the waitlist
Recommended

PRO

Waitlist

  • Everything in LITE
  • Cloud transcription (AssemblyAI)
  • Hosted GitHub filing, no gh CLI needed
  • Unlimited projects
Join the waitlist

Neither app has shipped yet — the overlay itself is free and available today.

Why this beats the workaround

Screenshots and Looms make the agent guess.

The other ways of reporting a bug all drop the one thing an AI agent actually needs — the element and the state it was in. Same bug, four ways to hand it off.

Dimension bugtoprompt Screenshot + Slack Loom Write it yourself
Context captured Selector, DOM, screenshots, repro steps Pixels only Video, no DOM Whatever you remember
Paste-ready prompt Structured markdown, ready Agent must infer it all Agent can't read video Only as good as your prose
Time to share Seconds A minute, plus a message Record, wait, upload Five to ten minutes
Reproducibility Exact element and state Approximate, you re-explain Watch and guess Depends on your notes
FAQ

Questions, answered straight

Do I need a backend?

Not to capture. Clipboard and download modes run fully client-side, zero config. Filing straight to GitHub and voice transcription need the BugToPrompt desktop app: LITE runs Parakeet-MLX locally and files through your own gh CLI (one project); PRO is the hosted option, with cloud transcription and issue filing that needs no gh CLI (unlimited projects). Both are in development, join the waitlist.

What is the difference between LITE and PRO?

LITE is free: local transcription (Parakeet-MLX) and GitHub issues filed through your own gh CLI, capped at one project. PRO is paid: cloud transcription (AssemblyAI), hosted issue filing with no gh CLI needed, and unlimited projects.

Where does the prompt go?

Wherever you point it. Copy it to the clipboard and paste into Cursor or Claude Code, download it as a .md file, or file it as a GitHub issue through your own gh CLI. On PRO, filing goes through the hosted backend instead, no gh CLI needed.

Does my data leave the browser?

Not by default. Clipboard and download stay on your machine, and capture history is stored locally. Filing a GitHub issue or transcribing voice needs the desktop app: LITE keeps transcription local and files through your own gh auth; PRO can run transcription in the cloud (AssemblyAI) and files through the hosted backend instead.

Does it work on non-React or old multi-page apps?

Yes. It's a browser extension, so it works on any page — React, server-rendered, or legacy multi-page, it doesn't matter. No code changes to your site are needed.

How is this different from pasting a screenshot?

A screenshot makes the agent guess. This captures the element, its CSS selector, the surrounding DOM, the clicks and route changes that led there, and your description, then renders it as a structured prompt the agent can act on directly.

What does it cost?

The overlay is free and MIT today, drop it in and use it. LITE (free desktop app: local transcription, GitHub filing via your own gh CLI, one project) and PRO (paid: cloud transcription, hosted filing, unlimited projects) are both in development, join the waitlist below.

Get started

Point at the bug. Ship the prompt.

Get the extension

One click on any tab you allow it on. It never runs anywhere else. Still early access, the overlay below is what ships today.

PRO: cloud & hosted

Coming soon

Cloud transcription (AssemblyAI), hosted GitHub filing with no gh CLI needed, and unlimited projects. Join the waitlist for early access.

BugPrompt Open source today. LITE and PRO desktop apps in development.