v1.0.0 · Kotlin Multiplatform

See what your app
is really doing

Real-time observability for your debug builds. Traffic, traces, events, database state, errors — captured, streamed, and now accessible to your AI coding assistant via MCP.

debugImplementation("io.github.yashkasera:alohomora:1.0.0")
Android iOS Desktop
Dashboard
Traffic
Traces
Errors
Database
Traffic Detail
Response Body
Replay
Navigation
Git History
15
Inspection Panels
<10 KB
Release Overhead
2
Lines to Set Up
0
Init Code Needed
Built for the way debugging actually works
01

Nothing should be invisible

Every request, database write, event, and exception is captured and surfaced the moment it happens.

02

Seconds, not hours

Answer "what just happened?" immediately. No log archaeology. No rebuilding mental models.

03

Zero production cost

The noop artifact mirrors every method with empty bodies. R8 optimises it away completely.

04

No vendor lock-in

Depends on no tracing SDK. A ~15-line adapter bridges whatever tracer you already run.

Everything your debug build should show you

Unified inspection across every dimension of your running app, streamed to an in-app console and a desktop companion.

Traffic inspector

Traffic

Every outbound request captured with method, URL, status, latency, headers, and bodies. Auto-capture for OkHttp and Ktor.

Trace waterfall

Traces

Waterfall view of spans grouped by trace ID, nested by parent. Adapters for OpenTelemetry and Sentry.

Database inspector

Database

Browse tables, page through rows, view schema. Double-click any cell to edit values live on the device.

Mock rules editor

Mock Rules

Intercept requests and return custom responses. Template engine with generators. Import from HAR files.

Events timeline

Events

Searchable timeline of named events with timestamps and optional properties.

Error details

Errors

Uncaught exceptions captured automatically. Caught exceptions via recordError().

Cache inspector

Cache

Inspect SharedPreferences and NSUserDefaults. Encrypted entries flagged.

Feature flags

Feature Flags

Record and inspect feature flag state with source, type, and metadata.

Build config

Config

Branch, commit SHA, dirty flag, version, and build timestamp embedded by the Gradle plugin.

Git history

Git History

Last N commits injected at build time. SHA, message, author, and date.

Deep link builder

Deep Link Builder

Compose deep links with scheme, host, path, and query params. Fire on-device. History persisted.

MCP server settings

MCP Server

Expose captured data to AI coding assistants (Claude Code, Cursor) as read-only MCP tools over Streamable HTTP.

Traffic Replay

Edit and re-send captured requests through your own HTTP client. Signatures regenerated.

Edit & Re-send

Command Palette

Cmd/Ctrl+K to search and trigger any action. Navigate sections, toggle theme.

Keyboard-first · Desktop

Shake to Open

Shake the device to instantly open the debug console.

Android · iOS

Network Throttling

Simulate slow networks via local VPN. Edge, 3G, and Wi-Fi presets.

VPN · Interceptor · Presets
Debug everything, ship nothing

Two artifacts, same API. Your debug build gets full observability. Your release build gets empty method bodies that R8 optimises away.

alohomora-commonShared models, protocol, entities
alohomoradebugImplementation
alohomora-noopreleaseImplementation
Your App
TCP via ADB ↓
Desktop CompanionmacOS · Windows · Linux

Module structure

  • alohomora — Full debug-time library: Room DB, TCP server, Koin DI, Compose UI
  • alohomora-noop — Production no-op mirror. Same API, zero overhead. R8-optimised away.
  • alohomora-common — Shared data models, Room entities, binary protocol types
  • alohomora-ui — Shared Compose UI components including the trace waterfall
  • Gradle plugin — Code-generates build metadata from Git at build time
  • Desktop app — Standalone Compose Desktop companion. Connects via ADB.
Two lines, zero init code
build.gradle.kts
dependencies {
    debugImplementation("io.github.yashkasera:alohomora:1.0.0")
    releaseImplementation("io.github.yashkasera:alohomora-noop:1.0.0")
}

Android auto-initializes via AndroidX Startup. Shake the device to open the console.

Full observability or zero overhead
Capability alohomora (debug) alohomora-noop (release)
Network traffic capture No-op
Distributed trace spans No-op
Event recording No-op
Error capture + crash handler No-op
Database inspection No-op
Cache / prefs viewer No-op
Feature flags No-op
Traffic replay No-op
Mock rules + template engine No-op
Network throttling (VPN) No-op
Shake to open console No-op
MCP server for AI agents ✓ (desktop)
DevTools TCP server No-op
Runtime overhead Debug only Zero
APK size impact ~2 MB <10 KB
Start seeing what your app is doing

Two lines of Gradle. Zero lines of init code on Android.
Full observability in debug, nothing in release.