All apps · 0 apps
FluxDown
Docker app from Selfhosters
Overview
Readme
View on GitHub
FluxDown
Downloads, Supercharged.
A blazing fast, multi-protocol download manager — the free & open-source IDM alternative.
Website · Download · Changelog · FAQ · Feedback
English | 简体中文
Highlights
- Up to 10x faster — Rust + Tokio engine with IDM-style dynamic segmentation
- Multi-protocol — HTTP/HTTPS, FTP, BitTorrent, eD2K, HLS & DASH streaming
- Browser integration — Chrome / Edge / Firefox extension with a 3-layer interception engine
- AI-agent ready — built-in MCP (Model Context Protocol) server: let Claude, Cursor & other AI clients manage your downloads
- Resume anywhere — full download state persisted in SQLite; survive crashes and reboots
- Beautiful UI — light/dark themes, 13 color schemes, responsive three-pane layout
- Clean & private — free and open source, no ads, no tracking, no account required, local-first
Features
| Feature | Description |
|---|---|
| Rust-Powered Engine | Built on Rust and Tokio with zero-cost abstractions — memory-safe concurrency at maximum throughput |
| Smart Segmentation | Segments split dynamically at runtime; idle threads rescue slow segments, just like IDM — but smarter |
| Multi-Protocol | Dedicated engines for HTTP/HTTPS, FTP, BitTorrent (DHT/UPnP/magnet), eD2K (server + Kad DHT source finding, MD4 verification), HLS (AES-decrypt) and DASH |
| Speed Control | Token-bucket global rate limiting — download in the background without killing your browsing |
| Resume Anywhere | Every byte tracked in SQLite with WAL; power loss never costs you progress |
| Browser Integration | Three-layer download interception, streaming media sniffing, Alt+Click bypass, right-click send |
| MCP Server | Built-in Model Context Protocol endpoint (Streamable HTTP) with 12 tools — AI agents can add, monitor and control downloads |
| Beautiful Interface | shadcn-style widgets, IDM-style segment visualization, named queues, system tray |
| Clean & Private | Zero ads, zero telemetry lock-in, zero accounts — your data never leaves your machine |
FluxDown vs. IDM
| FluxDown | IDM | |
|---|---|---|
| Price | Free & open source | $24.95 + renewals |
| Open source | Yes (AGPL-3.0) | No |
| Platforms | Windows / macOS / Linux / NAS / Android | Windows only |
| BitTorrent & magnet | Yes | No |
| eD2K / eMule links | Yes | No |
| HLS / DASH streaming | Yes | Partial |
| Dynamic segmentation | Yes | Yes |
| Browser extension | Chrome / Edge / Firefox | Yes |
| Ads & tracking | None | — |
Installation
Grab the latest build from GitHub Releases or fluxdown.zerx.dev:
| Platform | Packages |
|---|---|
| Windows (x64 / ARM64) | setup.exe installer · portable .zip |
| macOS (Intel / Apple Silicon) | .dmg · portable .tar.gz |
| Linux (x64) | .AppImage · .deb · Arch .pkg.tar.zst · portable .tar.gz |
| Android (arm64-v8a / armeabi-v7a / x86_64) | per-ABI .apk · universal .apk |
| NAS / Server (headless, x64 / ARM64) | Docker · Synology DSM 6/7 .spk · QNAP .qpkg · OpenWrt .ipk · Unraid CA template · CasaOS / ZimaOS app store |
Browser Extension
Install the extension so FluxDown takes over browser downloads automatically:
MCP Server (Model Context Protocol)
FluxDown ships a built-in MCP server so AI agents (Claude Desktop, Cursor, Cline, …) can manage downloads via the Model Context Protocol. It speaks Streamable HTTP (JSON-RPC 2.0 over a single POST /mcp) on the local API port — no extra process needed.
- Endpoint:
http://127.0.0.1:17800/mcp(local-only by default) - Auth: Bearer token (
Authorization: Bearer <token>orX-FluxDown-Token), shared with the management API - Enable: Settings → API Service → toggle MCP endpoint (a token is generated automatically); the headless server enables it by default
Tools (12)
| Tool | Description |
|---|---|
download_add |
Create a download task (HTTP/HTTPS, FTP, magnet, BitTorrent) |
download_list |
List tasks with progress/speed/status, optional status filter |
download_get |
Get a single task by ID |
download_pause / download_resume |
Pause / resume one task |
download_pause_all / download_resume_all |
Pause / resume all tasks |
download_remove |
Remove a task, optionally deleting downloaded files |
queue_list |
List named queues and their configuration |
rss_list |
List RSS subscriptions with their configuration and runtime state |
rss_add |
Subscribe to an RSS feed and start polling it on a schedule |
rss_remove |
Delete an RSS subscription and the items it collected |
Client configuration
{
"mcpServers": {
"fluxdown": {
"url": "http://127.0.0.1:17800/mcp",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}
The MCP layer is implemented in native/api/src/mcp.rs on top of the same ApiHost trait that powers the REST management API and aria2-compatible JSON-RPC.
Architecture
Flutter renders the UI; a zero-FFI Rust engine does the heavy lifting. The two talk through Rinf signals, and the browser extension connects via Native Messaging.
flowchart TD
EXT["Browser Extension (WXT)"] -->|Native Messaging| NMH["fluxdown_nmh"]
NMH -->|Named Pipe / Unix socket| HUB
UI["Flutter UI (shadcn_ui)"] <-->|Rinf signals| HUB["hub — FFI adapter"]
HUB --> ENGINE["fluxdown_engine"]
ENGINE --> HTTP["HTTP/HTTPS"]
ENGINE --> FTP["FTP"]
ENGINE --> BT["BitTorrent"]
ENGINE --> ED2K["eD2K"]
ENGINE --> HLS["HLS / DASH"]
ENGINE --> DB[("SQLite")]
| Layer | Tech | Path |
|---|---|---|
| UI | Flutter + shadcn_ui | lib/ |
| FFI bridge | Rinf (Dart ↔ Rust signals) | native/hub/ |
| Download engine | Rust + Tokio (zero FFI deps) | native/engine/ |
| Browser extension | WXT + TypeScript | fluxDown/ |
| Website | Astro + React | website/ |
Building from Source
Prerequisites: Flutter SDK · Rust toolchain · Rinf CLI
# Clone the development branch (main = active development, stable = stable releases)
git clone -b main https://github.com/zerx-lab/FluxDown.git
cd FluxDown
# Check your environment
rustc --version
flutter doctor
# Install the Rinf CLI (once)
cargo install rinf_cli
# Fetch dependencies & generate Dart bindings
flutter pub get
rinf gen
# Run in debug mode
flutter run
# Build a release
flutter build windows --release # or: macos / linux
Linux system dependencies
# Debian/Ubuntu
sudo apt-get install cmake ninja-build clang pkg-config \
libgtk-3-dev libayatana-appindicator3-dev libnotify-dev libsecret-1-dev patchelf zstd
# Arch Linux
sudo pacman -S cmake ninja clang pkgconf gtk3 libayatana-appindicator libnotify libsecret patchelf zstd
The NMH relay binary (fluxdown_nmh) is built automatically by CMake during flutter build. Distribution packages (AppImage / deb / Arch / portable) are produced by CI on every tag.
Running tests
flutter test # Dart tests
cargo test -p fluxdown_engine # Rust engine tests
cargo test -p hub # FFI adapter tests
Contributing & Community
- Bug reports / feature requests — GitHub Issues or the in-app feedback dialog
- QQ Group — 832143651
Pull requests are welcome! Branch off main and target main — it is the development branch, while stable only tracks stable releases (maintainers advance it from main). Before submitting, please make sure:
cargo fmt --check && cargo clippy -- -D warnings # Rust
flutter analyze # Dart
See CONTRIBUTING.md for the full workflow.
License
Distributed under the GNU Affero General Public License v3.0.
If FluxDown saves you time, consider giving it a Star — it helps more people discover the project.
Made by zerx-lab
Install FluxDown on Unraid in a few clicks.
Find FluxDown in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/zerx-lab/fluxdown-server:latestRuntime arguments
- Web UI
http://[IP]:[PORT:17800]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Web UI, REST API and WebSocket
- Target
- 17800
- Default
- 17800
- Value
- 17800
Default download directory
- Target
- /root/Downloads
Database, logs and the admin token
- Target
- /data
- Default
- /mnt/user/appdata/fluxdown
- Value
- /mnt/user/appdata/fluxdown