
Extensible, plugin-based debugging platform with runtime-loadable modules, DSL configuration, simultaneous session support, and type-safe serialized communication for customizable debugging workflows.
JetWhale is an extensible debugging tool inspired by Flipper.
It is built with Kotlin and Jetpack Compose, making it especially familiar and approachable for Kotlin / Android developers. Thanks to its Kotlin-first design, JetWhale can be introduced with a minimal learning curve.
adb reverse for you.[!NOTE] Under active development. Feedback is welcome as we work toward a stable release; the Plugin SDK APIs are not finalized and may still change.
📖 Documentation: https://kitakkun.github.io/JetWhale/
1. Install the host — download the installer for your OS from
the releases page (.dmg for macOS, .deb for
Linux, .msi for Windows), and launch it.
2. Add the runtime to the app you want to debug:
// build.gradle.kts
dependencies {
implementation("com.kitakkun.jetwhale:jetwhale-agent-runtime:<version>")
}3. Start a session as early as you can in your app's startup:
startJetWhale {
connection {
endpoints {
ws("localhost", 5080)
}
}
plugins {
// each inspector below is its own artifact; register the ones you want
}
}That is the whole integration — the app shows up in the host as soon as it runs.
See Getting Started for physical iOS devices, secure connections, and the rest.
The debugging tools themselves are plugins. These ship with JetWhale — install one into the host
from its plugin catalog, add the matching artifact to your app, and register it in
startJetWhale { }:
Plugins are ordinary Gradle projects built against the published SDK. One command gives you a hot-reload loop:
./gradlew :myPlugin:runJetWhaleHotIt downloads a real host for your OS, launches it with your plugin loaded, and reloads the plugin on every source change without restarting.
See Developing plugins for the full guide.
JetWhale is an extensible debugging tool inspired by Flipper.
It is built with Kotlin and Jetpack Compose, making it especially familiar and approachable for Kotlin / Android developers. Thanks to its Kotlin-first design, JetWhale can be introduced with a minimal learning curve.
adb reverse for you.[!NOTE] Under active development. Feedback is welcome as we work toward a stable release; the Plugin SDK APIs are not finalized and may still change.
📖 Documentation: https://kitakkun.github.io/JetWhale/
1. Install the host — download the installer for your OS from
the releases page (.dmg for macOS, .deb for
Linux, .msi for Windows), and launch it.
2. Add the runtime to the app you want to debug:
// build.gradle.kts
dependencies {
implementation("com.kitakkun.jetwhale:jetwhale-agent-runtime:<version>")
}3. Start a session as early as you can in your app's startup:
startJetWhale {
connection {
endpoints {
ws("localhost", 5080)
}
}
plugins {
// each inspector below is its own artifact; register the ones you want
}
}That is the whole integration — the app shows up in the host as soon as it runs.
See Getting Started for physical iOS devices, secure connections, and the rest.
The debugging tools themselves are plugins. These ship with JetWhale — install one into the host
from its plugin catalog, add the matching artifact to your app, and register it in
startJetWhale { }:
Plugins are ordinary Gradle projects built against the published SDK. One command gives you a hot-reload loop:
./gradlew :myPlugin:runJetWhaleHotIt downloads a real host for your OS, launches it with your plugin loaded, and reloads the plugin on every source change without restarting.
See Developing plugins for the full guide.