Integrations / GitHub Issues
User bug reports, filed as GitHub issues
Install the Brainbox GitHub App, pick a repo, and every report your users send through the widget becomes an issue there, automatically. Nobody copies a screenshot out of an email or asks which browser it was.
What gets filed
The issue's title is the first line of what the user said. The body is the part of the screenshot they marked, their words (and the transcript, if they spoke), a table of where it happened, the console errors in a collapsed section, and links back to the full report. This is the issue for a real report, exactly as Brainbox writes it:

I tap Pay and nothing happens. Tried twice, the button doesn't even show a spinner.
| | |
|---|---|
| Page | [Checkout · Acme Store](https://shop.acme.example/checkout) |
| Viewport | 1440 × 900 @2x |
| Browser | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Version/18.1 Safari/605.1.15 |
| Locale | en-GB, Asia/Calcutta |
| User | Maya Patel <maya@example.com> |
| Element | `button#pay` |
| Reported | 2026-10-30T19:54:56.000Z |
<details>
<summary>1 console error</summary>
```
TypeError: Cannot read properties of undefined (reading 'confirmCardPayment')
at HTMLButtonElement.<anonymous> (https://shop.acme.example/checkout:50:84)
```
</details>
[Open in Brainbox](https://app.brainbox.sh/projects/acme/issues/iss_7Kq2) · [Full screenshot](https://app.brainbox.sh/f/iss_7Kq2/screenshot.png)The full screenshot, the screen recording or session replay, and the voice note stay in Brainbox, one click away from the issue.
Setting it up
- In the dashboard, open a project's integrations and connect GitHub. That installs the Brainbox GitHub App on your account or organization; GitHub asks which repositories it may use.
- Pick the repository for this project's reports.
- Choose labels for bug reports, and separate labels for feature requests if you want them told apart.
- Save. Every new report from then on is filed as it arrives.
The app asks for the access it needs to open issues on the repositories you choose, and nothing to do with your code. One installation serves every project in your team.
When something goes wrong
Each report records its delivery: sent, with the issue number and a link, or failed, with GitHub's reason and a retry button. You can pause a project's GitHub filing at any time; reports keep arriving in your Brainbox inbox meanwhile. If the app is uninstalled from GitHub, Brainbox notices and stops sending.
One way, on purpose
Brainbox files the issue and links back to the report. What happens to the issue after that is GitHub's business: closing it there doesn't change the report in Brainbox, which keeps its own triage status. Teams that live in GitHub triage there; the inbox is still there for reports you chose not to file.
Running it yourself
The code that writes the issue is the source-available @ganeshdole/brainbox-integrations package. With your own backend, give it a fine-grained token with Issues read and write on the repo (or your own GitHub App) and deliver each report. Set apiUrl for GitHub Enterprise Server.
import { githubIssues } from "@ganeshdole/brainbox-integrations"
const github = githubIssues({
owner: "acme",
repo: "web",
token: process.env.GITHUB_TOKEN,
labels: ["feedback"],
})
const result = await github.deliver(ticket)
if (result.ok) console.log(result.url) // https://github.com/acme/web/issues/42Try it before you install it
The button in the corner of this page is the real widget. Report something on this page and it lands in our inbox, the way your users’ reports will land in yours.
Get started