Skip to Content
v1.33.2 · shipped One-screen report · Looks like your app Read the changelog →

The bug mediator for AI-built apps

Your AI wrote it. Mushi tells you why it broke.

For solo builders who make apps with AI coding assistants such as Cursor or Claude Code. When a real user runs into a bug, they report it from inside your app. Mushi explains the cause in plain English and hands your AI assistant a fix to start from. It works on its own: you do not need Sentry or any other error-tracking service.

Every bug in one list, whether a user reported it or an error tracker caught it. Open source: the code is public on GitHub.

Free to start: 50 diagnoses a month, no credit card. Running it on your own server is free too. Star on GitHub

The problem it solves

AI coding assistants let one person build and ship an app in days. Then a real user hits something broken: a button that does nothing, a page in the wrong language, a score that shows 0. Often nothing crashed, so error monitoring (services such as Sentry that record when code fails) never notices. The user gives up or sends a vague message, and the builder loses an afternoon trying to understand code they did not write themselves.

Mushi closes that gap. The user’s report becomes a clear explanation and a fix your AI assistant can start from.

How it works

  1. Step 1Install in one clickConnect Mushi to your AI code editor with one of the buttons below, and add a small report button to your app with one command (npx mushi-mushi). You sign in through your browser; there is no key to copy and paste.
  2. Step 2Your users report bugsWhen something looks wrong, a user taps the report button and writes a sentence or two. Mushi attaches a screenshot and the technical trail behind it (recent browser errors and network calls), so the user never has to explain the tech. Alerts from error trackers such as Sentry can come in too.
  3. Step 3Mushi diagnoses it and opens a fix you reviewYou get the likely cause in plain English and a suggested fix in your editor. If you like, an AI coding agent writes the change as a pull request (a proposed code change that waits for your approval). A second AI reviews it first; you decide whether to merge it.

Add Mushi to your AI code editor

Claude Code
claude mcp add --transport http mushi https://kensaur.us/mushi-mushi/hosted-mcp/
Add the report button to your app
npx mushi-mushi

No key to paste. The first time your editor calls Mushi, your browser opens so you can sign in (or sign up free). Then you choose which of your apps it may see.

A real example from our own sites

This happened on the websites run by Kensaurus, the company behind Mushi. Mushi’s site audit, an automatic weekly check of every page, found two problems that no error alert had caught:

  • an “Edit this page” link that led nowhere, and
  • Japanese text showing up on English pages.

Nothing had crashed, so ordinary monitoring stayed quiet. Mushi filed each problem as a bug report. Within the hour, an AI coding agent in Cursor had written the fixes and opened them as pull requests: proposed code changes that wait for approval. A second AI, Claude Opus, reviewed each change and approved it before it was merged.

What this is (and is not)

Mushi Mushi is the bug mediator for AI-built apps, an open-source tool that gives every bug your users report a plain-English diagnosis + a ready fix, in your editor.

Who it is for. Solo founders who build with AI tools and then lose whole afternoons fixing code they did not fully write themselves. People who work this way are often called vibe coders. It works inside your code editor, not as yet another dashboard to check. Sentry, Linear and Slack can feed into the same list, but you need none of them to start.

A few words you will see on this page:

  • SDK: the small piece of code you add to your app. It shows the report button and sends reports to Mushi.
  • Diagnosis: Mushi’s written explanation of one bug, with how serious it is, the likely cause and a suggested fix.
  • MCP: the standard way AI code editors such as Cursor and Claude Code connect to outside tools. It is how your editor reads Mushi’s reports.
  • Pull request (PR): a proposed change to your code that waits for you to approve and merge it.
  • Self-host: run Mushi on your own server instead of using the hosted service.

Where it stands today

Mushi Mushi is live and free to try. The hosted service runs at kensaur.us/mushi-mushi, the libraries are published on npm, and the source code is public on GitHub. It is built by Kensaurus 合同会社, a small company in Japan, and runs on the company’s own apps and sites. The native iOS, Android and Flutter libraries are still previews.

This is what a diagnosis looks like

A user writes one or two sentences about what went wrong. Mushi reads them together with the screenshot and the technical log from their browser, and writes back a plain-English title, how serious it is, the likely cause and a suggested fix. Below is a real one.

The report
After finishing the daily lesson the celebration sheet shows '+0 XP earned today' but my streak counter on the home screen incremented by 1. … Also the haptic 'tada' on the celebration sheet that used to fire is silent now. …
Mushi’s diagnosis

Celebration screen shows +0 XP and haptic feedback is silent after lesson

  • severity high
  • category bug
  • confidence 0.82
Likely cause
… The XP value passed to the CelebrationSheet is read from state or props before the XP award async operation resolves, resulting in a stale 0 value being displayed … The haptic 'tada' feedback call is either gated on the XP value being non-zero, is invoked before the component is fully mounted, or … missing/unreachable on this code path entirely.
Suggested fix
… Ensure the XP earned value is sourced from the resolved result of the lesson-completion API call … Guard against rendering '0' as a fallback when the value is undefined/null — use a loading indicator instead. … Verify the haptic 'tada' trigger is called unconditionally on sheet presentation … and is not gated behind the XP value being truthy.
In your editor
Your AI assistant asks Mushi for the report (the get_fix_context tool) and gets one fix prompt, ready to paste: this diagnosis, the steps to reproduce the bug, the suggested fix and the relevant code. You do not need an AI key of your own for this.
Pull a diagnosis into Cursor or Claude Code →
Real classifier output from the public demo project, 2026-09-20, trimmed where marked with an ellipsis (numbering and headings inside the answer included). The report itself is a sample we wrote to resemble a real one. A diagnosis is a model’s reading and can be wrong; check it before you merge.

