# avwo/whistle

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/avwo-whistle).**

15,570 stars · 1,164 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/avwo/whistle
- Homepage: https://wproxy.org/
- awesome-repositories: https://awesome-repositories.com/repository/avwo-whistle.md

## Topics

`charles` `debug` `fiddler` `hosts` `node` `nodejs` `proxy` `web` `weinre`

## Description

Whistle is an HTTP debugging proxy that captures, inspects, and modifies traffic through a web-based management interface. It operates as a man-in-the-middle proxy, intercepting HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic between clients and servers, and provides a plugin-based architecture that extends core functionality with custom rules, UI panels, and protocol handlers at runtime.

The project distinguishes itself through a combination of capabilities that go beyond basic traffic inspection. It supports server-side headless operation on Linux, allowing it to intercept traffic for applications that cannot directly configure a proxy. Whistle also includes remote page inspection by injecting a Weinre debugging client into web pages, enabling DOM inspection, console logging, and network monitoring from a separate interface. Additionally, it provides request capture and replay with the ability to modify parameters and responses on the fly, and applies user-defined rules to dynamically alter request headers, bodies, URLs, or response data before forwarding.

The tool bridges WebSocket and HTTP/2 connections by forwarding frames and streams while preserving protocol semantics for inspection. Its plugin system enables users to add custom rules and UI features to tailor the debugging environment for specific needs.

## Tags

### Networking & Communication

- [HTTP Proxies](https://awesome-repositories.com/f/networking-communication/http-proxies.md) — An HTTP, HTTPS, HTTP/2, and WebSocket debugging proxy that captures, inspects, and modifies traffic through a web-based management interface.
- [Captured Request Replayers](https://awesome-repositories.com/f/networking-communication/http-request-debugging/captured-request-replayers.md) — Captures and replays HTTP requests with editable parameters to test different server responses. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))
- [HTTP Traffic Inspection](https://awesome-repositories.com/f/networking-communication/http-traffic-inspection.md) — Captures and inspects HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic for debugging and analysis. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))
- [Proxy Servers](https://awesome-repositories.com/f/networking-communication/proxy-servers.md) — Acts as an HTTP proxy on headless Linux servers to intercept traffic for applications unable to set a proxy directly. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))
- [Rule-Driven Modifications](https://awesome-repositories.com/f/networking-communication/traffic-interception/http-request-interceptors/production-traffic-modifications/regex-based-request-modifications/rule-driven-modifications.md) — Applies user-defined rules to dynamically alter request headers, bodies, URLs, or response data before forwarding.
- [WebSocket and HTTP/2 Passthrough Proxies](https://awesome-repositories.com/f/networking-communication/http-2-and-websocket-servers/websocket-and-http-2-passthrough-proxies.md) — Bridges WebSocket and HTTP/2 connections by forwarding frames and streams while preserving protocol semantics for inspection.

### Part of an Awesome List

- [Traffic Proxying and Interception](https://awesome-repositories.com/f/awesome-lists/security/traffic-proxying-and-interception.md) — Intercepts HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic as a man-in-the-middle proxy for debugging.

### Development Tools & Productivity

- [Plugin-Based Debugging Extensions](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/plugin-debugging-utilities/plugin-based-debugging-extensions.md) — Adding custom rules and UI features through a plugin system to tailor the debugging environment.
- [Plugin Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems.md) — Adds custom rules and UI features through a plugin system to tailor the debugging environment. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))
- [Weinre Debugging Injections](https://awesome-repositories.com/f/development-tools-productivity/application-debugging/remote-debugging/weinre-debugging-injections.md) — Injects a Weinre remote debugging client into web pages for DOM inspection, console logging, and network monitoring.
- [Weinre Page Inspectors](https://awesome-repositories.com/f/development-tools-productivity/application-debugging/remote-debugging/weinre-page-inspectors.md) — Injects Weinre into web pages for remote debugging of DOM, console logs, and network activity.

### Security & Cryptography

- [HTTP Request and Response Modifiers](https://awesome-repositories.com/f/security-cryptography/encrypted-backups/on-the-fly/http-request-and-response-modifiers.md) — Provides on-the-fly modification of HTTP request headers, bodies, URLs, and responses through user-defined rules. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))

### Software Engineering & Architecture

- [Extensible Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures.md) — Provides a plugin system that extends core proxy functionality with custom rules, UI panels, and protocol handlers.
- [Proxy Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/proxy-plugins.md) — Supports custom plugins to add rules and UI features for tailored traffic inspection and modification.

### Web Development

- [Request and Response Transformers](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/request-and-response-transformers.md) — Alters request or response data on the fly by applying configurable rules through a management interface.

### DevOps & Infrastructure

- [Headless Proxy Servers](https://awesome-repositories.com/f/devops-infrastructure/headless-server-deployments/headless-proxy-servers.md) — Runs as a headless proxy on Linux servers to intercept traffic for applications that cannot configure a proxy directly.

### Testing & Quality Assurance

- [Weinre Page Inspections](https://awesome-repositories.com/f/testing-quality-assurance/remote-dom-inspection/weinre-page-inspections.md) — Injects a Weinre remote debugging client into web pages to inspect DOM, console logs, and network activity. ([source](https://cdn.jsdelivr.net/gh/avwo/whistle@master/README.md))
- [Weinre Remote Page Inspections](https://awesome-repositories.com/f/testing-quality-assurance/remote-dom-inspection/weinre-remote-page-inspections.md) — Injects a Weinre debugging client into web pages to inspect DOM, console logs, and network activity.
