This is a static, GitHub Pages-ready SmellyProxy browser interface powered by the bundled Scramjet 2 service-worker controller and Epoxy transport. The active runtime contains no Gust engine, Gust labels, or Gust initialization code.
| Component | Version |
|---|---|
@mercuryworkshop/scramjet |
2.0.67-alpha.2 |
@mercuryworkshop/scramjet-controller |
0.0.14 |
@mercuryworkshop/epoxy-transport |
3.0.1 |
The distributed runtime files are byte-for-byte copies of the matching archives in official-packages/. Licensing information is in THIRD-PARTY-NOTICES.md and LICENSE-AGPL-3.0.txt.
- Upload all files and folders in this directory to the root of a GitHub Pages repository.
- Keep
.nojekyllin the repository root. - Enable GitHub Pages for the branch containing these files.
- Open the HTTPS GitHub Pages URL. Do not open
index.htmlusingfile://; service workers require HTTPS or localhost.
The service worker and Scramjet assets must remain on the same origin as index.html.
Edit config.js before deploying:
globalThis.SMELLY_SCRAMJET_CONFIG = Object.freeze({
wispUrl: "wss://anura.pro/",
fallbackWispUrl: "wss://wisp.mercurywork.shop/wisp/",
searchEngine: "https://search.brave.com/search?q=",
aiEndpoint: "https://text.pollinations.ai/{prompt}",
pageTitle: "SmellyProxy"
});aiEndpoint must contain {prompt}. Assistant prompts are sent to that external provider through the active Wisp. Page text is included only when the user enables Page Context.
The controller wires the visible browser interface, including:
- Scramjet tab creation and navigation
- Back, forward, reload, stop, home, and address/search controls
- Local bookmarks, favorites, and history
- Settings, search engines, wallpaper, clock, and keyboard shortcuts
- Request concurrency controls and real request timeouts
- Primary/fallback Wisp retries for HTTP 5xx, timeout, DNS, and general transport failures
- Race-safe WebSocket failover
- Tracker request blocking, site allowlisting, and cosmetic filters
- User-agent, WebRTC, media, and response-disposition controls
- Logs, metrics, find-in-page, element inspector, and the optional AI sidebar
Browser data and preferences are stored locally in the browser profile.
- Wisp servers are external services. Their uptime, capacity, policies, and compatibility are not controlled by this package.
- Some websites may fail because of DRM, browser security restrictions, anti-bot systems, unsupported APIs, or changes in third-party sites.
- WebRTC blocking and page user-agent overrides apply to newly loaded pages; reload existing tabs after changing them.
- The lightweight tracker blocker is not a replacement for a full maintained filter-list engine.
- The AI provider is external and can change or become unavailable; remove or replace
aiEndpointif the assistant is not desired.
On Linux, macOS, or Git Bash:
sha256sum -c SHA256SUMS.txtEvery listed file should report OK.