| .github | ||
| public | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.js | ||
| .replit | ||
| app.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| replit.nix | ||

Scramjet Demo
The demo implementation of Scramjet, the most advanced web proxy.
Scramjet is an experimental interception based web proxy designed with security, developer friendliness, and performance in mind. This project is made to evade internet censorship and bypass arbitrary web browser restrictions.
Refer to browser.js where this project will now receive updates outside of just bypassing internet censorship.
Supported Sites
Scramjet has CAPTCHA support! Some of the popular websites that Scramjet supports include:
Ensure you are not hosting on a datacenter IP for CAPTCHAs to work reliably along with YouTube. Heavy amounts of traffic will make some sites NOT work on a single IP. Consider rotating IPs or routing through Wireguard using a project like wireproxy.
Setup / Usage
You will need Node.js 16.x (and above) and Git installed; below is an example for Debian/Ubuntu setup.
sudo apt update
sudo apt upgrade
sudo apt install curl git nginx
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm install 20
nvm use 20
git clone https://github.com/MercuryWorkshop/Scramjet-App
cd Scramjet-App
Install dependencies
pnpm install
Run the server
pnpm start
Resources for self-hosting:
- https://github.com/nvm-sh/nvm
- https://docs.titaniumnetwork.org/guides/nginx/
- https://docs.titaniumnetwork.org/guides/vps-hosting/
- https://docs.titaniumnetwork.org/guides/dns-setup/
HTTP Transport
The example uses EpoxyTransport to fetch proxied data encrypted.
You may also want to use CurlTransport, a different way of fetching encrypted data.
This example also now uses wisp-js/server instead of the now outdated wisp-server-node. Please note that this can also be replaced with other wisp implementations like wisp-server-python which is highly recommend for production.
See the bare-mux documentation for more information.