Rust-based Man in the Middle proxy for inspecting and manipulating HTTP/HTTPS/WebSocket traffic. Provides a desktop GUI (Tauri + React), a terminal UI (Ratatui), and a headless CLI mode. Supports scriptable traffic manipulation, intercept rules, and integrates with AI assistants via MCP.
- HTTP / HTTPS traffic interception
- WebSocket capture and message injection
- TLS 1.0/1.1 legacy client support (hybrid TLS handler)
- Request/response detail inspection (headers, body, media preview)
- Upstream proxy support (HTTP/HTTPS/SOCKS with authentication)
- Network throttling (bandwidth limiting)
- Intercept Rules β Block, modify request/response, map to local file, or redirect to remote URL
- Server Replay β Save captured responses and auto-replay on matching requests
- Request Replay β Re-send individual or sequential requests
- Scripting β TypeScript-based request/response/WebSocket manipulation (Deno Core / V8)
- Cheolsu-Query β Dedicated query language for traffic filtering (method, status, URL with logical operators)
- HAR Export β Export traffic in HTTP Archive format
- GUI desktop app (Tauri + React)
- TUI terminal interface (Ratatui)
- CLI headless mode
- MCP Server for AI assistant integration
- Dark / light theme
- i18n support (English, Korean)
- Global keyboard shortcuts
- Auto-generated unique CA certificate per user (private key is never bundled in the binary)
Cheolsu Proxy automatically generates a unique CA certificate on first launch.
macOS β Manual certificate installation:
-
Run the app. The console will display the certificate file path:
π Path: ~/Library/Application Support/com.cheolsu-proxy/cheolsu-proxy.cer -
Open Keychain Access
-
Select the login keychain
-
Go to File > Import Items...
-
Select the
cheolsu-proxy.cerfile from the path above -
Double-click the certificate and set it to Always Trust
Other OS guides:
Set your local system proxy to 127.0.0.1:8100.
For detailed documentation, visit the official docs site.
- User Guide: Installation, configuration, usage
- Contributor Guide: Dev environment setup, code structure, how to contribute
- Feature Docs: TLS support, certificate configuration, etc.
Markdown documentation is available in the document/ directory.
- TLS 1.0/1.1 Support β Legacy TLS client support
- Intercept Rules β Block, modify, and redirect traffic
- Server Replay β Auto-replay captured responses
- Scripting β TypeScript-based traffic manipulation
- WebSocket β WebSocket capture and injection
- MCP Server β AI assistant integration
- Cheolsu-Query β Query language for traffic filtering
macOS:
brew install openssl@3 pkg-configThe proxy requires a CA certificate to intercept HTTPS traffic. Run the certificate generation script from the crates/ directory:
cd crates
bash ../install_cer.shThe script generates certificate files in
crates/proxyapi_v2/src/certificate_authority/. The private key is converted to PKCS#8 format (for rcgen library compatibility).
Register the generated CA certificate with your OS for HTTPS proxy to work properly.
macOS:
open crates/proxyapi_v2/src/certificate_authority/cheolsu-proxy.cerIn Keychain Access, double-click the certificate β Trust section β set to Always Trust.
Linux:
sudo cp crates/proxyapi_v2/src/certificate_authority/cheolsu-proxy.cer /usr/local/share/ca-certificates/cheolsu-proxy.crt
sudo update-ca-certificatesWindows:
Import cheolsu-proxy.cer into "Trusted Root Certification Authorities" via Certificate Manager (certmgr.msc).
cd desktop
bun install
bun tauri devIf you encounter OpenSSL linking errors, set the environment variable:
PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig" bun tauri devRun the proxy without the GUI:
bun tauri dev -- -- --headless --port 8100| Option | Short | Description |
|---|---|---|
--headless |
-H |
Run proxy without GUI |
--port <PORT> |
-p |
Proxy listen port (default: 8100) |
--host <HOST> |
-b |
Proxy listen host (default: 127.0.0.1) |
--verbose |
-v |
Enable verbose logging |
# Unit tests (TLS strategy selection, ClientHello parsing, etc.)
PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig" cargo test -p proxyapi_v2 --lib
# Integration tests (requires CA certificate to be trusted by the system)
PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig" cargo test -p proxyapi_v2 --test rcgen_ca- Development:
crates/proxyapi_v2/src/certificate_authority/ - Production (macOS):
~/Library/Application Support/com.cheolsu-proxy/ - Production (Windows):
%APPDATA%/com.cheolsu-proxy/(planned) - Production (Linux):
~/.config/com.cheolsu-proxy/(planned)
Contributions are always welcome!
See LICENSE-APACHE, LICENSE-MIT for details.
