Screenshot to Bug Report - BugShot avatar

Screenshot to Bug Report - BugShot

Pricing

from $0.12 / bug report created

Go to Apify Store
Screenshot to Bug Report - BugShot

Screenshot to Bug Report - BugShot

Turn one screenshot and a symptom into a tracker-ready bug-report draft. Never files the issue. Read the default dataset. Set maxTotalChargeUsd above $0.12.

Pricing

from $0.12 / bug report created

Rating

0.0

(0)

Developer

Dravara LLC

Dravara LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

BugShot

Turn one screenshot into a tracker-ready bug-report draft.

Upload one screenshot and add a sentence such as “Checkout button does nothing.” BugShot returns visible evidence, a concise title, actual and expected behavior, reproduction steps, submitted environment facts, separate inferred environment clues, suggested severity, acceptance criteria, assumptions, open questions, structured JSON, and tracker-ready Markdown. Add known environment fields or relevant console output when they exist.

Optionally provide a GitHub repository owner and name. BugShot then returns a browser link that contains a prefilled GitHub Issue title and body. The link is stored with the run output. Review the title and body before opening it because opening sends that prefill to GitHub and can place it in browser history. BugShot never submits the issue or uploads the screenshot to GitHub. The raw console log is left out of the browser URL; paste it separately only after checking it for secrets.

Built for automation

  • Send screenshots from CI, support intake, QA, or an agent workflow.
  • Preserve submitted environment facts and relevant console output in the finished Markdown instead of reconstructing them by hand.
  • Open a reviewable GitHub Issue draft, or paste the Markdown into Jira, Linear, another tracker, or a support system.
  • Keep unsupported details explicit as assumptions or questions.
  • Receive one dataset item per screenshot instead of setting up integrations.

Output example

This sanitized example shows the complete dataset contract. Values such as coordinates and digests change with the submitted screenshot.

{
"title": "Checkout button does not advance the order",
"summary": "The checkout screen remains on the payment step after the customer selects Place order.",
"actual_behavior": "Selecting Place order leaves the payment step visible and shows an error banner.",
"expected_behavior": "The order should be submitted once and the customer should see a confirmation or a specific recoverable validation error.",
"reproduction_steps": [
"Open checkout with an item in the cart.",
"Complete the visible payment fields.",
"Select Place order."
],
"evidence": [
{
"source": "screenshot",
"observation": "An error banner is visible above the payment form.",
"region": {"x": 0.12, "y": 0.18, "width": 0.76, "height": 0.09}
},
{
"source": "reporter_note",
"observation": "The reporter states that the button does nothing.",
"region": null
}
],
"visible_errors": ["We could not process your order."],
"environment_clues": ["Desktop-width checkout layout"],
"severity": "high",
"severity_reason": "The visible failure blocks completion of the primary purchase flow.",
"acceptance_criteria": [
"One selection submits no more than one order.",
"A successful submission opens the confirmation screen.",
"A failed submission returns a specific recoverable error."
],
"assumptions": ["The screenshot was captured after Place order was selected."],
"questions": ["Does the browser console show a failed network request?"],
"markdown_report": "# Checkout button does not advance the order\n\n## Summary\nThe checkout screen remains on the payment step after submission.\n",
"input_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
"provided_environment": {
"application": "Storefront",
"deployment_environment": "staging",
"version_or_build": "2026.07.31",
"browser_or_runtime": "Chrome 140",
"operating_system": "Windows 11",
"device": null,
"route_or_screen": "/checkout/payment"
},
"console_log_included": false,
"console_log_sha256": null,
"github_repository": "example/storefront",
"github_issue_prefill_url": "https://github.com/example/storefront/issues/new?title=Checkout%20button",
"github_issue_prefill_truncated": false,
"github_issue_notice": "Review the draft and remove secrets before opening or submitting it.",
"review_notice": "AI-generated report: verify the evidence, reproduction steps, expected behavior, severity, and assumptions before filing."
}

Supported input

PNG, JPEG, and WebP; one image per run; up to 12 MB, 8,192 pixels per side, and 20 megapixels. Screenshots selected with the Apify Console file uploader are read inside this limited Actor with its scoped storage access. Other remote sources must use public HTTPS; local-network and reserved addresses are rejected. Direct inline data URLs should stay at or below 6 MB of raw image bytes because Apify run-input requests have a smaller limit than uploaded or remote files.

The reporter note accepts up to 4,000 characters. Optional console output accepts up to 8,000 characters with Windows and classic Mac line endings normalized to line feeds; null characters are rejected. Environment fields are single-line values with documented per-field limits. A GitHub draft requires both a valid repository owner and repository name. BugShot does not accept a GitHub token.

Self-service run and recovery

No separate Dravara account, API key, tracker integration, or support handoff is required. Upload the screenshot, start one run, then copy the report from the run's default dataset into the system you choose. If you requested a GitHub draft, review the report for secrets before opening the returned link, attach the screenshot yourself, and submit only when it is correct. The Actor never files or updates an issue for you.

If input validation fails, correct the file or named field and start a new run. If the analysis service is temporarily unavailable, wait a few minutes and start one new run; a failed run does not continue in the background. If a charge or dataset state ever looks unclear, do not loop automatic retries: inspect that run's Charges, default dataset, and Self-service failure details output first. The failure output is the sanitized key-value-store OUTPUT record with the stable error code, retry guidance, and next action.

Billing

Dravara's creator charge for a successful run is $0.35005: the $0.00005 apify-actor-start event plus $0.35 for bug-report-created. Apify separately passes its variable platform usage to the customer and determines the final displayed total; Dravara does not reduce its creator charge to absorb that usage. The result event is captured only after the report is available in the default dataset. Validation or provider failures skip the result charge, but the Actor-start charge and Apify platform usage can still apply. The synthetic sample input is billed like any other run.

Privacy

The screenshot, note, submitted environment, and console output are processed by Dravara, LLC's private service and the OpenAI API using store: false; applicable provider abuse-monitoring retention may still apply. The public Actor is a limited, inspectable adapter; the product engine remains private. Apify stores normal run input/output according to the runner's retention settings.

Remove credentials and unrelated personal information before uploading or pasting console output. BugShot treats every submitted string and screenshot as untrusted evidence, not instructions, but automated analysis cannot guarantee that every secret is recognized. BugShot does not create or update third-party issues in version 1.0.

Optional defect contact: support@dravarahq.com. Send only the Apify run ID and safe error text, never the input. Support does not complete or deliver failed runs.