All checks were successful
Beta Release / beta (push) Successful in 1m23s
- Remove 'sidePanel' permission from Firefox build (Chrome-only MV3) - Fix CI upload loop matching extension zips twice via dist/*.zip 💘 Generated with Crush Assisted-by: GLM-5.1 via Crush <crush@charm.land>
Muyue Browser Extension
AI-powered browser testing & automation, connected to your Muyue desktop app.
What it does
- Auto-injects the Muyue test client on every page — no more manual snippet copy-paste
- Captures console errors/warnings in real-time, sent to the AI Studio
- Enables AI-driven testing: click buttons, fill inputs, evaluate JS, take screenshots
- Side Panel (Chrome/Edge) and Sidebar (Firefox) for status monitoring
- Native screenshots via
chrome.tabs.captureVisibleTab— pixel-perfect, no SVG hacks - URL change detection via History API interception (survives SPA navigation)
- Badge indicator: shows connected session count or server status
Install
Chrome / Edge
- Run
npm run build - Open
chrome://extensions→ Enable Developer mode - Click Load unpacked → select
extension/.output/chrome-mv3/
Or install the published extension from the Chrome Web Store.
Firefox
- Run
npm run build:firefox - Open
about:debugging#/runtime/this-firefox - Click Load temporary Add-on → select any file in
extension/.output/firefox-mv2/
Development
cd extension
npm install
npm run dev # Chrome dev mode with HMR
npm run dev -- --browser firefox # Firefox dev mode
Build
npm run build # Chrome/Edge MV3 → .output/chrome-mv3/
npm run build:firefox # Firefox MV2 → .output/firefox-mv2/
npm run zip # Chrome .zip for Web Store
npm run zip:firefox # Firefox .zip + sources .zip
Architecture
┌─────────────────────────────────────────────────────┐
│ Content Script (every HTTP/HTTPS page) │
│ - Console interception (log/warn/error) │
│ - RPC execution (click, type, eval, list) │
│ - URL change detection (History API + MutationObs) │
│ - WebSocket → Muyue server (same as snippet) │
└──────────────┬──────────────────────────────────────┘
│ chrome.runtime messaging
┌──────────────┴──────────────────────────────────────┐
│ Background Service Worker │
│ - Token management (GET /api/test/snippet) │
│ - Native screenshots (captureVisibleTab) │
│ - Badge updates (session count / server status) │
│ - chrome.alarms for periodic health checks │
└──────────────────────────────────────────────────────┘
┌──────────────────┐ ┌──────────────────┐
│ Popup │ │ Side Panel │
│ - Server status │ │ - Sessions list │
│ - Session count │ │ - Auto-refresh │
│ - Dashboard link │ │ - Dashboard link │
└──────────────────┘ └──────────────────┘
Compatibility
| Browser | Manifest | Side Panel | Screenshots |
|---|---|---|---|
| Chrome 89+ | MV3 | ✅ sidePanel API | ✅ captureVisibleTab |
| Edge 89+ | MV3 | ✅ sidePanel API | ✅ captureVisibleTab |
| Firefox | MV2 | ✅ sidebar API | ✅ tabs.captureVisibleTab |