Requires Rayburst 4 or later on the same Windows, macOS or Linux computer. Configure the desktop Extension API port and secret in the extension settings.
-
Page media discovery — Detect HLS/DASH manifests and audio/video sources without interrupting playback. Inspect and choose native tracks from the extension's Sniffer tab, sidebar or full-page workspace through Rayburst's media API. See scope and local testing.
-
Download interception — Automatically captures browser downloads and routes them to Rayburst for multi-threaded acceleration
-
Smart filtering — Ordered checks for interception settings, extension-owned downloads, URL schemes, site rules, MIME types, file extensions, and minimum file size
-
Per-site rules — Glob-pattern rules (e.g.
*.github.com) to always intercept, always skip, or defer to global settings -
Context menu — Right-click any link, image, audio, or video → "Download with Rayburst"
-
Magnet & torrent —
magnet:URIs and.torrentfiles are automatically captured and routed to aria2 -
Cookie forwarding — Cookie forwarding is enabled by default for authenticated downloads and uses required cookie and site permissions
-
Real-time dashboard — Popup shows live download/upload speeds, active/waiting/completed task counts
-
Auto-launch — Activates Rayburst through its allowlisted Native Messaging host, waits for API readiness, then retries
-
Duplicate notifications — Alerts when a repeated download request is skipped
-
Download bar control — Optionally hides Chrome's native download shelf (Chromium 115+, not available on Firefox)
-
Dark mode — System / Light / Dark with 10 Material You color schemes
-
i18n — 27 languages including English, Hindi, Chinese, Japanese, Korean, French, German, Spanish, and more
-
Diagnostics — Privacy-sanitized outcome log with severity filters, configurable bounded history (100 events by default), and one-click export
Install Rayburst Connect from the Chrome Web Store, Microsoft Edge Add-ons, or Firefox Add-ons.
Download rayburst-connect-x.x.x-chromium-mv3.zip or rayburst-connect-x.x.x-firefox-mv3.zip from Releases, unpack it, then load it as described under From Source. If no Rayburst Connect package is available yet, build from source below.
git clone https://github.com/AnInsomniacy/rayburst-connect.git
cd rayburst-connect
pnpm install
# Chrome / Edge
pnpm build
# Firefox
pnpm build:firefoxThen load the unpacked extension:
Chrome / Edge:
- Navigate to
chrome://extensions(oredge://extensions) - Enable Developer mode
- Click Load unpacked
- Select the
.output/chromium-mv3directory
Firefox:
- Navigate to
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on...
- Select
.output/firefox-mv3/manifest.json
What is Rayburst?
Rayburst is a full-featured download manager powered by Aria2 Next, built with Tauri 2, Vue 3, and Rust. This extension bridges your browser to the Rayburst desktop app running on your local machine.
Do I need the desktop app?
Yes. This extension sends downloads to the Rayburst desktop app via its HTTP API on 127.0.0.1:29110. Without the desktop app running, the extension will show a "Disconnected" status and cannot process downloads.
Why does the extension request broad host permissions?
The broad host permissions (*://*/*) are required so cookie forwarding works immediately for authenticated downloads from any site. The chrome.cookies.getAll() and webRequest APIs require matching host permissions for the target domain, and browser downloads can originate from any domain. The same access lets the extension preserve filtered request context and, on Firefox, identify attachment and binary responses before the native save dialog opens. Cookies and filtered request metadata are sent only to the Rayburst API on 127.0.0.1. Users can disable cookie forwarding and request header forwarding in Settings.
Does this extension collect any data?
No personal data is sent to the developer or third parties. Settings, diagnostics and discovered media context are stored locally. Task handoff and capture storage use the local Rayburst API (127.0.0.1). User-requested previews connect directly to the selected media source. No analytics or telemetry. See the full Privacy Policy.
# Install dependencies
pnpm install
# Start the development server with hot reload
pnpm dev
# WXT launches Chrome with the extension in a persistent development profile.
# Build for production
pnpm build
# Package as .zip for store submission
pnpm ziprayburst-connect/
├── entrypoints/ # Extension entry points
│ ├── background.ts # Service worker — orchestrator wiring, listeners
│ ├── content.ts # Protocol links, media discovery and player controls
│ ├── media/App.vue # Media sidebar and full-page workspace
│ ├── popup/App.vue # Browser action popup — status, speed, task dashboard
│ └── options/App.vue # Full-page settings — one staged-snapshot state model
├── lib/ # Core logic
│ ├── schema.ts # Zod schemas — single source of types + defaults
│ ├── storage.ts # Schema-validated browser.storage access
│ ├── api.ts # Desktop HTTP API client + error taxonomy
│ ├── desktop.ts # Native Messaging activation + readiness coordination
│ ├── browser.ts # Permissions, context menu, webRequest helpers
│ ├── backup.ts # Settings backup import/export
│ ├── diagnostics.ts # Sanitized, serialized diagnostic journal
│ ├── download/ # Orchestrator, filter pipeline, request context
│ └── media/ # Discovery, source catalogue, inspection and submission
├── shared/ # Shared UI infrastructure
│ ├── i18n/ # Runtime i18n engine + virtual:locales loader
│ └── theme.ts # M3 color system — bootstrap, CSS vars, Naive UI
├── __tests__/ # Behavior-level unit + integration tests
├── public/_locales/ # Chrome i18n message bundles (27 languages, SSOT)
└── .github/workflows/ci.yml # CI: compile → test → lint → i18n → format → build
| Command | Description |
|---|---|
pnpm dev |
Build the Chrome development extension with hot reload |
pnpm dev:firefox |
Build the Firefox development extension with hot reload |
pnpm build |
Production build → .output/chromium-mv3/ |
pnpm build:firefox |
Production build → .output/firefox-mv3/ |
pnpm zip |
Package Chromium build as .zip for store submission |
pnpm zip:firefox |
Package Firefox build as .zip for AMO submission |
pnpm zip:all |
Package both Chrome and Firefox builds |
pnpm test |
Run all unit and integration tests |
pnpm test:watch |
Run tests in watch mode |
pnpm compile |
TypeScript type checking (vue-tsc --noEmit) |
pnpm lint |
ESLint (flat config, Vue 3 + TypeScript) |
pnpm lint:i18n |
Validate i18n key consistency across all locales |
pnpm format |
Auto-format all files with Prettier |
pnpm format:check |
Verify formatting without writing |
Tests run on Vitest with WXT’s fakeBrowser polyfill for extension APIs. Run the full suite before committing:
pnpm format:check && pnpm lint && pnpm compile && pnpm test && pnpm buildA self-contained static page for manually verifying download interception:
npx serve test-site -p 3001Covers: Apple IPSW direct links, .torrent files, magnet: URIs, Linux ISOs, speed test binaries, and edge cases (blob:, data:).
PRs and issues are welcome! Before submitting:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Ensure all quality gates pass (
pnpm format:check && pnpm lint && pnpm compile && pnpm test) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Downloads go faster. Thesis progress does not. If you'd like to help with at least one of those —
Consider sponsoring the project ❤️ — your support keeps the code open, the releases shipping, and proof that a PhD can ship more than just papers.
MIT — Copyright (c) 2025-present AnInsomniacy