Note
Motrix Next uses Aria2 Next as its download engine, a maintained fork of aria2 modernized for current toolchains, dependencies, and release workflows. It preserves the original aria2 interfaces while modernizing the architecture and fixing long-standing bugs and upstream issues.
Motrix by agalwood was one of the best open-source download managers available — clean UI, aria2-powered, cross-platform. It inspired thousands of users and developers alike.
However, the original project has been largely inactive since 2023. The Electron + Vue 2 + Vuex + Element UI stack accumulated technical debt, making it increasingly difficult to maintain, extend, or package for modern platforms.
Motrix Next is a ground-up rewrite — same download manager spirit, entirely new codebase.
| Layer | Motrix (Legacy) | Motrix Next |
|---|---|---|
| Runtime | Electron | Tauri 2 (Rust) |
| Frontend | Vue 2 + Vuex | Vue 3 Composition API + Pinia |
| UI Framework | Element UI | Naive UI |
| Language | JavaScript | TypeScript + Rust |
| Styling | SCSS + Element theme | Vanilla CSS + custom properties |
| Engine Mgmt | Node.js child_process |
Tauri sidecar |
| Build System | electron-builder | Vite + Cargo |
| Bundle Size | ~80 MB | ~20 MB |
| Auto-Update | electron-updater | Tauri updater plugin |
The overall UI layout stays true to Motrix's original design — the sidebar navigation, task list, and preference panels all follow the familiar structure that made Motrix intuitive from day one.
What changed is everything underneath. Every transition and micro-interaction has been carefully tuned to follow Material Design 3 motion guidelines:
- Asymmetric timing — enter animations are slightly longer than exits, giving new content time to land while dismissed content leaves quickly
- Emphasized easing curves — decelerate on enter (
cubic-bezier(0.2, 0, 0, 1)), accelerate on exit (cubic-bezier(0.3, 0, 0.8, 0.15)), replacing genericeasecurves throughout the codebase - Spring-based modals — dialogs use physically-modeled spring animations for a natural, responsive feel
- Consistent motion tokens — all durations and curves are defined as CSS custom properties, ensuring a unified rhythm across 12+ components
- Multi-protocol downloads — HTTP, FTP, BitTorrent, Magnet,
.torrent, and Metalink tasks - BitTorrent — Selective file download, DHT, peer exchange, encryption controls, metadata caching, GeoIP peer flags, and tracker probing
- Browser extension integration — Embedded Extension API with independent authentication, download confirmation, smart auto-submit, filename hints, referer/cookie forwarding, and real-time controls (Chrome Web Store · Edge Add-ons)
- Safe filename handling — Content-Disposition, RFC 2047, non-UTF-8, percent-encoded, and extensionless URL resolution with path traversal sanitization
- Download organization — Favorite and recent folders, optional file-type categorization, stale-record cleanup, and completed history backed by SQLite
- Concurrent downloads — Independent controls for active tasks, HTTP connections per server, segments per file, and BT peer limits
- Speed control — Global and per-task upload/download limits with day-of-week and time-of-day scheduling
- System integration — Tray operation, optional tray speed display, macOS Dock badge/progress, protocol handlers for
magnet://,thunder://, andmotrixnext:// - Lightweight mode — Destroys the WebView on minimize-to-tray while Rust keeps the engine, task monitor, notifications, history, and extension routing alive
- Notifications and power options — Native task start/complete/failure notifications, keep-awake during downloads, and optional shutdown after completion
- Network controls — Scoped proxy support for downloads, app updates, and tracker updates, plus system proxy detection
- Auto-update channels — Stable, Beta, and Latest Across Channels policies with separate download and install phases
- Diagnostics — Structured logs, exportable diagnostic ZIPs, database integrity checks, automatic DB rebuild, and Linux GPU rendering fallback
- Personalization — Light/dark/system theme, 10 color schemes, 26 languages, and first-launch system language detection
- Lightweight bundle — Tauri 2 + Rust backend with a ~20 MB application bundle
Download the latest release from GitHub Releases.
Homebrew (recommended):
brew tap AnInsomniacy/motrix-next
brew install --cask motrix-next
xattr -cr /Applications/MotrixNext.app # remove quarantine (app is unsigned)Or download the .dmg installer from Releases:
| Architecture | File |
|---|---|
| Apple Silicon | MotrixNext_x.x.x_aarch64.dmg |
| Intel | MotrixNext_x.x.x_x64.dmg |
The .app.tar.gz macOS artifacts are published for the Tauri updater and Homebrew cask automation.
Tip
If macOS says the app is "damaged and can't be opened", see the FAQ below.
Download the installer from Releases:
| Architecture | File |
|---|---|
| x64 (most PCs) | MotrixNext_x.x.x_x64-setup.exe |
| ARM64 | MotrixNext_x.x.x_arm64-setup.exe |
Run the installer — it takes about 10 seconds, no reboot required.
Download from Releases:
Debian / Ubuntu:
sudo dpkg -i MotrixNext_x.x.x_amd64.debFedora / RHEL:
sudo rpm -i MotrixNext-x.x.x-1.x86_64.rpmOther distributions — use the .AppImage:
chmod +x MotrixNext_x.x.x_amd64.AppImage
./MotrixNext_x.x.x_amd64.AppImageAll formats are available for both x64 and ARM64.
macOS says the app is "damaged and can't be opened"
This app is not code-signed. Open Terminal and run:
xattr -cr /Applications/MotrixNext.appThis removes the quarantine flag that macOS Gatekeeper applies to unsigned apps. If you installed via Homebrew with --no-quarantine, you won't hit this issue.
Why is there no portable version?
Motrix Next relies on Aria2 Next as its download engine and launches it through a bundled motrix-next-engine sidecar process at runtime. The sidecar binaries are built and released from the aria2-next repository for all 6 supported desktop targets. This architecture means:
- The Aria2 Next sidecar binary must exist alongside the main executable — it cannot be embedded into a single
.exe. - Deep links (
magnet://,thunder://) and file associations (.torrent) require Windows registry entries that only an installer can configure. - The auto-updater needs a known installation path to replace files in place.
These are fundamental constraints of the Tauri sidecar model and the Windows operating system, not limitations we can work around. Notable Tauri projects like Clash Verge Rev (80k+ stars) previously shipped portable builds but discontinued them due to the same set of issues.
We provide NSIS installers for Windows — lightweight (~20 MB), fast to install, and fully featured.
Motrix Next is not code-signed on macOS or Windows, so your browser or antivirus software may show a security warning when downloading or running the installer.
The app is fully open-source and every release binary is built automatically by GitHub Actions CI. For added peace of mind, you can always build from source.
Note
See our Code Signing Policy and Privacy Policy.
# Clone the repository
git clone https://github.com/AnInsomniacy/motrix-next.git
cd motrix-next
# Install frontend dependencies
pnpm install
# Start development server (launches Tauri + Vite)
pnpm tauri dev
# Build for production
pnpm tauri buildmotrix-next/
├── src/ # Frontend (Vue 3 + TypeScript)
│ ├── api/ # aria2-compatible JSON-RPC client
│ ├── components/ # Vue components
│ │ ├── about/ # About panel
│ │ ├── common/ # Shared UI primitives
│ │ ├── layout/ # Sidebar, speedometer, navigation
│ │ ├── preference/ # Settings pages, update dialog
│ │ ├── task/ # Task list, detail, add task
│ │ └── tray/ # Tray action bridge
│ ├── composables/ # Reusable composition functions
│ ├── router/ # Vue Router configuration
│ ├── shared/ # Shared utilities & config
│ │ ├── constants/ # Split constant modules
│ │ ├── locales/ # 26 language packs
│ │ ├── utils/ # Pure utility functions (with tests)
│ │ ├── types.ts # TypeScript interfaces
│ │ ├── constants.ts # App constants & defaults
│ │ └── configKeys.ts # Persisted config key registry
│ ├── stores/ # Pinia state management (with tests)
│ ├── styles/ # Global CSS custom properties
│ └── views/ # Page-level route views
├── src-tauri/ # Backend (Rust + Tauri 2)
│ ├── src/
│ │ ├── aria2/ # Native Rust aria2 JSON-RPC client
│ │ ├── commands/ # Tauri invoke handlers (config, engine, fs, etc.)
│ │ ├── engine/ # Aria2 Next sidecar lifecycle (args, state, cleanup)
│ │ ├── services/ # Runtime services (stat, speed, monitor, HTTP API, deep links)
│ │ ├── db_guard.rs # SQLite health checks and rebuild guard
│ │ ├── error.rs # AppError enum
│ │ ├── gpu_guard.rs # Linux GPU compatibility guard
│ │ ├── history.rs # SQLite history persistence
│ │ ├── menu.rs # Native menu builder
│ │ ├── tray.rs # System tray setup
│ │ ├── upnp.rs # UPnP/IGD port mapping
│ │ └── lib.rs # Tauri builder & plugin registration
│ ├── binaries/ # Aria2 Next sidecar binaries (6 platforms)
│ └── migrations/ # SQLite schema migrations
├── scripts/ # bump-version.sh, release.sh
├── .github/workflows/ # CI (ci.yml) + Release (release.yml)
└── website/ # Landing page (static HTML)
PRs and issues are welcome! Please read the Contributing Guide and Code of Conduct before getting started.
- Motrix by agalwood and all its contributors
- Aria2 Next — the maintained download engine at the core
- Community translators who contributed 26 locale packs for worldwide accessibility
Built in the hours I should've been writing my thesis — I'm a PhD student surviving on instant noodles 🍜
This app is not code-signed on macOS or Windows — Apple charges $99/year, and a Windows Authenticode certificate costs $300–600/year. That's a lot of instant noodles.
Buy me a coffee ☕ — maybe one day I can afford those certificates, so antivirus software stops treating my app like a criminal 🥲
MIT — Copyright (c) 2025-present AnInsomniacy


