FluxDown

FluxDown

Docker app from Selfhosters

Overview

Multi-protocol download manager with a built-in web UI, written in Rust/Tokio. Handles HTTP/HTTPS, FTP, BitTorrent (DHT and magnet links), eD2K/Kad, HLS and DASH. Dynamic file segmentation, per-task and global rate limiting, and SQLite-backed crash-safe resume. It also exposes an aria2-compatible JSON-RPC API, so existing aria2 front-ends can drive it. First launch prints a one-time admin token to the container log. Open the container log from the Docker tab and look for the line containing the word token - the management API needs it, and the web UI asks for it on first visit. The Downloads path is where finished files land. The Data path holds the database, logs and the admin token, so keep it on appdata.
FluxDown Logo

FluxDown

Downloads, Supercharged.

A blazing fast, multi-protocol download manager — the free & open-source IDM alternative.

Latest Release Downloads License: AGPL-3.0 Platform Rust Flutter MCP Server

Awesome Rust Awesome Windows Awesome Free Apps Android FOSS Open Source Android Portainer Unraid CA Chinese Indie Dev

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:

Chrome Web Store Edge Add-ons Firefox Add-ons

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> or X-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

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.

Open the Apps tab on your Unraid server Search Community Apps for FluxDown Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/zerx-lab/fluxdown-server:latest
Last Updated2026-07-28
First Seen2026-07-05

Runtime arguments

Web UI
http://[IP]:[PORT:17800]
Network
bridge
Shell
sh
Privileged
false

Template configuration

Web UI PortPorttcp

Web UI, REST API and WebSocket

Target
17800
Default
17800
Value
17800
DownloadsPathrw

Default download directory

Target
/root/Downloads
DataPathrw

Database, logs and the admin token

Target
/data
Default
/mnt/user/appdata/fluxdown
Value
/mnt/user/appdata/fluxdown