
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
- 9 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
How to get it
- 1
Install with a package manager
You'll need: Node.js
Install Whistle globally with npm
npm i -g whistleStart Whistle
w2 startInstall the root certificate for HTTPS capture
w2 caSet the system proxy
w2 proxy - 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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| whistle (this) | 15.8k | Dev tool | intermediate | 9 days ago | Front-end developers who want to redirect or modify requests and responses without changing server code |
| mitmproxy | 46.6k | Dev tool | intermediate | 4 days ago | Developers debugging how an app talks to a backend API |
| debug | 11.5k | Library | beginner | 22 days ago | Node.js developers who want named, toggleable log output instead of plain console.log calls |
| http-proxy-middleware | 11.1k | Library | intermediate | 5 days ago | Node.js developers running an Express, Connect, or Next.js dev server who need to forward /api requests to a backend |
| brain.js | 14.9k | Library | beginner | 2.1 years ago | JavaScript developers who want to try neural networks without learning a new language |
| nvm | 95.7k | Dev tool | beginner | 8 days ago | Developers 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.