explaingit

chuckerteam/chucker

4,511KotlinAudience · developerComplexity · 2/5Setup · easy

TLDR

A two-line-to-add Android debugging library that captures every network request and response your app makes and displays them on-device via a notification, with zero footprint in production builds.

Mindmap

mindmap
  root((Chucker))
    What it does
      Captures HTTP traffic
      On-device display
      No production trace
    Tech stack
      Kotlin
      OkHttp interceptor
      Android notifications
    Configuration
      Data retention
      Sensitive headers
      Max body size
      Custom decoders
    Setup
      Two Gradle lines
      One code line
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Inspect every HTTP request and response your Android app makes directly on the device without connecting to a computer

USE CASE 2

Debug API authentication issues by viewing exact request headers and response codes in a full-screen log on the device

USE CASE 3

Configure sensitive header masking so passwords and tokens are hidden with asterisks in the on-device display

USE CASE 4

Add a no-op variant to release builds so Chucker leaves absolutely no trace in the app your users install

Tech stack

KotlinAndroidOkHttpGradle

Getting it running

Difficulty · easy Time to first run · 5min

Requires an existing OkHttp client in an Android project, adding Chucker is two Gradle lines and one interceptor call.

In plain English

Chucker is a debugging tool for Android app developers that lets them inspect the network requests and responses their app makes, directly on the device. When an app sends data over the internet or receives a response from a server, Chucker captures and records those exchanges. It then displays a notification summarizing what happened, and tapping that notification opens a full screen view where you can read the details of each request and response: the URL, headers, status codes, response times, and body content. The tool works by plugging into OkHttp, which is a widely used networking library for Android. Adding Chucker takes two lines in the app's build configuration file and one line of code to attach it to the HTTP client. From that point on, it automatically records every request the app makes through that client. No other setup is required for basic use. A key design detail is that Chucker is meant strictly for development builds. The project includes a no-op version of the library that replaces it in release builds, which means the tool leaves no trace in the app that real users install. Developers add both variants in their build file and Chucker automatically drops out of production. Chucker includes several configuration options for teams that need more control. You can set how long captured data is retained before being deleted. You can mark specific headers as sensitive, and Chucker will replace their values with asterisks in its display so passwords or tokens are not visible in logs. You can set a maximum body size to prevent very large responses from being stored in full. For apps that use binary data formats rather than plain text, you can write a custom decoder so Chucker can still display the content in a readable form. Android 13 and later require apps to request permission before showing notifications, which affects how Chucker's notification appears. The README covers the two scenarios a developer might encounter and what to do in each case. The project is open source and actively maintained, with a changelog tracking updates across versions.

Copy-paste prompts

Prompt 1
I added Chucker to my Android OkHttp client but no notification appears. Walk me through the two Gradle lines and one code line needed to set it up correctly.
Prompt 2
How do I configure Chucker to redact the Authorization header so it shows asterisks instead of the token value?
Prompt 3
I receive binary protobuf responses in my Android app. How do I write a custom Chucker decoder so it displays the content in a readable form?
Prompt 4
How does Chucker's no-op library work and how do I make sure it replaces Chucker automatically in release builds?
Prompt 5
My Chucker notification is not showing on Android 13. What permission do I need to request and where do I add it?
Open on GitHub → Explain another repo

← chuckerteam on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.