Woole (a shortened form of "Wormhole") is an open-source project for reverse proxying, sniffing, and tunneling, developed in Go
| Client | Server | Docker | Sniffer | Special Types |
Woole consists of two primary modules: the Woole Client and the Woole Server. The server establishes a gRPC tunnel, facilitates the transmission of requests to the client, and awaits corresponding responses. The client, utilizing the configured tunnel, processes incoming requests, performs reverse-proxy operations, logs the relevant data, and returns the responses to the server. Additionally, the client includes an integrated sniffing tool for enhanced request analysis and debugging.
Working completely offline.
./woole -http 81 -proxy 8080
Output:
╒══════════════════════════════════╕
│ HTTP URL: http://localhost:81 │
│ Proxying: http://localhost:8080 │
│ Sniffer: http://localhost:8000 │
│ Expire At: never │
╘══════════════════════════════════╛
Analyze the requests of any website.
./woole -http 81 -proxy https://github.com
Output:
╒══════════════════════════════════╕
│ HTTP URL: http://localhost:81 │
│ Proxying: https://github.com │
│ Sniffer: http://localhost:8000 │
│ Expire At: never │
╘══════════════════════════════════╛
The server is only needed to receive requests from the internet and expose the responses.
./woole -proxy https://github.com -tunnel woole.me -client anything
Output:
╒══════════════════════════════════════╕
│ HTTP URL: http://anything.woole.me │
│ HTTPS URL: https://anything.woole.me │
│ Proxying: https://github.com │
│ Sniffer: http://localhost:8000 │
│ Expire At: never │
╘══════════════════════════════════════╛
The sniffing tool is accessible through the port configured using the sniffer
option (default port is available in the client options list). To change the port use:
./woole -sniffer 9094
- Light/Dark Theme;
- Deep Search (status, host, url, name, headers, request body, cookies);
- Media preview (audio, video [chunks are not supported], and images);
- Replay requests with or without changes (with editor);
- Generate request cURLs;
- ACE Editor as viewer for the request and response body;
- Beautify XML, HTML, JSON, javascript, and CSS bodies.
The https://woole.me website was created to offer a free-to-use Woole Server. Simply connect using the tunnel URL woole.me
.
./woole [...] -tunnel woole.me
Please note that the virtual machine has limited resources, so we kindly ask that you use it in moderation. The server will always run the latest released version of Woole.
Keep in mind that the website’s availability may change without prior notice.
Download, build, or run the container of the "Woole Server" and follow the Server Documentation to learn how to configure it. Woole is an open-source project, there are no restrictions of use.
Pre-built binaries for the client and server are available in the Releases section. Follow the steps below to download and use them:
- Visit the Releases Page and download the appropriate binary for your platform (e.g.,
woole-windows-x64.zip
). - Extract the downloaded file using a compression tool (or just double-click the zip file).
- Open a Command Prompt or PowerShell in the folder where the binaries were extracted.
- Run the binaries:
./woole.exe --help ./woole-server.exe --help
- (Optional) Add the folder containing the binaries to your PATH environment variable for easier access.
- Visit the Releases Page and download the appropriate binary for your platform (e.g.,
woole-linux-x64.zip
,woole-macos-arm64.zip
orwoole-macos-x64.zip
). - Navigate to the download folder and extract the downloaded file:
unzip woole-<version>-<platform>.zip
- Make the binaries executable:
chmod +x woole woole-server
- (Optional) Move the binaries to a directory in your
PATH
:sudo mv woole woole-server /usr/local/bin/
- Run the binaries:
./woole --help ./woole-server --help # If the binaries are in your PATH variable woole --help woole-server --help
Some systems may need administrator permissions to bind well known ports (e.g. 80, 443, etc.)
Woole can be built and run using Docker for easier setup and usage. The Dockerfile supports building images for both the client and the server. The Dockerfile is available under the docker
folder in the root path of the project.
For more details, consult the step-by-step instructions here.
- Golang 1.24;
- protoc (only for protobuf changes);
git clone --depth 1 https://github.com/ecromaneli/woole.git
cd woole
# to build the client
go build -o ./bin/woole ./cmd/client
chmod +x ./bin/woole
# to build the server
go build -o ./bin/woole-server ./cmd/server
chmod +x ./bin/woole-server
The executables will be available under the folder bin
. Use -help
to see the available options or see the documentation of the client and the server.
- Created by Emerson Capuchi Romaneli (@ECRomaneli).
The Woole project, the woole.me website and all its contributors are not responsible for and do not encourage the use of this tool for any illegal activity. You as the user are solely responsible for its use. Report cybercrimes.