Manage apps
Route: /projects (sidebar: Apps › Manage apps)
Scenario: You’re setting up Mushi Mushi for a new mobile app. You need to create the project, grab an API key, paste the install snippet into your codebase, and send a test report to confirm everything is wired up, all before your next PR review.
This page handles the full project lifecycle: create, configure, monitor, and (if needed) delete. It has three tabs: Overview, Your projects (one card per project) and New project.
Project card
Each project gets a card showing:
| Field | Description |
|---|---|
| Name | Rename edits it inline. Renaming does not change the slug or any URLs. |
| SDK version badge | ok, outdated, deprecated, or unknown |
| PDCA bottleneck | Chip showing where reports are stuck in the loop (classify → fix → verify) |
| Repo strip | Connected repo URL, default branch, index health (ok / stale / failed / off / never), indexed file count |
| 30-day severity chips | Count of critical / major / minor / trivial reports |
| 7-day report trend | Arrow indicating whether report volume is rising or falling |
| Sentry connected | Badge if a Sentry DSN is wired in |
| Plan tier + region | The project’s current plan and data-residency region |
Creating a project
Use the New project tab here, or Set up:
- Enter a name and click Create project.
- A success panel appears with your Project ID (UUID), the
report:writekey that was made for you, and a prefilledmushi initcommand. - If no key was made, click Generate API key. SDK keys are made here or on Set up, not in Settings (Settings → AI keys is for your own provider keys).
When the CLI wizard opens your browser, it lands on ?setup=cli with the same success panel flow.
Local dev console: http://localhost:6464 after pnpm dev. Override with MUSHI_CONSOLE_URL in the CLI. See CLI ↔ console loop.
API keys
Each project card lists its API keys:
| Column | Description |
|---|---|
| Prefix | The start of the key (the full key is only shown once, at creation) |
| Scopes | What the key may do (see the presets below) |
| Created | Timestamp |
| Revoke | Confirmation, then an undo toast for 8 seconds before the key stops working |
Generate a key:
- Pick a scope preset: SDK ingest, MCP read-only, MCP read + write, Voice intake, Runner health or Local worker.
- Click Generate API key.
- Copy the key immediately. It is only shown once in plaintext.
SDK ingest keys are for use in your frontend/mobile SDK. MCP read + write keys grant write access to Mushi Mushi via MCP tools: treat them like a service-role key and store them only in server-side environments.
SDK install configurator
Each project card includes a live SDK snippet configurator, with the in-widget assistant settings under it:
- Framework tabs: a script tag, React, Vue, Svelte, React Native, Expo, Capacitor, Node, Express, Fastify, Hono and plain JavaScript
- Position picker: where the feedback button appears on screen
- Theme: light / dark / system
- Copy snippet: copies the ready-to-paste install code
Send test report
Click Send test report on any project card to fire a synthetic report through the full ingest pipeline. It checks ingest only and does not mark the SDK as installed. The result appears as a new row on Bugs. Test reports are limited to 10 per user per hour.
Deleting a project
Delete the project, type its slug in the confirmation dialog, and confirm. An undo toast gives you 8 seconds to change your mind; only owners and admins can delete. After that, deletion is irreversible: all reports, fix attempts and QA stories for the project are removed.
Common tasks
Connecting a new app (5 minutes)
- On New project (or the first screen of Set up), enter a project name and create it.
- Copy the Project ID and the key from the success panel. If no key was made,
use Generate API key (
report:write) and copy it immediately. - In your app repo run
MUSHI_API_KEY=<key> mushi connect --project-id <uuid> --endpoint <api-url> --wait(ormushi init --project-id <uuid>).--project-idand--endpointare required. - Click Send test report to confirm reports arrive.
Sharing with a teammate who only needs read access via AI
- Select the MCP read-only preset → Generate API key.
- Share the key; they configure it in their AI assistant using the snippet on the Editor agents page.
Rotating a compromised key
- Revoke the exposed key and confirm. It stops working once the 8-second undo toast closes.
- Generate a new key with the same scope.
- Update the key in your app’s environment variables.
- Click Send test report to confirm the new key works.
Actions at a glance
| Action | Where |
|---|---|
| Create project | New project tab → name → Create project |
| Rename | Rename → edit inline → Save / Cancel |
| Switch to (set active) | Switch to button on the card |
| Jump to Reports | Reports link chip |
| Jump to Integrations | Integrations link chip |
| Jump to Settings | Settings link chip |
API
GET /v1/admin/projects
POST /v1/admin/projects { name }
PATCH /v1/admin/projects/:id { name }
DELETE /v1/admin/projects/:id { confirm_slug }
POST /v1/admin/projects/:id/keys { scopes?, label? } (scopes default to ['report:write'])
DELETE /v1/admin/projects/:id/keys/:keyId
POST /v1/admin/projects/:id/test-reportRelated pages
- Set up: guided first-project setup wizard
- Settings: your own AI keys and SDK settings
- Editor agents (MCP): MCP key usage and tool catalogue