Bug reports your AI agents can fix.

Report bugs that tell the whole story, the first mile of every fix.

Start freeWatch a report write itself
Create account
Name
password
Continue
Tap the bird✓ Report sent
one tap
octocat / my-app-reports · issue #12 from-bugsTweetExample
Continue does nothing after sign up

The picture, marked up

Private fields already blurred.

The last 30 seconds

Sign up → Name → Email → Password → Continue (nothing happened)

The scenario, in plain words

Given
signed out, on Create account
When
name, email and password typed, then Continue tapped
Then
nothing happened. Expected: the Welcome screen

The phone and the app

App 2.4.1 (118)Android 16Text size: largeDark modeWi-Fi 24 Mbit/sBattery 41%

Where it most likely lives in the code

lib/screens/signup_screen.dart:142 · ContinueButton, found by the widget's name

A test draft

testWidgets('Continue after sign up', (tester) async { await tester.tap(find.byKey('continue')); expect(find.text('Welcome'), findsOneWidget); // fails today });
the last 30 seconds, kept on the phone
Free, alwaysFor any number of testers. A free feature never becomes paid.
Pro: coming soonThen $29 per person per month. Free works today.
Your code stays yoursbugsTweet never gets access to your app's code.

What a bug report usually leaves out.

Writing a good bug report is hard. Even careful testers leave things out, and the fix waits while someone asks.

The steps

“I tapped something and it broke.” Which taps, and in which order?

The moment

By the time the report is written, the last 30 seconds are gone.

The phone

Text size, dark mode, language, network, battery. Nobody thinks to write them down.

The place in the code

A screenshot shows what went wrong, not which part of the app drew it.

Free for all your testers.

Everything here is free, always, for any number of testers.

Free
Tap the bird

Report what is on the screen, any time.

Free
Tray

Hold the bird, tap Tray: your reports, waiting to send and already sent.

1 report waiting to send

  • To send
  • Save button missing
  • Sent
  • #12 Continue does nothing
Free
Long shot

Scrolls the page and stitches it into one tall picture.

Free
Record 10 s

Records 10 seconds with the touches drawn, to watch on the phone.

0:07 / 0:10
Free
Timer 3 s

Takes the screenshot after a 3-second countdown on the bird.

3
Free
Element

Tap one part of the screen to capture only that part.

Continue
Free
Hide

Hides the bird for 2 minutes. A shake brings it back.

2 min
Free
Shake to report

Shake the phone to capture, hands busy or not.

Free
“Report this?”

After a normal phone screenshot, bugsTweet offers to report it.

Report this? Yes
Free
Mark-up tools

Arrow, box, pen, highlight, blur, text, stamps, crop, and the note.

Free
Designer kit

Ruler, color picker and contrast check, for design bugs.

#8730FF
Free
Private by default

Passwords and private fields are blurred before anything leaves the phone.

Email
secret-password
Free
Basic phone facts

Model, system, app version, text size, dark mode and language.

Pixel 8Android 15app 2.3 (31)large textdark modeEnglish
Free
What will be sent

A short summary before sending; see the full report text.

  • The note
  • 1 picture, marked up
  • The phone facts
  • See the full report
Free
The screen change, in words

Retest: the old picture and the new one, compared and said in words.

beforeafter
Button “Save” disappeared.
Free
Time travel on the phone

A slider over the last 20 seconds, on the phone.

Free
“The app closed unexpectedly”

The next start offers to report it.

The app closed unexpectedly last time. Report it?

It was on Create account.

Not nowReport
Free
The fewest taps

One command finds the fewest taps that still make a bug test fail.

12 taps→3 taps

The test still fails.

Free
Your own key or relay

Send reports straight to GitHub without the bugsTweet service.

your-org / my-app-reports

#13 opened, straight from the phone

What Pro will give you.

Coming soon. The phone only collects; the bugsTweet service will write these parts, so your agent can start on the fix at once.

Pro · soonWhat happened
The steps and the last 30 seconds

The last taps, and small pictures of the 30 seconds before the report.

Sign up → Name → Email

Pro · soonWhat happened
The 10-second clip

Free: record 10 seconds with the touches drawn and watch it on the phone. Pro adds: the clip goes into the report, so you see it too.

0:07 / 0:10
Pro · soonWhat happened
Time travel

Free: the slider over the last 20 seconds, on the phone. Pro adds: the whole record in the report, with the app’s state at each step.

screen SignUp · signed in no · cart empty
Pro · soonWhat happened
The phone's condition

Free: model, system, app version, text size, dark mode and language. Pro adds: network, a short speed test, battery, storage, memory and heat at the moment of the bug.

Network
Wi-Fi, 24 Mbit/s
Battery
41%, power saving
Storage
1.2 GB free
Memory
68% used
Heat
normal
Pro · soonWhat happened
The app's state

One line in the app lets the report say what the app knew.

signedIn: false cart: empty screen: SignUp
Pro · soonWhat happened
Duplicate guard

Before sending, bugsTweet checks for the same bug and offers to add to it.

#9Looks like “Continue does nothing”, reported on Tuesday. Add to it?
Add to #9New report
Pro · soonWhat happened
Internet requests and printed lines

The app's last 50 requests and 500 printed lines, passwords and keys hidden.

POST /signup -> 200 in 180 ms POST /session -> 401 in 85 ms
Pro · soonWhat happened
The whole error trace

Free: the next start offers to report the closure, with the last picture. Pro adds: the full trace of each error before it closed, so the fix starts at the right line.

StateError: no signed-in user at SignUpScreen._continue (signup_screen.dart:88)
Pro · soonWhat happened
A clear title, by Claude

A title, up to two topic labels and a severity, written by Claude.

Continue does nothing after sign up
navigationseverity: high
Pro · soonWhere in the code
Where it most likely lives

The file and line, found by the widget's name.

lib/screens/signup_screen.dart:142
ContinueButton

Pro · soonWhere in the code
The build receipt

The exact code the tester's build was made from.

commit a1b2c3d · bugsTweet 0.9.14
Pro · soonWhere in the code
Scenario and test draft

Given, When, Then, and a test your agent can finish.

Given
signed out, on Create account
When
name, email and password typed, then Continue tapped
Then
nothing happened. Expected: the Welcome screen
Pro · soonWhere in the code
Ready to reproduce

A checklist of what is still missing.

  • Steps
  • Picture
  • Code place
  • Were you signed in?
Pro · soonTalking to your testers
The agent asks the tester

“Were you signed in?” The tester taps the answer on the phone. No developer in the middle.

Were you signed in when you tapped Continue?
YesNo
Pro · soonTalking to your testers
Write to your testers

Start a GitHub comment with “For the tester:” and it reaches their phone; their answer comes back.

Developer, on GitHub

For the tester: were you on Wi-Fi or mobile data?

On the tester's phone

Were you on Wi-Fi or mobile data?

Your answer
SendGot it
Pro · soonTalking to your testers
The agent link

Claude Code or Codex lists the reports, reads one, sees its pictures, asks the tester and marks it fixed.

list_reports #12 Continue does nothing ask_tester 12 Were you signed in? mark_fixed 12 Fixed in build 31
Pro · soonAfter the fix
“Fixed in build 31, try it”

Free: retest any report from the tray and see the screen change in words. Pro adds: when you mark a fix, testers on that build get the retest card by themselves, with the screen, the old picture and the steps.

Fixed in build 31Create account → Continue
Retest
Pro · soonAfter the fix
Maybe affected

A new build that changes a file in an open report marks it for a retest.

Maybe affected by this build (lib/screens/signup_screen.dart)

Pro · soonAfter the fix
Prove a fix

One command posts “failed before, passes after” on the issue.

Verified fix

Before: the test failed.
After: the test passes.

Pro · soonAfter the fix
No key in the app

Free: reports go straight to GitHub with your own key or relay. Pro adds: they go through bugsTweet instead, so your app holds no GitHub key at all.

Your app holds no GitHub key.

How it works

1Add bugsTweet to your Flutter app.

One line. Your store app never contains it.

flutter pub add --dev bugstweet
2Your testers tap the bird.

Anyone you give a test build to: beta users, clients, your team. They mark up the screen, add a note, send.

✓ Report sent
3You or your agent fix it.

When the fix lands, the tester retests from the phone.

issue #12 → fixed in build 31 → retested ✓

Your code stays yours.

bugsTweet never gets access to your app's code. Reports go to a separate, private reports repository, and there the bugsTweet service allows only its own actions: post a report, comment, close or reopen, add a picture.

Free to report. Pro for the whole story.

Your testers never pay to report bugs. Pro adds what nobody can write down.

See pricing
What's newTermsPrivacyRefunds[email protected] · © 2026 Ameerplus