From unclear bug to actionable fix

Explain the bug once.
Get it resolved.

BugToPrompt turns a vague report into a clear, reproducible problem your team or coding agent can act on. Sign up, record what went wrong, and manage every issue from one place.

5 bugs free, no card. Keep it local with the MIT extension, or create an account and track the issues until they are closed.

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

A bug you cannot explain is a bug nobody fixes.

Every vague report costs a round trip. You say "the save button is broken", whoever picks it up asks what you mean, and the bug sits there while you re-explain it. The fix was never the slow part — the description was. Get the description right once and the problem actually gets resolved.

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.

BugToPrompt writes that right-hand brief for you. You point at the bug and talk; it captures the selector, the DOM, the repro and your narration. Create a free account and those reports land in one place you can manage — no more scrolling a chat log to find out whether anything happened. The extension itself stays free, open source and entirely client-side.

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.

Where the bugs go

One place to see every problem through to resolved.

Capturing the bug is half the job. The other half is knowing what happened to it. Your reports land in a workspace with state, history and a thread — so "I reported that weeks ago" stops being the end of the conversation.

  1. Sign up

    Create a free account. No card, no sales call — the workspace is yours in a minute.

  2. Capture the bug

    Point at the broken thing and talk. The selector, the repro and the state are written for you.

  3. Manage the fix

    Every report becomes a tracked issue you can follow, comment on and close — not a message that scrolls away.

acme / storefront

Illustrative workspace — this is the shape of the real one

All issues
  • Checkout button does nothing on the cart page acme/storefront · 3 comments · updated 2h ago In progress
  • Invoice total shows NaN after editing a line acme/billing · 5 comments · updated yesterday Waiting on you
  • Avatar upload silently fails over 2 MB acme/storefront · 0 comments · opened 10m ago New
  • Search ignores accents in customer names acme/admin · Closed by you · last week Done

Every issue keeps the context it was filed with: the element, the steps, the console. Reopen it and the explanation is still there.

Prefer to keep everything on your own machine? The MIT extension files straight to GitHub through your own gh auth, with no account at all. The workspace is for when you want the bugs to outlive your session.

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), Cloud 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 · account
Talk through the bug while you point. LITE transcribes on-device with Parakeet-MLX; Cloud transcribes server-side with AssemblyAI.
05 Every report in one workspace cloud account · free to start
With an account, each capture becomes a tracked issue with the context it was filed with. See what is new, what is in progress and what is waiting on you, and close the loop instead of wondering.
06 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 Cloud, 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 (Cloud)
Pricing

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

The overlay is open source and free forever. LITE is the local tray app: on-device transcription and GitHub filing through your own gh CLI, one project. Cloud is the account you sign up for today — your reports tracked as issues with their full context, transcription server-side, and unlimited projects.

Open-source overlay

free forever · MIT

Runs entirely client-side, no backend, no account, no credits. Get it as the Chrome extension — one click, available 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 & account LITE free · Cloud open

LITE

$0/mo

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

Cloud

Free to start

  • Everything in LITE
  • Workspace with tracked issues and history
  • Cloud transcription (AssemblyAI)
  • Hosted filing, no gh CLI needed
  • Unlimited projects
Create your free account

5 bugs free, no card. 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); Cloud is the hosted option, with server-side transcription and issue filing that needs no gh CLI (unlimited projects).

What is the difference between LITE and Cloud?

LITE is free: local transcription (Parakeet-MLX) and GitHub issues filed through your own gh CLI, capped at one project, no account. Cloud is the workspace you sign up for: every report tracked as an issue with its full context, server-side transcription (AssemblyAI), hosted filing with no gh CLI needed, and unlimited projects. Free to start — 5 bugs, no card.

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 Cloud, it lands in your workspace instead, where you can follow the issue through to resolved.

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; Cloud runs transcription server-side (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) costs nothing, ever. Cloud (the workspace: tracked issues, server-side transcription, hosted filing, unlimited projects) is free to start — create an account above and you get 5 bugs with no card.

Get started

Your machine. Or your inbox.

Create an account

The workspace: every report tracked as an issue with the context it was filed with, cloud transcription, and unlimited projects. Free to start — 5 bugs, no card.

Keep it local

MIT

The extension plus the local tray app: on-device transcription and GitHub filing through your own gh CLI. One project, no account, nothing leaves your machine.

BugPrompt LITE runs on your machine. Only the issue text reaches GitHub.