Bug Reporting Tools Free in 2026

Bug reporting tools free of a monthly seat still exist, and most QA teams already own one: GitHub Issues. Add Jam.dev when the bug lives in a browser tab with a console.
Add a Mac capture path when the bug lives in a native or Electron window that Jam cannot see.
I wrote the paid landscape in bug reporting software. This post is the zero-to-cheap kit I actually tell testers to install before they ask for a budget.
Which bug reporting tools free tiers are real?
"Free" in this category often means "free until you want SSO." Read the current plan. The shape below has been stable enough to plan a week of work.
GitHub Issues
Cost: free on public repos; free enough on private for small teams
Capture: whatever you paste
Best for: the tracker your developers already open
GitLab / Forgejo issues
Cost: free if you already host there
Capture: same paste problem
Best for: teams that are not on GitHub
Jam.dev
Cost: a real free tier people use
Capture: browser tab, console, network, replay
Best for: web-only bugs
Linear free
Cost: limited team size, check today's cap
Capture: none native
Best for: shops already in Linear who should not also buy a capture SaaS yet
Apple Feedback / TestFlight comments
Cost: free
Capture: Apple's
Best for: App Store builds, not your Electron admin tool
The tracker is not the report. A blank GitHub issue is as empty as a blank Jira.
For the prose shape, steal the format of a bug report and a concrete bug report example.
Why do free tools still bounce QA's tickets?
Because testers file what the tool makes easy: a sentence and a PNG.
Developers bounce what they cannot reproduce: missing URL, missing build, missing control name, missing step.
Jam fixes the browser half of that. Console and network are why it won.
It does not fix the Mac half. I keep that gap in Jam.dev alternative for native Mac apps.
A free stack works when the expensive part (naming the control) is a habit, not a feature you skipped because the tracker was free.
CleanShot X is a wonderful screenshot app and a terrible bug reporter. It does not know what you clicked.
Marker.io is not free in any useful sense for a QA intern.
How I file a UI bug with no paid reporter
I reproduce once. I do not write steps from memory.
I hold ⌥⌘A, circle the broken control, and say the expected versus actual in one breath. "This Save button stays disabled after a valid email." On-device transcript.
AX resolve with confidence. Cropped shot.
If I need two controls, I mark both. Each mark gets its own words.
I do not write "the left one."
I dump the bundle into GitHub Issues or Linear. URL comes from the AX web area when it is a browser.
App name and window title when it is not.
If the developer is an agent, I skip the ticket body poetry and leave the capture on the local MCP server.
claude mcp add --scope user pinvari -- "$HOME/.pinvari/mcp/pinvari-mcp"
PinVari → Connect if you do not want the CLI. App running.
127.0.0.1:3402.
Put the build number in the first line. Free tools do not magically know TestFlight 214. Agents that edit the wrong branch are following your silence.
When should QA pay anyway?
When you need SSO, audit logs, or session replay across thousands of web sessions. That is a different product.
Buy it for the web fleet.
When your app is native and your reports still say "see screenshot." A one-time Mac app is cheaper than another seat of a browser tool you cannot use.
Launch license is $39 for the first 500, then $59. Team seats exist.
No subscription on the core app. Pricing.
Do not "save money" by pasting five unlabeled screenshots into a free GitHub issue. You saved the seat and spent the engineer.
On canvas, games, and some Electron views, AX is empty. OCR fallback, confidence down, recapture if it is below about 0.8.
Never silently guess the control.
Named element plus one crop is the free-tier cheat code. Everything else is decoration.
What fields belong in a free template?
I pin this on the repo and I refuse tickets that skip it.
Title: visible name of the control plus the failure
Build: number or commit
Surface: URL or app/window
Steps: the ones I just did, not the ones I remember
Expected / actual: one sentence each
Control: role and label if we have them
Attach: one crop, optional console from Jam if web
I do not require video for a static UI bug. I require a name.
Dwell detection (~0.2s) is how I mark without drawing when the control is small. Pause (⌥⌘P) is how I mark a scrolling settings page as one session.
Multi-display: the mark remembers the monitor. Filing a crop from the wrong display is a classic free-tool own goal.
Free vs paid in one breath
Web + console: Jam free
Tracker: GitHub Issues
Native / Electron / agent: point-and-speak capture
Session replay at scale: paid, later
How I run a free-tool QA day without Slack becoming the tracker
Morning: I pull the build, write the build number at the top of a note, and I do not file yet.
I walk the assigned surface once for smoke. Anything that is down stays in that note as a blocker, not as five issues.
Then I file. One issue per control.
I refuse "various UI issues" umbrellas because they cannot be closed and they cannot be given to an agent.
If a developer asks for a video, I record only the one-second failure. I do not narrate my desktop for three minutes.
Free tools make long videos easy to attach and hard to watch.
Slack gets a link to the issue, not the PNG. If Slack has the PNG and GitHub does not, the PNG is gone after the channel retention date.
I close my own issues when I cannot reproduce on the next build. Leaving zombies in a free tracker is how people conclude the tracker "does not work" and ask to buy a platform.
For regressions I paste the previous issue number in the new one. I do not reopen a six-month-old ticket that now describes a different screen.
Agents that read the old comments will "fix" the old product.
When the app under test is AX-blind, I say so in the issue. "OCR-only, confidence 0.62, please treat the crop as the source of truth." That sentence saves a round trip.
If two testers share one Mac user account, do not share one capture session. You will mix word buckets.
Separate OS users, or at least finish and mark done before the next person starts.
A free stack scales to a surprising place if the reports are boring and complete. It fails the moment people treat GitHub like a chat room and Jam like a toy.
The tools were never the expensive part. The reread by a developer who cannot find the control is.
I will pay for seats when the company needs workflows, not when someone is tired of writing a title. Until then I keep one crop, one name, one issue.
Environment notes belong in the issue even on a free tool. macOS version, display count, and whether the window was fullscreen change AX frames.
I put those three on the last line so I do not forget them when I am mid-capture.
If the bug is copy, I still circle the text node. "This headline wraps." is better than "copy issue on marketing." The agent can open the string file when the node has a name.
It cannot open a vibe.
FAQ
What are the best bug reporting tools free for a small QA team?
GitHub Issues plus Jam for browser work. Add a Mac capture app when you test native or Electron.
Skip a paid tracker until the issue count or the compliance team forces it.
Is Jira free?
Jira has a free tier with limits. It is not free in operational cost.
If you are not already on Jira, do not start there just to file UI bugs.
Is Jam.dev enough as a free bug reporter?
For Chromium, often yes. For the rest of a Mac, no.
Use it as the web instrument, not as the company-wide reporter.
Can I file bugs straight to an AI agent for free?
The agent is whatever you already pay for. The capture can stay local with no API key.
The report is still only as good as the element name.
Do I need screenshots if I have steps?
For UI, yes, but one crop. Steps without a picture bounce.
Pictures without a name bounce later.
How do I stop duplicates on a free tracker?
Search the visible control name before you file. A named element is a better duplicate key than "button broken" in five issues.
Hand your agent the exact element
PinVari resolves what you point at into a named, executable instruction — on-device, no keys, your own agent. One click inside PinVari connects Claude Code, Cursor, VS Code or Codex — or paste one CLI line from pinvari.com/connect.
PinVari → Connect → your agent (one click)Get PinVari — $39 →


