A modern download manager powered by the in-house XferRust engine (native Rust implementation), optimized for Windows, macOS, Linux, and Android. Downloads run over HTTP(S), BitTorrent (including magnet links) and HLS (M3U8) playlists, with uTP transport, automatic port mapping, automatic tracker synchronization, task prioritization, batch management, and advanced download presets. Browser-extracted links such as ed2k:// and thunder:// are also recognized and handed over to the app — pair the desktop app with the browser extension to grab web videos, or use the Android client's built-in browser with resource sniffing and a native player.
Light Mode |
Dark Mode |
- Lerxu runs the XferRust engine as a separate process and drives it over local JSON-RPC (
127.0.0.1:16800). The app automatically picks the best "Max Connections per Server" strategy for the engine in use. - Each task supports up to 128 concurrent segments (32 connections per server by default), backed by a built-in 128M disk cache and connection reuse for smoother parallel downloads.
- HLS (M3U8) tasks are driven by the engine itself, which reads the playlist, downloads the segments and splices them into a single file. Variant selection, segment concurrency (cap 64), write mode and segment retries are configurable in Preferences, and interrupted downloads resume.
- Up to 10 concurrent tasks by default — adjustable in Preferences.
- Up to 128 peer connections per torrent by default (the engine cap is 200).
- The engine restarts automatically after a crash (up to 5 attempts with backoff), with task and session state restored. Unfinished tasks stay paused after a restart and can be resumed manually.
- Note: real concurrency for single-source downloads depends on the segment count; torrent and multi-mirror downloads can stack concurrency for faster overall speed.
- High-speed Downloads: Optimized for maximum download performance, with a built-in disk cache and connection reuse for smoother multi-task downloads
- Multi-threaded Support: Up to 128 concurrent segments per task
- Concurrent Downloads: Manage up to 10 download tasks simultaneously
- Stable Connections: Robust error handling, automatic retry, and resume support
- Crash Self-healing: The engine restarts automatically after an abnormal exit, restoring task state
- Memory Optimization: Automatically releases memory when all windows are hidden or minimized
- HTTP/HTTPS: Download directly from websites, with multi-connection acceleration, Gzip, Keep-Alive, and resume support
- HLS (M3U8): The manifest is parsed by the engine, which downloads the playlist's segments and splices them into one file; supports bitrate variant selection, AES-128 encrypted segments, configurable segment concurrency and retries, and resume
- BitTorrent: Full torrent file support with selective downloading; uTP/TCP dual transport, DHT, LPD, PeX, and encryption work out of the box
- Magnet Links: Direct downloads without .torrent files; choose files freely once metadata is ready
- Request Headers: Per-task
RefererandUser-Agent, plus arbitrary custom headers, so links that require them can be fetched - Link Takeover:
ed2k://andthunder://links are recognized and handed over to the app (thunder://decodes to a plain HTTP download and is off by default) - Not supported: FTP/SFTP and Metalink — the engine only implements HTTP(S) and BitTorrent.
ed2k://is link recognition and browser takeover only; native ED2K downloading is not implemented.
- Transport Protocols: uTP (BEP 29) and TCP dual stack, configurable as "uTP-first with TCP fallback / uTP-only / TCP-only", with runtime hot switching
- Port Mapping: Automatic UPnP and NAT-PMP mapping for the BT listen port to improve connection success
- Network Discovery: DHT (IPv4/IPv6 dual stack), Local Peer Discovery (LPD), and Peer Exchange (PeX)
- Built-in Trackers & Auto Sync: Pre-configured tracker servers plus subscription-based scheduled updates, so downloads work out of the box
- BT Encryption: Adaptive / forced encryption modes for compatibility with various network environments
- Peer Management: Live peer list in task details (client identification, piece progress), manual peer banning, and a custom IP ban list
- File Selection: Freely choose which files to download for magnet and torrent tasks once metadata is ready
- Seeding Control: Set share-ratio and seeding-time goals; auto-pause or keep seeding on completion
- Online Video Download (Browser Extension): Recognize web videos via the browser extension and send them to the app with one click to create download tasks; works in Chrome, Edge, Opera and other Chromium-based browsers as well as Firefox (now published on the official Firefox add-ons store)
- Download Takeover: Clicks on download links on web pages (e.g., links with a download attribute or common file extensions) can be handed over to Lerxu, with support for excluding specific sites or file types and a shortcut to temporarily bypass
- Video Recognition: Supports multiple video formats, including DASH (audio and video streams are paired and merged after download) and HLS (the M3U8 manifest is handed to the engine as a single item — segments are never expanded by the extension)
- Unified Task Management: Video resources appear as regular download tasks in the task list, supporting the same pause/resume/delete management experience as other tasks
- Merge Progress Display: Audio/video that needs merging enters a "merging" state with visible progress after download, and correctly merges when multiple segmented videos are sent at once; the FFmpeg status is shown in Preferences
- Built-in Browser: The Android client ships its own browser with tab management, history and pull-to-refresh, so you can switch between the downloader and the browser at any time
- Resource Sniffing: Media addresses found while browsing are collected in a resource panel and can be sent to the download engine with one tap
- Native Player: Page videos can be played fullscreen in the app's own player, with play/pause, double-tap to seek, playback speed and aspect ratio, looping, keep-screen-on, and a screen lock against mistaps; the player also carries a download entry that hands the current video (with filename and estimated size) to the engine
- Incognito Windows: Open an incognito window with a separate identity, gated behind biometric or device-password authentication
- Ad Blocking: Ad requests are blocked and ad slots hidden by default; can be turned off in Settings
- Search Engine & Default Browser: Picks a reachable search engine for the current network, and can register as the system default browser for http / https links
- Default Entry: Choose whether the app opens into the downloader or the browser
- Clean Interface: Modern, intuitive design with dark / light / system-following themes
- Custom Background: Background images and solid colors, UI opacity, frosted-glass blur (native macOS Vibrancy transparency)
- Native Experience: Custom title bar on Windows / Linux; preferences embedded in the main window for faster startup
- Live Speed Display: The macOS tray icon and Dock icon show both download and upload speeds, with a brand-new tray icon
- Task Details Drawer: Overview, activity, trackers, peers, files, and BT piece map in one place
- Standalone Progress Window: Open a task's progress in its own window, automatically for the first task or for every new task
- Completion Dialog: A dedicated window when a download completes (toggleable in Preferences)
- Clipboard Auto-paste: Copied download links are automatically filled into the new-task dialog
- System Tray Integration: Quick access and status monitoring
- Download Notifications: Real-time alerts when downloads complete, with configurable click actions
- Task Plan: Schedule task start / pause, and pick an action for when everything finishes (shut down, sleep, quit)
- Speed Control: Set upload and download speed limits
- File Management: Organize downloaded files by category and location, with favorite and recent directories
- Drag & Drop: Drop links or torrent files onto the window to create tasks
- Multilingual: Simplified Chinese, Traditional Chinese, and English
- Tracker Auto Sync: Automatic scheduled tracker list updates for improved torrent performance
- Automatic Port Mapping: UPnP and NAT-PMP automatically open network ports
- Custom Download Identity: Customize the download request identity (User-Agent) for enhanced compatibility
- Batch Operations: Multi-select tasks to pause, resume, or remove them together
- Download Security Scan: Scan completed files with the system antivirus tool or a custom scanner
- Proxy Support: System proxy or custom proxy, applied per download scope (downloads, app updates, tracker updates)
- Update Channels: Choose between stable, preview, or all release channels, with automatic installation after the update package downloads
- Engine Info: The current engine, its version, architecture, and the capability list reported by the engine itself
- Local RPC Service: Optional JSON-RPC endpoint so external tools can drive the same engine
- File Categorization: Auto-sort files by type
- Custom Categories: User-defined file categorization rules
- Task Priority: Set task priority values to influence download order and resource allocation
- Custom Download File Extension: Customize the file extension for in-progress downloads
- Set File Modification Date to Completion Time: Optionally set downloaded file modification dates to match completion time
- Advanced Option Presets: Name, save, apply, and delete presets for advanced options
- Link Input Optimization: Auto-deduplicate links; auto-newline and cursor positioning after paste or autofill
- Custom Shortcuts: Set or reset shortcuts for common commands in the "Preferences > Basic > Shortcuts" card
Lerxu currently supports the following platforms:
- Windows (10, 11) x64
- macOS (Intel x64; Apple Silicon arm64)
- Linux (x64, arm64)
- Android (arm64): shares the same download engine as the desktop app, with a mobile-first interface; besides the downloader it ships a built-in browser (tabs, resource sniffing, native player, incognito windows, ad blocking) and can register as the system default browser. It also has its own update-channel selection (stable / beta / all releases)
- Visit the GitHub Releases page
- Download the latest
Lerxu-Setup-<version>.exeinstaller - Run the installer and follow the on-screen instructions
- Visit the GitHub Releases page
- Download
*.dmg(x64/arm64) or*-mac.zip/*-arm64-mac.zip(x64/arm64) - Using
*.dmg: Double-click to open, drag the app to/Applications - Using
*.zip: Extract and move the app to/Applications - If prompted "cannot verify developer" on first launch, go to "System Settings > Privacy & Security" and click "Open Anyway", or right-click the app icon in Finder and select "Open"
-
AppImage (Recommended):
- Download
*.AppImage(x64orarm64) - Grant execute permission:
chmod +x Lerxu-*.AppImage - Run:
./Lerxu-*.AppImage
- Download
-
Debian/Ubuntu (
.debpackage):- Download
lerxu_*_amd64.deborlerxu_*_arm64.deb - Install:
sudo dpkg -i lerxu_*.deb - If dependency issues occur:
sudo apt -f install
- Download
-
Other distributions: Use the AppImage method.
- Visit the GitHub Releases page
- Download
app-release.apk - Install on an arm64 device (the app only supports
arm64-v8a)
- Node.js (v22.12.0 or higher)
- npm
- Git
Extra tooling needed for the Android client or the browser extension (JDK 17 / Android SDK, etc.) is listed in the developer documentation.
-
Clone the repository:
git clone https://github.com/MochengCK/Lerxu.git cd Lerxu -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Build for production (installers land in
release/):npm run build
| Script | What it does |
|---|---|
npm run dev |
Development mode with hot reload |
npm run build |
Build installers for the current platform |
npm run build:dir |
Build an unpacked directory only (used by CI for runtime tests) |
npm run build:applesilicon |
Build the macOS arm64 target |
npm run build:github |
Build the front-end bundles only (used by CI, no installer) |
npm run release |
Build and publish (used by CI for releases) |
npm run preview |
Preview the built front-end bundles locally |
npm run build:extension |
Package the browser extension (Chromium + Firefox) |
npm run test:extension |
Run the browser extension tests |
npm run lint:extension |
Lint the packaged Firefox extension with web-ext |
npm run lint |
ESLint over src |
npm run lint:fix |
ESLint with --fix |
npm run lint:workflows |
Validate GitHub Actions workflows (YAML + expression semantics) |
Lerxu/
├── src/ # Application source
│ ├── main/ # Electron main process (engine lifecycle, tasks, config, IPC)
│ ├── renderer/ # Electron renderer process (Vue 3)
│ └── shared/ # Shared utilities, locales and the engine protocol adapter
├── extra/ # Built-in download engine binaries per platform
├── extensions/ # Browser extension (video sniffing & download takeover)
├── Android/ # Android client (Kotlin + Compose)
├── static/ # Static assets
├── scripts/ # Build scripts (extension packaging, workflow checks)
├── test/ # Runtime tests (engine / app / extension)
├── build/ # Packaging hooks and platform icons
├── docs/ # Developer documentation
├── screenshots/ # Documentation screenshots
├── .github/workflows/ # CI and release pipelines
├── package.json # Project configuration
└── README.md # Project documentation
The engine source (a separate repository), engine binary backfill, Android/extension build steps, tests and CI configuration are covered in the developer documentation.
Contributions are welcome! Whether you're fixing bugs, adding new features, or improving documentation, we appreciate your help.
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Create a Pull Request
- Follow the existing code style
- Write clear and concise commit messages
- Add tests for new features
- Update documentation as needed
- This project is based on the agalwood open-source project Motrix, with extensive modifications and feature extensions
- UI Framework: Vue.js + Element Plus
- Desktop Framework: Electron
- Download Engine: XferRust (in-house Rust download engine)
If you encounter any issues or have questions:
- Submit an issue on GitHub
- Join our community for discussion and support
This project is open-sourced under the Apache License 2.0.


