Skip to content
maniebraPublic

About

A Terminal-Based Download Manager Inspired by Neovim & IDM

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

muxget

A terminal download manager that drives aria2c, yt-dlp and wget for you.

Paste a url, muxget picks the right backend, queues it, and shows live progress. Direct files, torrents and magnets go to aria2c, everything else goes to yt-dlp, and playlists expand into one row per video. Point it at a page instead and it crawls for links, or mirrors the whole site for offline use.

Queues have their own slots, schedules, bandwidth quotas and retry limits, and the whole list, pauses included, comes back where you left it.

muxget running three downloads

Documentation: maniebra.github.io/muxget

What it does

  • Files, FTP, torrents, magnets, videos, playlists, whole channels, whole sites
  • Queues with their own concurrency, so a busy lane never blocks another
  • Resumes from the partial file, across restarts, pauses included
  • Existing-file picker with resume, overwrite, rename and skip choices
  • Time windows, bandwidth quotas, retry counts and periodic re-syncs per queue
  • Routing rules by extension, domain, url pattern or size, with captures
  • Crawls a page for every file it links to, or mirrors the site offline
  • Vim keys, mouse support, six themes, and a built-in manual on ?

Install

aria2c and yt-dlp on your PATH, plus wget for crawling. curl is optional for showing the remote size of an existing direct HTTP download.

cargo install --path .

Prebuilt .deb, .rpm, AppImage, MSI and tarballs are on the releases page. Full steps are in the install guide.

Usage

muxget                                  # empty, add urls with `a`
muxget https://example.com/linux.iso    # start with urls queued
muxget -d ~/Downloads -j 5 <url>...     # directory and concurrent slots
muxget --theme nord                     # theme for this run
muxget --log-level debug                # chattier log, still in ~/.config/muxget/muxget.log
flag means
-d <dir> download directory for this run, otherwise the saved one, otherwise $PWD
-j <n> slots for the default queue this run, 1-16
--theme <name> theme for this run, or set MUXGET_THEME
--log <file|off> where the log is written, off for nowhere, or set MUXGET_LOG
--log-level <level> debug, info (default), warn, error, or set MUXGET_LOG_LEVEL
--log-format <template> line template, {date} {time} {level} {text}, or set MUXGET_LOG_FORMAT
--log <file> log file for this run, off to disable, or set MUXGET_LOG (default <config>/muxget.log)
--log-level <level> debug, info, warn or error, or set MUXGET_LOG_LEVEL (default info)
--log-format <template> line template, or set MUXGET_LOG_FORMAT. Placeholders: {date} {time} {level} {text}
<url>... queued on startup, routed by the same rules as a

Nothing on the command line is persisted. -d, -j and --theme override the saved values for that run only.

Everything the log tab shows is also appended to ~/.config/muxget/muxget.log, rotated to muxget.log.1 once it passes 1 MB.

Everything the log tab shows is also appended to ~/.config/muxget/muxget.log, which is rotated to muxget.log.1 once it passes 1 MB.

The keys you need first

key action
a add a url
v add the urls in the clipboard
c crawl a page for links
p / x / d pause or resume / stop / delete the selection
Space M A select a row / a range / everything on screen
j k [ ] move the cursor, switch queue
s settings
? the built-in manual
q quit

g and i open two-key menus for queue and item commands. The full list is in the keyboard reference.

Documentation

The site is the complete guide, and docs/ is its source.

page covers
Install packages, requirements, command line flags
Getting started the screen, moving around, selecting rows
Downloading the add form, playlists, channel sync, clipboard, passwords
Queues and schedules slots, time windows, quotas, retries
Crawling link discovery and offline mirrors
Routing rules queues, folders and backends by rule
Settings and themes backend flags, the log, themes
Files on disk what is saved and what comes back
How it works processes, parsing, the event loop, adding a backend
Troubleshooting when something does not download

Contributing

src/
  models/       downloads, queues, crawls, backends, option specs, state file
  views/        table, sidebars, dialogs, options panel, themes
  controllers/  state, event loop, keys, queue, crawl and settings actions
  utils/        progress parsing, argument files, credential files
tests/          mirrors src/

cargo test runs the suite. Adding a backend is four functions.

License

MIT, see LICENSE.

About

A Terminal-Based Download Manager Inspired by Neovim & IDM

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages