Muck with your network.
Zero certs required.

The missing mocking sidekick for OkHttp. Intercept, pause, and inject mock API responses on Android in real time — via phone WebView, desktop browser, CLI, or automated CDP scripts.

bash — one-command automated demo & dashboard
$ git clone https://github.com/yongjhih/mucker.git && cd mucker && npm run demo

[1/5] Checking connected Android devices...
✔ Found active Android device/emulator: Pixel_8_Pro (API 34)
[2/5] Compiling and installing Mucker Demo App (:app:installDebug)...
✔ BUILD SUCCESSFUL in 2.6s (APK installed on device)
[3/5] Forwarding ADB port 8080 (tcp:8080 -> tcp:8080)...
✔ Port forward active: localhost:8080 -> device:8080
[4/5] Launching Demo Application on device (io.github.mucker.demo)...
[5/5] Launching Mucker Web Dashboard in your browser...
✔ Mucker is now live at http://localhost:8080!
Press endpoint buttons in the Android app to watch requests stream live onto the timeline!

🚀 60-Second Instant Experience

Zero configuration, zero certificate installation. Run the demo locally in one command, or launch entirely in your browser with GitHub Codespaces.

☁️ Zero-Install Cloud 1-Click Browser

GitHub Codespaces / Dev Container

Don't have Android Studio, JDK 17, or Android SDK installed on your machine? Run everything inside a pre-built cloud container with zero local dependencies.

Open in GitHub Codespaces
  • ✓ Pre-configured with Ubuntu 24.04, OpenJDK 17, Android SDK 34, Node 22
  • ✓ Auto-runs ./gradlew :app:assembleDebug on container creation
  • ✓ Automatically forwards port 8080 for web dashboard preview
  • ✓ Also supports VS Code Remote - Containers locally
🎭 QA & CI/CD Chaos Automated Testing

Playwright / Puppeteer Chaos

Randomly inject HTTP 500 errors and 504 timeouts into native Android OkHttp in CI/CD using standard Node.js scripts without root or CA certificates.

npm run chaos:playwright
  • ✓ Connects over CDP (chromium.connectOverCDP)
  • ✓ Random fault injection: HTTP 500, 504 Timeout, 429 Rate Limit
  • ✓ Verifies app recovery, retry buttons, and error UI in CI/CD
  • ✓ Zero certificates or proxy servers to maintain
✏️ Direct In-Place Editing Impeccable UX

Zero-Friction Live Mocking

No extra "Enter Edit Mode" button barrier. Select any network request from the list and immediately edit its JSON response payload in-place.

⌘S / Ctrl+Enter to Save Mock Rule
  • ✓ Embedded CodeMirror editor with syntax highlighting & code folding
  • ✓ Direct click-to-edit with instant ● Unsaved state tracking
  • ✓ Bi-directional hover link: highlights waterfall bar & guide timeline
  • ✓ One-click JSON formatting, copying, and reverting

Live Dashboard & Inspector Showcase

Watch network requests stream onto the waterfall timeline, inspect headers, and edit mock responses in-place.

http://localhost:8080 — Mucker Web Dashboard
Mucker Desktop Web Dashboard with Live CodeMirror Mock Editor
Direct In-Place Response Editing: Click any request and edit JSON immediately in CodeMirror without any "Enter Edit Mode" button barrier. Press ⌘S / Ctrl+Enter to activate the mock rule live. Open Live Demo →
http://localhost:8080 — Waterfall Bi-Directional Hover
Mucker Timeline Waterfall with Vivid Hover Highlight
Bi-Directional Hover Guideline: Hovering any list item dims background bars, projects a vertical dashed cyan guide, displays a ruler timestamp badge (+1.87s), and renders a floating popover tooltip.
Android Notification > In-App WebView
Mucker In-App WebView Dashboard on Android
Mucker Demo App (MainActivity)
Mucker Native Demo App with Test Buttons
Zero Setup on Phone: Tap the "Mucker Active" system notification to open the full dashboard in an in-app WebView without leaving your app, or test endpoints directly in the demo.

Why Mucker?

Solving the fundamental pain points of mobile network inspection and mocking.

Zero CA Certificates

No more struggling with Android 7.0+ user certificate restrictions or modifying network_security_config.xml. Intercepts directly in the OkHttp application layer.

Native Chrome DevTools (CDP)

Full support for the modern CDP Fetch Domain (Fetch.enable, Fetch.requestPaused, Fetch.fulfillRequest). Connect via Puppeteer, Playwright, or browser.

In-App + Desktop Web Dashboard

Click the system notification on your phone to open the in-app WebView, or open http://<phone-ip>:8080 on your laptop. Same impeccable real-time SPA dashboard.

Zero Native C++ Drag

Unlike Flipper which dragged in OpenSSL, Boost, and Folly C++ libraries that broke builds, Mucker is 100% lightweight Kotlin with zero build overhead and safe no-op stubs.

Live Breakpoint Interception

Pause requests in mid-air! Inspect request payload, tweak response body, modify status codes, and click Fulfill or Pass Through with automatic safe timeout protection.

Mucker CLI & AI Skills

Drive mocking directly from terminal or AI coding agents. One command to forward ports, add latency rules, stream live traffic, and mock payment failures.

Modular Dashboard & BYOF

Decoupled and open. Plug in custom panels (GraphQL, Chaos) or rewrite the frontend with React, Vue, or Svelte and bundle it into your APK.

End-to-End Workflow

Zero-configuration synchronization between OkHttp, the Embedded Micro-Server, and developer clients.

flowchart TD subgraph AndroidApp["Android App Runtime (OkHttp)"] direction TB OK["OkHttp Client"] -->|intercept| MI["MuckerInterceptor"] MI -->|1. match rule| ME["MockEngine"] ME -->|mock response| MI MI -.->|2. bypass| RemoteAPI[("Remote Backend")] ME <-->|sync & events| MS["MuckerHttpServer (Port 8080)"] end subgraph Clients["Developer Clients (Zero Certs Required)"] direction TB CLI["Mucker CLI (forward / listen)"] SPA["Web Dashboard (Waterfall & Editor)"] CDP["Playwright / Puppeteer (CDP Fetch Chaos)"] InApp["Mobile Notification & In-App WebView"] end MS <== "HTTP REST & WebSocket (CDP)" ==> Clients