High-Performance Multi-Stream Download Accelerator & Media Ingestion Engine
Native Wayland • Modern GTK3 CSD • .NET 8 AOT • System Tray • Manifest V3 Browser Integration
🌐 Official Website • 📦 Downloads & Releases • 🦊 Firefox Add-on • 🧩 Browser Extensions • ⭐ Reviews & Feedback • ☕ Donate • 🐛 Report an Issue
| Capability | Engineering Detail |
|---|---|
| Parallel Stream Chunking | Dynamic multi-socket segmentation (up to 32 parallel connections per file) with real-time chunk re-assembly |
| Native Wayland Architecture | Zero XWayland dependency; native surface allocation on KDE Plasma 6, GNOME 46+, Sway, Hyprland, and COSMIC |
| StatusNotifierItem (SNI) Tray | Full D-Bus system tray menu with real-time download speed display, remaining ETA, and background persistence |
| Bandwidth Throttle & Limiter | Live toolbar and bottom bar speed limiter presets (50 KB/s to 5 MB/s, custom) to prevent network saturation |
| Audio Notification Chimes | Customizable download completion chime with one-click toggle in main menu and settings |
| 14 Curated Color Themes | 7 Dark and 7 Light refined palettes with full JSON palette import and export support |
| Collapsible Category Badges | Interactive category sidebar with live download item counter badges and collapsible sections |
| Integrated Media Grabber | Built-in yt-dlp stream extraction engine supporting video/audio ingestion from 1,000+ streaming sites |
| Manifest V3 Browser Addons | High-speed local loopback IPC (port 8597) with global shortcut (Alt+Shift+F) and blob capture |
| Multi-Language Desktop UI | Fully localized interface with Hindi, Hinglish, English, Spanish, French, German, Russian, Chinese, Arabic, and flag indicators |
| Android / MTP Sanitizer | Automatic sanitization of illegal characters (: ? * " < > | ( ) [ ] ^ %) for seamless USB file transfers |
What's new
.torrentfiles are now saved by FetchFlow: click a torrent link and FetchFlow picks it up like any other download, filing it under Documents with the rest of your documents. It saves the torrent file itself — opening it is up to your torrent client.- Extension pages name themselves: the connection-error, monitoring-disabled and register pages showed a bare extension address in the tab; they now say what they are.
Bug fixes
- Failures while finishing a download (closing a connection, saving a file) are now written to the log instead of being silently dropped.
- File names suggested by a website are cleaned more consistently before they reach your disk.
- Two internal startup paths could rarely hand a half-initialised object to a download running in the background; both are now properly published.
What's new
- Drag any column to size it your way: the downloads list header is a real column header — pull the edge between the selection tick, file name and size, and the headings move with the columns. A divider marks the grab point.
- A list that breathes: taller GTK4-style header, more air between downloads, roomier rows — on Linux and Windows alike.
- Cohesive, modern surfaces: buttons, menus, popovers and cards now share one look — matching borders in a row, flat GTK4-style corners, and hovers you can actually see.
- Themes that stick: your theme and color scheme now persist across restarts, with Charcoal Blue (dark) and Classic Blue (light) as the new defaults.
Bug fixes
- Fixed selecting multiple downloads with the tick box (ticks now accumulate, untick, and work on every row).
- Fixed the list header bar disappearing on light themes and columns no longer being resizable.
- Fixed selected rows turning header-coloured when FetchFlow is unfocused, and the tick box becoming invisible with them.
- Fixed the Color Scheme dropdown opening empty, and theme/palette choices silently resetting on every launch.
- Fixed the FetchFlow icon missing from the GNOME dock and taskbar.
What's new
- Cleaner upgrade on Windows: if an older version left a startup shortcut behind, FetchFlow now clears it on first launch so the app no longer starts twice at login.
Bug fixes
- Fixed the download page on the website occasionally lagging one release behind.
What's new
- Real icon in the system tray: FetchFlow now shows its own orange download icon on GNOME, KDE, and Wayland panels instead of a generic three-dot placeholder. The icon installs itself, so it also appears correctly on installs made before this fix.
- Launch at login that actually works: FetchFlow reliably starts in the background when you sign in, and automatically repoints itself to the current install location after an update or reinstall.
Bug fixes
- Fixed the "Start FetchFlow when I sign in" option not switching launch-at-login off when unticked.
- Fixed the system tray showing three dots instead of the FetchFlow icon.
- Fixed launch-at-login silently failing after a reinstall while Settings still showed it as switched on.
What's new (Windows & Cross-Platform)
- Integrated CSD Header Bar: Sleek client-side decorated title bar with real-time Sun/Moon theme toggle button directly in the window caption.
- Dynamic Category View Subtitle: Window title bar dynamically reflects your active download view (e.g.
· All Unfinished,· All Finished,· Videos). - Elevated Card-Style Download Rows: Modern rounded cards with 6px border radius, alternating surface tints, smooth 120ms hover animations, and 1px accent active selection borders.
- Capsule Pill Search Input: Full-capsule search bar with integrated quick search button matching modern design systems.
- Softened Dark Scheme Contrast: Replaced pitch-black borders and surfaces with comfortable, refined
#2A3F3Aborders and#131C1Adark background for improved readability. - Windows Package Manager (Winget) Manifests: Added support for automated Windows package installation via Winget (
winget install Mayanktaker.FetchFlow). - Complete Visual Parity: All controls, dialogs, buttons, and layouts now share an identical modern design language across both Linux and Windows.
Bug fixes
- Fixed maximize window boundary overflow under the Windows taskbar.
- Fixed selection highlight borders in download lists to track active color schemes smoothly.
- Fixed window close button behavior to consistently minimize to system tray.
| Feature / Metric | FetchFlow v9 | Internet Download Manager (IDM) | Free Download Manager (FDM) | Wget / cURL |
|---|---|---|---|---|
| Platform Support | Linux (Wayland/X11), Windows | Windows Only | Windows, macOS, Linux | Cross-Platform (CLI) |
| Native Wayland CSD | ✓ Full Native | ✗ No (Windows Only) | ✗ Partial (XWayland) | ✗ CLI Only |
| Stream Acceleration | ✓ Up to 32 Sockets | ✓ Yes | ✓ Yes | ✗ Single-stream |
| Video Sniffing & yt-dlp | ✓ Built-in (1000+ Sites) | ✓ Proprietary | ✗ Limited | ✗ No |
| Browser Extensions | ✓ Manifest V3 | ✓ MV3 | ✓ MV3 | ✗ No |
| License & Cost | ✓ 100% Free & FOSS (GPL-2.0) | ✗ Commercial ($24.95) | ✗ Proprietary Core | ✓ Open Source |
| Resource Footprint | ✓ ~35 MB RAM (AOT Binary) | ~40 MB RAM | ~120 MB RAM (Electron/Qt) | ~10 MB RAM |
FetchFlow distributes self-contained binaries for Windows 11 / 10 and Linux with zero runtime prerequisites.
curl -fsSL https://github.com/Mayanktaker/fetchflow/releases/latest/download/install-fetchflow.sh | bash
# Options: bash install-fetchflow.sh --version 9.1.16.0 --yes --check --uninstallThe script auto-detects your distro, installs system deps (gtk3, ffmpeg, xdg-desktop-portal), then installs the native package (.pkg.tar.zst on Arch-family, .rpm on Fedora, .deb on Debian/Ubuntu) with a portable /opt/fetchflow tarball fallback.
# Via AUR helper (simplest on Arch-family):
yay -S fetchflow-bin
# or: paru -S fetchflow-bin
# Via universal installer (handles deps + fallback automatically):
curl -fsSL https://github.com/Mayanktaker/fetchflow/releases/latest/download/install-fetchflow.sh | bash
# Or manually with the prebuilt package (download first:
# direct-URL pacman needs a .sig we don't publish yet):
sudo pacman -S --needed yt-dlp
curl -fsSL https://github.com/Mayanktaker/fetchflow/releases/latest/download/fetchflow-9.1.16.0-1-x86_64.pkg.tar.zst -o /tmp/fetchflow.pkg.tar.zst
sudo pacman -U /tmp/fetchflow.pkg.tar.zstPackage signatures (.sig) ship once signing is configured — see docs/signing.md.
- Windows Package Manager (Winget):
winget install Mayanktaker.FetchFlow
- Standalone Setup Wizard: Download
fetchflow-windows-x64-setup.exefrom Releases for complete desktop integration, start menu shortcuts, and auto-start persistence. - Portable ZIP: Download
fetchflow-windows-x64-portable-9.1.16.0.zip, extract to any folder, and runfetchflow.exewith zero installation required.
sudo dnf install https://github.com/Mayanktaker/fetchflow/releases/latest/download/fetchflow-9.1.16.0-1.fc44.x86_64.rpmsudo apt install ./fetchflow_9.1.16.0_amd64.deb# Or build via PKGBUILD:
cd app/XDM/XDM.Linux.Installer && makepkg -sitar -xzf fetchflow-linux-x64-9.1.16.0.tar.gz -C /opt/
/opt/fetchflow/fetchflowflatpak-builder --user --install --force-clean build-dir com.mayanktaker.fetchflow.ymlFetchFlow includes native Manifest V3 browser extensions with zero cloud telemetry:
| Browser Family | Supported Browsers | Package | Features |
|---|---|---|---|
| Chromium | Google Chrome, Brave, Microsoft Edge, Opera, Vivaldi | fetchflow-chrome-extension-9.1.16.0.zip |
One-click takeover, context-menu download, in-page blob media capture, video bar, Alt+Shift+F shortcut |
| Gecko | Mozilla Firefox, Floorp, LibreWolf, Waterfox | Firefox Add-ons (AMO) · Direct XPI | Background streaming listener, seamless takeover, media sniffing, Alt+Shift+F shortcut |
- Firefox: Install directly with 1 click from Firefox Add-ons (AMO), or download the standalone .xpi release.
- Chrome / Chromium: Open
chrome://extensions→ Toggle Developer mode → Click Load unpacked → Selectapp/XDM/chrome-extension.
Browser Extension (Chrome / Firefox MV3)
│
│ (WebSocket / HTTP Loopback IPC @ 127.0.0.1:8597)
▼
IpcHttpMessageProcessor.cs
├── VideoUrlHelper.cs (yt-dlp media extraction & format caching)
├── NetworkHelper.cs (Header parsing, referer injection, checksums)
└── DownloadEngine.cs (Parallel socket chunking & multi-part assembler)
▼
GTK3 Modern Shell (XDM.Gtk.UI)
├── Modern CSD HeaderBar & Responsive Paned Sidebar
├── StatusNotifierItem (D-Bus Tray Client for KDE/GNOME/Waybar)
└── SQLite Storage Engine (~/.fetchflow-app-data/downloads.db)
| Shortcut | Action |
|---|---|
| Ctrl + N | Open New Download Dialog |
| Ctrl + V | Open Video Downloader (Media Grabber) |
| Ctrl + B | Open Batch Download Dialog |
| Ctrl + Q | Exit FetchFlow Completely |
| Delete | Delete Selected Download Entry |
| Shift + Delete | Delete Download and Delete File from Disk |
| F5 | Refresh Download List & Active Speeds |
| Ctrl + , | Open Settings & Preferences |
| Alt + Shift + F | Open Browser Extension Media & Download Panel |
- .NET SDK 8.0 (
net8.0) - GTK3 development libraries (
gtk3,glib2,cairo,pango) - Packaging tools:
tar,zip(optional:dpkg-deb,makepkg)
Note on
rpmbuild:build_all.shrequires it, because every release ships an.rpm. It is not packaged for Arch/Manjaro and is not in the AUR, so a local full release build is not possible on Arch-family systems. Either push av*tag and let GitHub Actions cut the release, or runbuild_all.shon Fedora (dnf install rpm-build). For a local Arch-family install of just the Arch package, use./scripts/rebuild-install.sh.
bash build_all.shAll compiled packages land in fetchflow-release/.
Build and install straight from source — runs the test suite, publishes the binary, builds the
Arch package, installs it with pacman, then repairs the launch-at-login entry:
./scripts/rebuild-install.sh # build + install (asks for your sudo password)
./scripts/rebuild-install.sh --no-install # build only, no sudoThis is a development loop only — for a full release matrix use build_all.sh.
dotnet test app/XDM/XDM.Tests/XDM.Tests.csprojshellcheck -S warning scripts/*.sh build_all.sh xdm-updater.sh app/XDM/XDM.Linux.Installer/make-arch-pkg app/XDM/XDM.Linux.Installer/make-deb-pkg app/XDM/XDM.Linux.Installer/make-rpm-pkgRuns automatically on every push via .github/workflows/lint.yml.
| File / Folder | Standard Location | Flatpak / Sandbox Location |
|---|---|---|
| Database & Metadata | ~/.fetchflow-app-data/downloads.db |
$XDG_CONFIG_HOME/fetchflow/downloads.db |
| Queues Configuration | ~/.fetchflow-app-data/queues.db |
$XDG_CONFIG_HOME/fetchflow/queues.db |
| Crash & Diagnostic Log | ~/.fetchflow-app-data/crash.log (5 MB auto-rotated) |
$XDG_CONFIG_HOME/fetchflow/crash.log |
| Installation Directory | /opt/fetchflow/ |
/app/bin/ |
FetchFlow allows only one running instance. If a previous instance ever becomes unresponsive (its internal message port stops answering), the next launch detects this within a couple of seconds and automatically takes over as the primary instance — the app always starts instead of silently exiting. The IPC listener is also supervised and rebinds itself if it ever stops unexpectedly, keeping browser-extension connectivity alive.
Your feedback powers FetchFlow's continuous refinement! If FetchFlow has accelerated your downloads or simplified media ingestion:
- Leave a Review on Firefox Add-ons (AMO): If you use the Firefox integration, please take 30 seconds to rate us and share your feedback on the FetchFlow AMO Review Page. It helps other users discover high-performance, telemetry-free downloading.
- Star & Share the Repository: A ⭐ on GitHub helps boost visibility across the open-source community.
- Feature Requests & Bug Reports: Have an idea for improvement, new video platform support, or UI enhancements? Open a discussion or ticket on GitHub Issues.
FetchFlow is 100% free, open-source, zero-telemetry, and ad-free software. We build and maintain high-performance native desktop clients and browser integrations entirely independently.
If FetchFlow brings value to your daily workflow, consider supporting ongoing development, hosting, and test hardware:
PayPal Account: mayanktaker_hell@yahoo.co.in
Click here to donate via PayPal →
- Developer & Maintainer: Mayanktaker Computers & Web Development
- Open-Source Heritage: Built upon the original XDM foundation by Subhra Sankha Sarkar.
- License: GNU General Public License v2.0 (GPL-2.0)