Skip to content

whistle

A local proxy that captures and edits web traffic (HTTP, HTTPS, WebSocket) for debugging.

Stars
15.8k
Forks
1.2k
Licence
MIT
Language
JavaScript
Last update
10 days ago
Type
Dev tool

What it is

Whistle is a debugging proxy that sits between your browser or apps and the internet, letting you see and change the web requests and responses that pass through it. It supports HTTP, HTTPS, HTTP/2 and WebSocket traffic, and is configured through rules and a web-based management interface. It is built on Node.js and runs on macOS, Windows and Linux, including headless servers.

  • Capture and inspect HTTP, HTTPS and WebSocket requests from a browser or app
  • Edit request or response data using rules, without changing the real server
  • Replay and edit requests with the built-in Composer tool
  • Inspect a page's DOM remotely with the built-in Weinre tool
  • View console logs from a page with the built-in Console tool

Great for

  • Front-end developers who want to redirect or modify requests and responses without changing server code
  • Testers who need to inspect HTTPS traffic from a browser or app
  • Developers working on servers without a graphical interface who need a command-line proxy
  • Developers who want to extend the tool with plugins or use it as an npm module

Not ideal for

  • People who only need a simple browser extension for proxy switching, since Whistle is a full traffic debugger with more setup
  • Users with no interest in inspecting network traffic, because the tool is aimed at debugging
  • Anyone who cannot install a root certificate on their device, since HTTPS capture depends on it
Step-by-step guide: how to use whistleInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js

    Install Whistle globally with npm

    npm i -g whistle

    Start Whistle

    w2 start

    Install the root certificate for HTTPS capture

    w2 ca

    Set the system proxy

    w2 proxy
  2. 2

    Run it

    • Install Node.js from nodejs.org
    • Run npm i -g whistle to install Whistle
    • Run w2 start to launch the proxy
    • Run w2 ca to install the root certificate for HTTPS capture
    • Run w2 proxy to point your system at Whistle, and w2 proxy 0 to turn it off
  3. 3

    Get the most out of it

    • Use the desktop client (whistle-client) to avoid most manual setup steps on macOS, Windows and Linux
    • Use a proxy switcher such as ZeroOmega in Chrome to change proxies between browsers
    • Use the plugin system to extend rules and interface features
    • Use w2 status, w2 restart and w2 stop to manage the running service from the command line
    • Read the official documentation at wproxy.org for examples and detailed guides

Downloads

Strengths

  • Free and open source under the MIT license, with a large user base (about 15,700 GitHub stars)
  • Works on desktop and headless Linux servers via a command-line interface
  • Extensible through plugins and usable as an npm module

Trade-offs

  • Requires installing a root certificate to capture HTTPS, which carries security implications you should understand
  • The README is mostly in Chinese in the sections shown, and detailed documentation is on an external site
  • No formal releases are listed, so you install from npm or the main branch

How it compares

ProjectStarsTypeLevelUpdatedBest for
whistle (this)15.8kDev toolintermediate10 days agoFront-end developers who want to redirect or modify requests and responses without changing server code
mitmproxy46.6kDev toolintermediate5 days agoDevelopers debugging how an app talks to a backend API
debug11.5kLibrarybeginner23 days agoNode.js developers who want named, toggleable log output instead of plain console.log calls
http-proxy-middleware11.1kLibraryintermediate5 days agoNode.js developers running an Express, Connect, or Next.js dev server who need to forward /api requests to a backend
brain.js14.9kLibrarybeginner2.1 years agoJavaScript developers who want to try neural networks without learning a new language
nvm95.7kDev toolbeginner9 days agoDevelopers who work on several Node.js projects that need different versions

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.