Dartmole
The Dartmole app icon

Investigate your Flutter app’s network calls.

Dartmole is a man-in-the-middle (MITM) proxy, intended for debugging internal builds of your Flutter apps. Intercept their calls over HTTPS and provide mock responses.

Download for Mac

Version 0.1.1 · macOS 12 or later · Apple silicon

Pairs with a QR code

Add dartmole_plugin, scan the code Dartmole shows, and the app’s Dart HTTP calls go through Dartmole. Only that app: the rest of the device is left alone.

TLS stays on

The plugin trusts Dartmole’s certificate for its own client, from the moment you pair. It never switches certificate checks off, and nothing is compiled into your app.

Every call, readable

Method, status, timing, headers and query parameters at a glance, and JSON bodies as a tree you can fold and search.

Mocks live in your repo

Answer a call with a canned response or an error. Mocks are plain files in .dartmole/mocks, so they are reviewed in pull requests and shared by pulling.

Get started

  1. Install Dartmole

    Open the DMG and drag Dartmole to Applications. It starts its proxy as soon as it opens.

  2. Add the plugin to your app

    In pubspec.yaml:

    pubspec.yaml
    dependencies:
      dartmole_plugin: ^0.2.0

    Or run flutter pub add dartmole_plugin. It is on pub.dev.

    Give your HTTP library Dartmole().createHttpClient(), and put DartmoleSettings in a debug menu so testers can pair.

    Keep both to your internal builds, with a separate entry point such as main_debug.dart, so the store version never offers to pair. How.

  3. Pair

    In Dartmole, open Devices. On the phone, tap Scan QR code. The phone and the Mac need to be on the same network.

Read the full guide: platform setup, Dio and http, internal builds, mocks →