explaingit

avwo/whistle

Analysis updated 2026-06-24

15,510JavaScriptAudience · developerComplexity · 3/5Setup · moderate

TLDR

Whistle is a Node.js cross-platform debugging proxy. It intercepts HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic so you can inspect and rewrite requests.

Mindmap

mindmap
  root((whistle))
    Inputs
      Browser traffic
      Mobile app traffic
      Rule scripts
    Outputs
      Captured requests
      Modified responses
      Logs
    Use Cases
      Debug mobile API calls
      Mock backend responses
      Reverse proxy local services
    Tech Stack
      Node.js
      JavaScript
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

What do people build with it?

USE CASE 1

Capture HTTPS traffic from a mobile app for debugging like Charles or Fiddler

USE CASE 2

Mock backend responses so the frontend team can build against unfinished APIs

USE CASE 3

Run a reverse proxy on a headless Linux server to inspect production-like traffic

What is it built with?

Node.jsJavaScript

How does it compare?

avwo/whistlemaxwellito/vivusmenzi11/bullshitgenerator
Stars15,51015,47715,548
LanguageJavaScriptJavaScriptJavaScript
Setup difficultymoderateeasyeasy
Complexity3/52/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Capturing HTTPS needs installing and trusting the Whistle CA on each client device.

In plain English

Whistle is a cross-platform network debugging proxy tool built on Node.js, the JavaScript runtime often used for server-side web development. A proxy sits between your browser or app and the internet, letting you intercept and inspect the network traffic flowing through, similar in purpose to tools like Charles or Fiddler, which are listed as related references in the project topics. It supports HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic, allowing developers to capture and modify requests and responses as they happen. This is useful when you want to understand what data your app is sending and receiving, or when you need to simulate different server responses for testing. Whistle also supports several proxy modes including HTTP, HTTPS, Socks, and reverse proxy. The tool runs on macOS, Windows, and Linux including headless server environments. You install it globally via npm (Node's package manager) with a single command, start it with a simple command-line instruction, and configure your system or browser to route traffic through it. A built-in web interface lets you manage traffic captures, rules, and plugins from one place. The plugin system lets you extend its functionality or use it as an npm module inside other Node.js projects. A desktop client is also available for those who prefer to skip manual configuration steps.

Copy-paste prompts

Prompt 1
Install Whistle via npm globally and walk me through trusting its root cert on iOS for HTTPS capture
Prompt 2
Write a Whistle rule that rewrites a production API response to return mocked JSON for one endpoint
Prompt 3
Compare Whistle vs Charles vs mitmproxy for debugging mobile traffic in 2026
Prompt 4
Show me how to run Whistle on a Linux server and route a remote device through it for capture

Frequently asked questions

What is whistle?

Whistle is a Node.js cross-platform debugging proxy. It intercepts HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic so you can inspect and rewrite requests.

What language is whistle written in?

Mainly JavaScript. The stack also includes Node.js, JavaScript.

How hard is whistle to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is whistle for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub avwo on gitmyhub

Verify against the repo before relying on details.