Mushi Mushi

The bug mediator for AI-built apps: plain-English diagnosis + a ready fix, in your editor.

AI & MLTypeScriptv0.28.0

Mushi Mushi

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

When a user hits a bug, Mushi explains the cause in plain English and hands your editor a fix to start from.
Built for the vibe coder who ships fast with Cursor, Claude Code, Lovable or Bolt, so a bug costs five minutes instead of an afternoon.

Add to Cursor Try the demo — no signup npm Server OpenSSF Scorecard npm provenance

Quick start · How it works · Docs · Demo · Why not Sentry? · Self-host · Vision

Report detail — plain-English root cause, confidence chip, paste-ready Cursor fix prompt, and PDCA receipt strip.

↑ a diagnosis: the root cause in plain English and a paste-ready fix prompt. Click to open the read-only demo.

How it works

flowchart LR
    U["Your users<br/>tap the bug widget"] --> M
    S["Your monitoring<br/>Sentry, Crashlytics… (optional)"] -.-> M
    M["Mushi<br/>one queue · diagnosis · fix"] --> E["Your editor or agent<br/>Cursor, Claude Code (MCP)"]
    E --> P["Draft PR<br/>you review it"]
    P --> R["Release<br/>report closes, user is told"]
  1. Capture. A user taps the widget. Mushi records a screenshot, the route, their note, and the last console and network events.
  2. Diagnose. Mushi writes the root cause in plain English with a fix prompt. Twenty reports of the same broken button become one row.
  3. Fix. Your editor reads the diagnosis over MCP. If you want, an agent opens a draft PR that you review like any other.

It catches the bugs that never throw an error: the pay button hidden under the keyboard, the Save button tapped twice because nothing happened, the dashboard that takes 12 seconds.

Quick start

npx mushi-mushi                      # detects your framework, installs the SDK, writes env vars, sends a test report
npx mushi-mushi setup --ide cursor   # or --ide claude: your editor can now read diagnoses

Then ask your editor: "what's broken in prod?"

The SDK needs two env vars (VITE_MUSHI_PROJECT_ID / VITE_MUSHI_API_KEY, or NEXT_PUBLIC_MUSHI_*; see examples/sdk.env.example). No Sentry, no LLM key, no monitoring stack. The hosted free tier covers 50 diagnoses a month with no card, or you can self-host.

Let your AI editor do the setup

Paste this into Cursor or Claude Code:

Install the Mushi skills from github.com/kensaurus/mushi-mushi (npx skills add kensaurus/mushi-mushi), then run the mushi-setup skill to wire the Mushi SDK and MCP server into this app and send a test report to verify the connection.

The skills also add /mushi-debug (why ingest or MCP fails), /mushi-health (pass/fail across CLI, API and keys) and /mushi-integration (fix dispatch and the two-way loop).

Add it by hand (React shown; Vue, Svelte, Angular, React Native, vanilla JS, native)
import { MushiProvider } from '@mushi-mushi/react';

export function App() {
  return (
    <MushiProvider config={{ projectId: 'proj_xxx', apiKey: 'mushi_xxx' }}>
      <YourApp />
    </MushiProvider>
  );
}
import { MushiPlugin } from '@mushi-mushi/vue';        // Vue 3 / Nuxt: app.use(MushiPlugin, { projectId, apiKey })
import { initMushi } from '@mushi-mushi/svelte';       // Svelte / SvelteKit: initMushi({ projectId, apiKey })
import { provideMushi } from '@mushi-mushi/angular';   // Angular 17+: providers: [provideMushi({ projectId, apiKey })]
import { MushiProvider } from '@mushi-mushi/react-native';
import { Mushi } from '@mushi-mushi/web';              // any framework: Mushi.init({ projectId, apiKey })

Native SDKs (iOS, Android, Flutter) are a preview and install from this repository: see packages/ios, packages/android and packages/flutter. A runnable demo lives in examples/react-demo.

What's inside

PackageForWhat it does
mushi-mushiSetupOne-command wizard (npx mushi-mushi)
@mushi-mushi/react, vue, svelte, angular, react-native, capacitorYour appThe bug widget for your framework
@mushi-mushi/webYour appThe same widget for any site, no framework needed
@mushi-mushi/nodeYour serverReports backend errors into the same queue
@mushi-mushi/mcpYour editorGives Cursor and Claude Code the diagnosis and fix tools
@mushi-mushi/cliYour terminalSetup, reports, fixes and health checks
@mushi-mushi/uxYour app's screensRuns your coding agent over every screen and keeps only measured improvements
packages/serverBackendSupabase edge functions + Postgres. Hosted for you, or self-host

