explaingit

jgilfelt/chuck

4,680JavaAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A debugging tool for Android developers that records every network request and response made by an app during development, showing them in a built-in on-device screen. Works as a plug-in for the OkHttp networking library with two lines of setup.

Mindmap

mindmap
  root((chuck))
    What it does
      Records network calls
      Shows headers and body
      Notification bar access
      Share captures
    Tech Stack
      Java
      Android
      OkHttp
    Use Cases
      Debug API calls
      Inspect auth tokens
      Check status codes
    Setup
      Two-line config
      No-op release build
      Android 4.1 plus
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 the exact headers, status codes, and body of every network call your Android app makes while testing on a device or emulator.

USE CASE 2

Debug a failing API call without needing a desktop proxy tool, everything is visible in a notification and on-device screen.

USE CASE 3

Share a captured HTTP interaction with a teammate directly from the app using the Android share sheet.

Tech stack

JavaAndroidOkHttp

Getting it running

Difficulty · easy Time to first run · 30min

Requires an existing Android project using OkHttp, the no-op release variant must be configured separately to avoid shipping sensitive captured data.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Chuck is a debugging tool for Android app developers. It sits inside an Android app during development and records every network request the app makes, along with the full response it receives back from the server. The goal is to let developers inspect exactly what their app is sending and receiving over the internet without needing external tools. When an app with Chuck installed is running on a device or emulator, a notification appears in the notification bar summarizing ongoing network activity. Tapping that notification opens Chuck's built-in screen where you can browse each request and response in detail, including headers, status codes, and body content. The tool also supports Android 7's split-screen mode, so you can have the app and Chuck open side by side at the same time. You can share any captured interaction using the standard Android share feature. Chuck plugs into OkHttp, a widely used Android networking library. Adding it to an Android project takes two lines in the build configuration and a few lines of code to register it with OkHttp. The README includes a no-op variant for release builds, which means Chuck is active only during development and compiles away to nothing in the version shipped to users. This matters because Chuck stores request and response data locally, which can include sensitive information like login tokens or cookies. The project is licensed under Apache 2.0. It requires Android 4.1 or newer and OkHttp version 3.

Copy-paste prompts

Prompt 1
How do I add Chuck to my Android project that already uses OkHttp so I can see network requests on the device?
Prompt 2
Show me how to configure Chuck's no-op variant so the network debugger is completely stripped from my release APK.
Prompt 3
I installed Chuck but I'm not seeing the notification, what could be wrong with my OkHttp interceptor setup?
Prompt 4
How do I use Chuck in Android split-screen mode so I can monitor network traffic while using the app at the same time?
Open on GitHub → Explain another repo

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

Verify against the repo before relying on details.