MCPcopy Index your code
hub / github.com/MercuryWorkshop/scramjet

github.com/MercuryWorkshop/scramjet @v1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.0 ↗ · + Follow
1,400 symbols 3,158 edges 116 files 23 documented · 2% updated 4d agolatest · 2026-07-04★ 4604 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Scramjet

npm version


Scramjet is an interception-based web proxy designed to bypass arbitrary web browser restrictions, support a wide range of sites, and act as middleware for open-source projects. It prioritizes security, developer friendliness, and performance.

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.

An easy to deploy version of Scramjet can be found at Scramjet-App.

Development

Dependencies

Building

  • Clone the repository with git clone --recursive https://github.com/MercuryWorkshop/scramjet
  • Install the dependencies with pnpm i
  • Build the rewriter with pnpm rewriter:build
  • Build Scramjet with pnpm build

Running Scramjet Locally

You can run the Scramjet dev server with the command

pnpm dev

Scramjet should now be running at http://localhost:1337 and should rebuild upon a file being changed (excluding the rewriter).

Setting up Typedoc

The official Scramjet Typedoc gets deployed via GitHub Actions along with the demo site here.

You can run it locally with:

pnpm run docs
pnpm docs:dev
pnpm docs:serve

Set up everything

Do you want to run the Scramjet demo and Typedoc together like what is served on GitHub Pages by the Action?

You can do this by running the serve script:

chmod +x scripts/serve-static.sh
./scripts/serve-static.sh

This essentially simulates the CI pipeline, but in a shell script.

Resources

  • TN Docs - There's a page on TN's docs for Scramjet, which is structured more like a guide if you are an interested proxy site developer.
  • Scramjet Typedocs - Contains documentation for Scramjet APIs. This is useful for any proxy site developer.
  • Scramjet-App - A simple example of a proxy site, which uses Scramjet in a mass-deployable manner. This is based on Ultraviolet-App for familiarity.

Extension points exported contracts — how you extend this code

UrlRewriter (Interface)
(no doc) [2 implementers]
rewriter/js/src/cfg.rs
StoredReferrerPolicies (Interface)
(no doc) [1 implementers]
src/shared/rewriters/headers.ts
Transform (Interface)
(no doc) [1 implementers]
rewriter/transform/src/transform.rs
ScramjetVersionInfo (Interface)
(no doc)
src/types.ts
GlobalThis (Interface)
(no doc)
src/rslib/buildGlobals.d.ts
ScramjetConfig (Interface)
(no doc)
src/types.ts
ImportMeta (Interface)
(no doc)
src/rslib/buildGlobals.d.ts
ScramjetInitConfig (Interface)
(no doc)
src/types.ts

Core symbols most depended-on inside this repo

set
called by 715
src/shared/rewriters/headers.ts
b
called by 477
rewriter/native/sample/google.js
call
called by 462
src/client/client.ts
get
called by 346
src/shared/rewriters/headers.ts
apply
called by 173
rewriter/transform/src/transform.rs
replace
called by 149
rewriter/transform/src/transform.rs
add
called by 124
rewriter/js/src/changes.rs
c
called by 107
rewriter/native/sample/google.js

Shape

Function 1,188
Method 140
Class 47
Interface 15
Enum 10

Languages

TypeScript92%
Rust8%

Modules by API surface

rewriter/native/sample/google.js704 symbols
rewriter/native/sample/discord.js284 symbols
rewriter/js/src/visitor.rs32 symbols
src/client/client.ts20 symbols
src/controller/controller.ts13 symbols
src/client/shared/event.ts13 symbols
rewriter/transform/src/lib.rs13 symbols
rewriter/js/src/changes.rs13 symbols
src/client/events.ts12 symbols
src/worker/fetch.ts11 symbols
src/shared/security/forceReferrer.ts11 symbols
src/controller/frame.ts11 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page