Full list and maturity: SDK reference. Architecture: how the pipeline fits together.

Why not just Sentry?

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. One queue, with or without Sentry.

MushiSentry
CatchesThrown errors and silent UX bugs (dead clicks, slow screens, broken layouts)Thrown errors, performance traces
You getA plain-English root cause and a fix prompt, in your editorA stack trace and breadcrumbs, in a dashboard
Auto-fixOptional: an agent opens a draft PRSeer add-on (paid)
SetupOne command that signs you in through the browser; the demo needs no accountSDK + DSN + dashboard

It works with what you already run. Point a Sentry alert webhook at /v1/webhooks/sentry?projectId=<id> and errors land in the same queue. Merging a Mushi fix resolves the Sentry issue, and the reverse. Adapters also bring in Datadog, Bugsnag, Rollbar, Crashlytics and others. Plugins keep Linear, Jira, GitHub Issues, Slack, Discord, Teams and PagerDuty in sync. Nothing gets ripped out. Details: Sentry vs Mushi.

Self-host

cd deploy && cp .env.example .env   # add ANTHROPIC_API_KEY and your Supabase credentials
docker compose up -d

Walkthroughs: SELF_HOSTED.md and Docker Compose guide. Self-hosting is bring-your-own-key: you pay your LLM vendor at list price. The hosted service needs no key; it bills per diagnosis with a spend cap (pricing). Teams wiring Mushi into an existing stack (SSO, retention, region routing, Kubernetes) start at docs/operators/. Only the public api function should face the internet: see internal caller authentication.

Where it stops

AreaStill partial
Native SDKsiOS, Android and Flutter are previews, not yet on CocoaPods, Maven Central or pub.dev
Fine-tuningOpenAI and Bedrock work. Anthropic fine-tuning is not self-service, so its adapter links to the access form
Knowledge graphSQL adjacency everywhere. Apache AGE only where the extension is installed (not managed Supabase)
Inventory and QA gatesBehind Advanced mode and the inventory_v2 plan flag
Multi-regionRegion pinning works. Active/active write replication is not automated

Repo at a glance (run pnpm docs-stats): ~521K TS lines · 2,407 source files · 45 workspace / 37 npm packages · 65 edge functions · 469 SQL migrations · 19 pipeline agents. Full tour: docs/SCREENSHOTS.md.

Community and contributing

Questions and show-and-tell: GitHub Discussions. Bugs: Issues (first reply within 24 hours on weekdays). Security: SECURITY.md. Anything else private: kensaurus@gmail.com.

git clone https://github.com/kensaurus/mushi-mushi.git && cd mushi-mushi
pnpm install && pnpm dev   # Node ≥ 22, pnpm ≥ 10

See CONTRIBUTING.md and docs/stats.md.

License

Open core. Each package directory's own LICENSE governs that package; the root LICENSE states the split.

PartLicenseIn short
SDKs, CLI, MCP, plugins, adaptersMITUse anywhere, including closed-source products
Server (server, agents, verify)AGPLv3Self-host and modify freely. Offer a modified server as a service: publish your changes or get a commercial license
Enterprise features (packages/server/ee/)EE licenseSSO, audit ingest, retention, region pinning. Paid for production use
Name and logoTrademark policyForks must rename

Third-party notices: NOTICE.

More from KENSAURUS

AppWhat it is
Glot ItLearn Thai — bite-size lessons, smart flashcards, and an AI tutor
yen-yenWhere did the money go? Now you'll know. A kakeibo for households
The Wanting MindHow the Battle Between Extraction and Generation Is Reshaping Our World — a 147,000-word interactive webbook with 268 concepts, 242 citations, and original illustrations
Help Her Take PhotoPair phones, direct the pose, nail the photo
Cooler HeadsPractice hard conversations before you have them
一人社長 Solo BossBookkeeping and tax-filing co-pilot for one-person companies in Japan
Tsumagoi Work&Camp 嬬恋牧場Coworking camp at 1,444 m — Instagram · Facebook · Maps
kenji skillsAgent skills and slash commands for Claude Code, Cursor, Codex, and Gemini
KENSAURUSEverything else built under the same roof

All apps live under kensaur.us.


If Mushi helped, star the repo so the next vibe coder finds it. Open an issue · Follow on Bluesky

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @mushi-mushi/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-kensaurus-mushi-mushi": {
      "command": "npx",
      "args": [
        "-y",
        "@mushi-mushi/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@mushi-mushi/mcpnpm

Compatible MCP Clients

Mushi Mushi works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More