A modern, open-source download manager for Windows
Multi-segment downloading • Pause/Resume • Beautiful UI • Free & Open Source
Features • Installation • Development • Credits • License
- ⚡ Multi-Segment Downloads — Split files into multiple segments downloaded in parallel for maximum speed (inspired by XDM/IDM)
- ⏸️ Pause & Resume — Pause downloads and resume them later, even after closing the app
- 📂 Smart Categorization — Automatically categorizes downloads by file type (compressed, documents, music, videos, programs)
- 🎨 Modern Dark UI — Beautiful, clean interface designed for productivity
- 🔄 Retry Failed Downloads — Automatically retry failed segments without restarting the entire download
- 📊 Real-Time Segment Visualization — See each download segment's progress in real-time
- 🔍 Search & Filter — Quickly find downloads with search and category filters
- ⚙️ Configurable — Customize max segments, concurrent downloads, speed limits, and more
- 💾 State Persistence — Downloads survive app restarts with automatic state saving
- 🖥️ Custom Title Bar — Native-feeling frameless window with custom controls
QDM is built with a modern tech stack:
- Electron — Cross-platform desktop framework
- React 18 — UI library with hooks
- TypeScript — Type safety throughout
- Vite — Lightning-fast build tool
- Tailwind CSS — Utility-first styling
- Zustand — Lightweight state management
- Lucide React — Beautiful icons
The download engine implements multi-segment/multi-connection downloading, inspired by XDM's architecture:
- URL Probing — HEAD request to determine file size, resumability, and filename
- Segment Splitting — File divided into N segments based on configuration
- Parallel Download — Each segment downloaded via separate HTTP connection with Range headers
- Progress Tracking — Real-time speed calculation with moving averages
- File Assembly — Segments assembled into final file in correct order
- State Persistence — Segment states saved to disk for crash recovery
┌──────────────────────────────────────────────┐
│ File (100 MB) │
├───────────┬───────────┬──────────┬───────────┤
│ Segment 1 │ Segment 2 │ Segment 3│ Segment 4 │
│ 25 MB │ 25 MB │ 25 MB │ 25 MB │
│ ████████░ │ ██████░░░ │ ████░░░░ │ ██░░░░░░░ │
│ Conn #1 │ Conn #2 │ Conn #3 │ Conn #4 │
└───────────┴───────────┴──────────┴───────────┘
Download the latest release from the Releases page:
| File | Description |
|---|---|
QDM-Setup-x.x.x-x64.exe |
Windows Installer (NSIS) — installs to Program Files |
QDM-Portable-x.x.x.exe |
Portable version — no installation needed, run anywhere |
# Clone the repository
git clone https://github.com/CloudflareHackers/QDM.git
cd QDM
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run electron:build# Start development server (UI only, hot-reload)
npm run dev
# Start with Electron (full app)
npm run electron:dev
# Build production app
npm run electron:build# Build NSIS installer (.exe setup)
npm run electron:build:win
# Build portable version (single .exe, no install)
npm run electron:build:win:portable
# Output will be in the release/ folder:
# release/QDM-Setup-1.0.0-x64.exe (installer)
# release/QDM-Portable-1.0.0.exe (portable)The project includes a GitHub Actions workflow that automatically builds Windows executables:
- On every push to
main: Builds are uploaded as GitHub Actions artifacts - On tag push (e.g.,
v1.0.0): Automatically creates a GitHub Release with downloadable .exe files
To create a release:
git tag v1.0.0
git push origin v1.0.0
# GitHub Actions will build and create a release with .exe filesYou can build Windows .exe from macOS or Linux using Wine:
# Install Wine (macOS)
brew install --cask wine-stable
# Then build normally
npm run electron:build:winTo set a custom app icon:
- Create a 512×512 PNG image and save as
build/icon.png - Generate platform icons:
npx electron-icon-builder --input=build/icon.png --output=build
- This creates
build/icon.ico(Windows) andbuild/icon.icns(macOS)
| Command | Description |
|---|---|
npm run dev |
Start dev server (UI only, hot-reload) |
npm run electron:dev |
Start full Electron app in dev mode |
npm run electron:build |
Build for current platform |
npm run electron:build:win |
Build Windows NSIS installer + portable |
npm run electron:build:win:portable |
Build Windows portable only |
npm run electron:build:linux |
Build Linux AppImage + .deb |
npm run electron:build:mac |
Build macOS .dmg |
QDM/
├── electron/ # Electron main process
│ ├── main.ts # App entry, window management, IPC
│ ├── preload.ts # Context bridge (main ↔ renderer)
│ ├── download-engine.ts # Multi-segment download engine
│ └── types.ts # Shared TypeScript types
├── src/ # React renderer
│ ├── main.tsx # React entry
│ ├── App.tsx # Root component
│ ├── index.css # Tailwind + custom styles
│ ├── components/ # UI components
│ │ ├── TitleBar.tsx # Custom window title bar
│ │ ├── Sidebar.tsx # Category navigation
│ │ ├── Toolbar.tsx # Action toolbar
│ │ ├── DownloadList.tsx # Download list with segments
│ │ ├── NewDownloadDialog.tsx
│ │ ├── SettingsDialog.tsx
│ │ └── AboutDialog.tsx
│ ├── store/ # Zustand state management
│ ├── types/ # TypeScript types
│ └── utils/ # Formatting utilities
├── index.html # HTML entry
├── vite.config.ts # Vite + Electron config
├── tailwind.config.js # Tailwind theme
└── package.json
By subhra74 — github.com/subhra74/xdm
QDM's download engine architecture is directly inspired by XDM's brilliant multi-segment download approach. XDM pioneered the open-source download manager space with features like:
- Multi-segment file downloading with dynamic piece splitting
- HTTP Range header-based resume support
- Segment state persistence and crash recovery
- Speed calculation with moving averages
QDM is a spiritual successor to XDM, which is no longer actively maintained. We carry forward its legacy with a modern tech stack and fresh UI design. Thank you, subhra74, for your incredible work.
By Tonec Inc.
IDM has been the gold standard in download acceleration for decades. Their pioneering work in segmented download technology established the patterns that the entire download manager category follows today. We acknowledge and honor their hard work and innovation.
QDM is built on the shoulders of giants:
- Electron by GitHub
- React by Meta
- Vite by Evan You
- Tailwind CSS by Tailwind Labs
- Zustand by Poimandres
- Lucide Icons
MIT License — see LICENSE for details.
Made with ❤️ by CloudflareHackers