What happens after a user reports something

Step 1

User reports

On glot.it, a Thai-learning app we run, a learner shakes the phone instead of emailing support. Mushi keeps a picture of the screen and what they were doing.

Step 2

Plain read

How serious it is and what probably caused it, in everyday English instead of a wall of error code.

Step 3

One row

Twenty people reporting the same broken checkout button become one item, not twenty.

Step 4

Draft PR

Optional: an AI coding agent proposes the fix as a pull request, and a second AI reviews it. You merge it, edit it or ignore it.

Get started in 60 seconds

Run one command in your project. A setup wizard works out which framework your app is built with, installs the Mushi SDK (the small library that adds the report button), saves your settings and prints the one snippet to paste. When something breaks for a real user, the report lands in your Mushi list with a plain-English read on the cause and what to change. Your AI editor can read it directly over MCP, the standard way AI editors connect to outside tools.

npx mushi-mushi
detects framework · writes env · prints snippet
npx mushi-mushi setup --ide cursor
ask Cursor: "what's broken in prod?"

50 diagnoses a month on the free plan, no card needed. You can also run it on your own server in under five minutes.

See it in action

The Mushi dashboard, the report button on a real app (glot.it), and light and dark screenshots. Click a picture to open the live page.
Bug list · the web dashboard, for when you want the whole list of bugs in front of you · · open live demo ↗
Real users · a shake or tap sends a report on glot.it, a Thai-learning app we run · · open live demo ↗
Dashboard· the same overview in light and dark mode · · open live demo ↗
One report· the screenshot, the plain-English read and the fix history · · open live demo ↗

Get started

Pick the card that matches what you are doing right now. Each one links to the right next step.

Install it in your app

A first diagnosis usually arrives in about 10 seconds. Pick a starting point:

Works with Sentry, or without it

Sentry is a popular service that records errors when an app’s code crashes. Many developers already use it, and Mushi does not ask you to give it up.

Sentry is built around what the code threw, with a User Feedback widget and replay alongside. Mushi starts from what the user reported, ingests Sentry’s errors too, explains each one in plain English, and hands your agent a fix prompt to start from. With or without Sentry.

Sentry is one way in among several. Bugs come in from your users, your monitoring tools and even your voice; fixes and status updates go out to your editor, your AI coding agents, your task tracker and your team chat. Nothing has to be ripped out.

QuestionSentry aloneMushi
What it seesErrors and performance, plus Session Replay and a User Feedback widgetUser reports from the widget with a screenshot, plus the errors Sentry catches, in one queue
What lands in your queueA stack trace (the technical record of where the code failed)A short user note plus the screenshot they were looking at
Repeat bugsRepeat events of the same error group into one issueRepeat user reports of the same broken button collapse to one row, even when nothing threw
What you learn from fixesA resolved issue reopens as a regression if it recurs; there is no lessons file for your editorPast fixes become rules your editor sees on the next PR (.mushi/lessons.json)
Closing the loopResolve by hand, from a commit that references the issue, or in a release; Seer, the paid AI debugging add-on, is on Team and aboveA draft PR from your agent; merging it resolves the linked Linear issue, and the linked Sentry issue once the Sentry plugin is on (Indie and above, or self-hosted)
Reporter attributionThe user you set with setUser, or the name and email on a feedback submission; no credit when it is fixed"Fixed by Kenji" in the changelog and an SDK toast, once Releases is enabled
From your IDESentry's MCP server lets Cursor or Claude Code read issues and ask SeerCursor reads the report and the relevant lessons, then proposes the code change
Where it runsTheir cloud, or yours with getsentry/self-hosted (no Seer)Yours, ours, or both

For the technical detail, see Concepts → Architecture: the full sequence diagram and a component-by-component spec.

What it costs

You pay per diagnosis (one bug that Mushi explains), not for every error it sees. Duplicate reports and noise are filtered out for free. Every paid plan has a spending cap, so the bill cannot run away.

  • Free Cloud$0Diagnoses: 50 / mo
  • Indie$15 / moDiagnoses: 500 / mo
  • Pro$49 / moDiagnoses: 2,000 / mo
  • Self-hostFree foreverDiagnoses: Unlimited (your own AI key)
Full pricing and the estimator →

Frequently asked questions

A bug-report inbox with an AI that explains each bug. People who use your app can report a problem with one tap. Mushi turns each report into a short, plain-English explanation of what went wrong and how to fix it, and sends that to the AI assistant in your code editor so the fix can start right away. The name comes from 虫 (mushi), the Japanese word for "bug" or "insect".

Try it on your own app

Setting it up for a team, with single sign-on (SSO) or audit logs? The operator notes on GitHub cover that. Operators docs →

Shipped an app that an AI mostly wrote, and hear about bugs from users? Tell us what you do with those messages today. GitHub Discussions →