MCPcopy
hub / github.com/avwo/whistle

github.com/avwo/whistle @v2.10.4 sqlite

repository ↗ · DeepWiki ↗ · release v2.10.4 ↗
1,718 symbols 4,063 edges 460 files 7 documented · 0%
README

whistle logo

whistle

NPM version node version npm download NPM count License

中文 · English

Whistle (pronounced /ˈwisəl/) is a cross-platform network debugging and proxy tool built on Node.js. It provides powerful packet capture, request/response inspection and modification, a rule-based modification engine, and extensibility through plugins.

Key features: 1. Powerful - Capture and modify HTTP, HTTPS, HTTP/2, WebSocket, and TCP traffic - Supports HTTP, HTTPS, Socks and reverse proxy modes - Built-in tools: Weinre (remote DOM inspection), Console (console logs), Composer (request replay/editing), etc. 2. Easy to use - Rule-based request/response modification - Unified UI for captures, rules, plugins, Weinre/Console/Composer and more 3. Extensible - SPlugin support for extending rules and UI - Can be used as an NPM module in projects 4. Cross-platform - Supports macOS, Windows, Linux (Ubuntu/Fedora) desktop systems - Supports headless Linux server environments

Installation (recommended)

Desktop users (macOS/Windows/Linux) should use the Whistle client: https://github.com/avwo/whistle-client

The client skips manual installation and configuration steps

Headless Linux / Server Install (CLI)

Follow these 4 steps to deploy Whistle on a headless server:

  1. Install Whistle (recommended via npm)
  2. Install Node.js first: https://nodejs.org/
  3. Install: npm i -g whistle > Alternatively via Homebrew: brew install whistle
  4. Start Whistle
  5. Command: w2 start
  6. Install CA certificate (required for HTTPS capture)
  7. Command: w2 ca
  8. Manual confirmation may be required:
    • Windows: confirm with “Yes (Y)”
    • macOS: may require entering password or Touch ID
  9. Configure proxy
  10. Command: w2 proxy
  11. Specify host:port: w2 proxy "10.x.x.x:8888"
  12. Disable system proxy: w2 proxy 0

Other proxy options: - Recommended: use a Chrome proxy extension ZeroOmega for easy switching

Chrome Web Store (or manual install if blocked): https://chromewebstore.google.com/detail/proxy-switchyomega-3-zero/pfnededegaaopdmhkdmcofjmoldfiped - Use browser/devtools built-in proxy settings (e.g. Firefox, WeChat DevTools) - For apps that can't set proxies directly, use Proxifier (Windows/macOS)

Quick Start

See the official guide for usage and examples: https://wproxy.org/docs/getting-started.html

Common Commands

  • Start: w2 start
  • Stop: w2 stop
  • Restart: w2 restart
  • Status: w2 status
  • Install CA: w2 ca
  • Set proxy: w2 proxy [host:port] (use w2 proxy 0 to disable)

License

MIT — see the LICENSE file

Extension points exported contracts — how you extend this code

WhistleFrame (Interface)
(no doc)
index.d.ts
WhistleSession (Interface)
(no doc)
index.d.ts
WhistleOptions (Interface)
(no doc)
index.d.ts
WhistleAuth (Interface)
(no doc)
index.d.ts
WhistleRuntimeInfo (Interface)
(no doc)
index.d.ts

Core symbols most depended-on inside this repo

callback
called by 271
bin/plugin.js
cb
called by 151
lib/util/speed-transform.js
isStr
called by 75
biz/webui/htdocs/src/js/win.js
isFunc
called by 51
biz/webui/htdocs/src/js/win.js
showSysErr
called by 46
biz/webui/htdocs/src/js/util.js
next
called by 43
biz/webui/htdocs/src/js/rules-dialog.js
next
called by 33
biz/webui/htdocs/src/js/components/json/parse.js
isString
called by 29
lib/util/common.js

Shape

Function 1,705
Method 7
Interface 6

Languages

TypeScript100%

Modules by API surface

lib/util/index.js143 symbols
biz/webui/htdocs/src/js/util.js128 symbols
lib/util/common.js82 symbols
lib/plugins/load-plugin.js75 symbols
lib/rules/rules.js69 symbols
biz/webui/htdocs/src/js/data-center.js54 symbols
lib/plugins/index.js47 symbols
lib/https/index.js36 symbols
lib/https/ca.js33 symbols
lib/socket-mgr.js31 symbols
biz/webui/htdocs/src/js/rules-mode.js29 symbols
biz/webui/lib/index.js28 symbols

Dependencies from manifests, versioned

adm-zip0.5.16 · 1×
async-limiter2.0.0 · 1×
babel-core6.7.6 · 1×
babel-eslint6.1.2 · 1×
babel-loader6.2.4 · 1×
babel-plugin-transform-class-properties6.24.1 · 1×
babel-plugin-transform-object-rest-spread6.26.0 · 1×
babel-preset-env1.7.0 · 1×
babel-preset-react6.5.0 · 1×
babel-runtime6.26.0 · 1×
base64-js1.3.0 · 1×
body-parser1.20.3 · 1×

For agents

$ claude mcp add whistle \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact