Skip to content
@appinspect

AppInspect

In-app inspector SDK for Android

AppInspect

An in-app inspector for Android. Network traffic, response mocking, storage, background work, crashes and a live logcat tail — inside your own debug builds. No proxy, no certificate, no desktop client, no adb cable.

dependencies {
    debugImplementation("io.github.appinspect:appinspect:1.0.0")
    releaseImplementation("io.github.appinspect:appinspect-no-op:1.0.0")
}

That's the whole setup. AppInspect initialises itself through AndroidX Startup — no Application subclass, no manifest change, every panel on by default. Open it by shaking the device, from the launcher shortcut, a long press, or AppInspect.open(context).

Network capture is the one thing you wire up: add .addAppInspectInterceptor() to your OkHttpClient builder, last in the chain.

  • 📖 Documentation — install guide, panel reference, security model
  • ▶️ Sample app — a real Android project with the library wired in. Clone, run, see everything in five minutes.
  • 📦 Maven Centralio.github.appinspect

What you can inspect

Network Every OkHttp call, with filters and full-text search. Export as cURL, .txt, or HAR 1.2.
Mocks Replace any live response — status, headers, body, delay, simulated timeout. Build a rule from a captured call, or commit a shared mocks.json.
Storage SharedPreferences (encrypted ones decrypted for viewing), Jetpack DataStore, SQLite and Room with an optional SQL console.
WorkManager Every persisted work spec with state, constraints, attempts, backoff, input/output data and last stop reason.
Crashes and ANRs Uncaught exceptions captured before the process dies; ANRs and native crashes reported on next launch (Android 11+, with the OS thread dump).
Logcat Live, filterable tail of your own process. No cable, no permission, nothing written to disk.
Runtime App, device and session metadata — the details a bug report always asks for.
Value viewer Full-screen JSON tree for any large payload, from any panel.

Not in your release build

Release builds depend on appinspect-no-op: roughly 8 KB, four classes that do nothing, a manifest with no components and no permissions, and no reference to any android.* API. Your code still compiles against it — there is simply no inspection code in the APK.

That's verified, not just intended: the release pipeline opens the packaged artifact and blocks publishing if a component, permission, resource or unexpected class has crept in.

A second, independent layer covers a mis-wired dependency. Even the full library checks whether the build is debuggable, and turns itself off if it isn't — no database, no crash handler, nothing captured, every open() refused.

Read the security model →


Good to know

  • Android 7.0+ (API 24). ANR and native crash detection need Android 11+.
  • No Compose or Kotlin required in your app — the Compose UI is precompiled into the artifact. View/XML and Java-only hosts work unchanged.
  • Works in staging, UAT and internal-test variants — AppInspect looks at whether the build is debuggable, not at variant names. One line opts in a non-debuggable variant.
  • Nothing leaves the device. No telemetry, no network calls of its own, no account.
  • No root, no special permissions.

Maintainer

Built and maintained by Suryansh Prajapati. Suggestions, bug reports and doc corrections are welcome.

Apache License 2.0

Popular repositories Loading

  1. AppInspect-Sample-App AppInspect-Sample-App Public

    AppInspect is a Gradle dependency that adds a full-screen inspector to your own debug builds. Open it on the device to read the calls your app just made, replace any response on the spot, and check…

    Kotlin

  2. .github .github Public

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…