
Streamlines app debugging and inspection with a modular toolkit for managing logs, network traffic, databases, and file systems directly within applications. Offers customizable modules and easy integration.
Debugging doesn't have to be a headache.
Kick simplifies inspection and control across Android, iOS and desktop with a unified, modular toolkit built on Compose Multiplatform. Replace scattered utilities with a single customizable solution embedded right into your app—no more juggling separate tools, no more command-line headaches.
Effortlessly manage logs, network traffic, SQLite databases, file systems and multiplatform settings directly from within your application. Enable only what you need, easily extend functionality with custom modules and keep your app lean and efficient.
Less complexity, faster development, total visibility. That's Kick.
Kick.init
| Module | Description | Platforms |
|---|---|---|
| Ktor3 | Inspect HTTP traffic performed with Ktor3. | All |
| SQLDelight | View and edit SQLite databases via the SQLDelight adapter. | All |
| Room | View and edit SQLite databases via the Room adapter. | Android/iOS/JVM |
| Logging | Capture and filter logs directly in the viewer. | All |
| Firebase Cloud Messaging | Inspect push payloads from FCM and APNS. | Android/iOS |
| Firebase Analytics | Track analytics events and user properties in Kick. | Android/iOS |
| Multiplatform Settings | Browse and edit registered settings storages. | All |
| Control Panel | Add runtime inputs and actions for debug configuration. | All |
| File Explorer | Explore app files and cached data from Kick UI. | All |
| Layout | Inspect UI hierarchy, bounds, and view properties. | Android/iOS/JVM |
| Overlay | Show live debug metrics in a floating panel. | All |
| Runner | Run ad-hoc debug calls with pluggable renderers. | All |
Add the plugin and enable one module (FileExplorer):
plugins {
id("org.jetbrains.kotlin.multiplatform") version "2.1.21"
id("ru.bartwell.kick") version "1.0.0"
}
kick {
enabledAuto() // or enabled() / disabled()
modules {
fileExplorer()
}
}Then initialize Kick with one module:
// val context = androidContext.toPlatformContext() // For Android
// val context = getPlatformContext() // For iOS and desktop
// val context = platformContext() // In Compose
Kick.init(context) {
module(FileExplorerModule())
}enableKick(false) forces stub artifacts in the current Gradle build script (equivalent to disabled mode):
enableKick(false)-Pkick.enabled=true|false has highest priority and overrides both enableKick(...) and kick { enabledAuto() / enabled() / disabled() }.
Use Integration Wizard to generate ready-to-paste plugin configuration and initialization snippets for selected modules and platforms.
For full setup details (manual integration, advanced configuration, shortcuts, launching, and full module docs), see Advanced.
Contributions are welcome! Feel free to open issues or submit pull requests with improvements and new modules.
Copyright 2025 Artem Bazhanov
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Kick is distributed under the Apache License, Version 2.0.
Happy debugging! If you have any questions or need further assistance, feel free to open an issue.
Debugging doesn't have to be a headache.
Kick simplifies inspection and control across Android, iOS and desktop with a unified, modular toolkit built on Compose Multiplatform. Replace scattered utilities with a single customizable solution embedded right into your app—no more juggling separate tools, no more command-line headaches.
Effortlessly manage logs, network traffic, SQLite databases, file systems and multiplatform settings directly from within your application. Enable only what you need, easily extend functionality with custom modules and keep your app lean and efficient.
Less complexity, faster development, total visibility. That's Kick.
Kick.init
| Module | Description | Platforms |
|---|---|---|
| Ktor3 | Inspect HTTP traffic performed with Ktor3. | All |
| SQLDelight | View and edit SQLite databases via the SQLDelight adapter. | All |
| Room | View and edit SQLite databases via the Room adapter. | Android/iOS/JVM |
| Logging | Capture and filter logs directly in the viewer. | All |
| Firebase Cloud Messaging | Inspect push payloads from FCM and APNS. | Android/iOS |
| Firebase Analytics | Track analytics events and user properties in Kick. | Android/iOS |
| Multiplatform Settings | Browse and edit registered settings storages. | All |
| Control Panel | Add runtime inputs and actions for debug configuration. | All |
| File Explorer | Explore app files and cached data from Kick UI. | All |
| Layout | Inspect UI hierarchy, bounds, and view properties. | Android/iOS/JVM |
| Overlay | Show live debug metrics in a floating panel. | All |
| Runner | Run ad-hoc debug calls with pluggable renderers. | All |
Add the plugin and enable one module (FileExplorer):
plugins {
id("org.jetbrains.kotlin.multiplatform") version "2.1.21"
id("ru.bartwell.kick") version "1.0.0"
}
kick {
enabledAuto() // or enabled() / disabled()
modules {
fileExplorer()
}
}Then initialize Kick with one module:
// val context = androidContext.toPlatformContext() // For Android
// val context = getPlatformContext() // For iOS and desktop
// val context = platformContext() // In Compose
Kick.init(context) {
module(FileExplorerModule())
}enableKick(false) forces stub artifacts in the current Gradle build script (equivalent to disabled mode):
enableKick(false)-Pkick.enabled=true|false has highest priority and overrides both enableKick(...) and kick { enabledAuto() / enabled() / disabled() }.
Use Integration Wizard to generate ready-to-paste plugin configuration and initialization snippets for selected modules and platforms.
For full setup details (manual integration, advanced configuration, shortcuts, launching, and full module docs), see Advanced.
Contributions are welcome! Feel free to open issues or submit pull requests with improvements and new modules.
Copyright 2025 Artem Bazhanov
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Kick is distributed under the Apache License, Version 2.0.
Happy debugging! If you have any questions or need further assistance, feel free to open an issue.