mdx is a simple CLI application for downloading manga from the MangaDex website. The program uses MangaDex API to fetch manga content.
- Works on Windows, MacOS, Linux, Android.
- Downloads multiple chapters.
- Saves manga in CBZ, PDF, EPUB formats.
- Saves multiple chapters in one file.
- Interactive downloading mode.
- Automatically generates metadata for downloaded files, adapted for e-readers.
- Searches manga.
- Displays information about manga.
Download the latest release HERE
Install automatically with PowerShell script:
powershell -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/arimatakao/mdx/main/install.ps1 | iex"Or download mdx-*-windows-installer.msi and run this command in cmd:
msiexec /i "C:\path\to\mdx-...-windows-installer.msi"Note: Administrator permission may be required.
Install with the script (adds mdx to ~/.local/bin, no sudo; if needed, also appends it to your shell PATH):
curl -fsSL https://raw.githubusercontent.com/arimatakao/mdx/main/install.sh | bashOr download the macOS archive (mdx_*_darwin_*.tar.gz) and run:
tar -xzf mdx_*_darwin_*.tar.gz
./mdx --helpQuick install (adds mdx to ~/.local/bin, no sudo; if needed, also appends it to your shell PATH):
curl -fsSL https://raw.githubusercontent.com/arimatakao/mdx/main/install.sh | bashInstall via Linux package manager (supported: apt, dnf, yum, apk, pacman):
curl -fsSL https://raw.githubusercontent.com/arimatakao/mdx/main/install.sh | sudo bash -s -- --pkgManual way: first download the package file from the Releases page, then run the install command for your distro.
Debian/Ubuntu (mdx_*_linux_*.deb):
sudo apt install ./mdx_*_linux_*.debRHEL/Fedora (mdx_*_linux_*.rpm):
sudo dnf install ./mdx_*_linux_*.rpmAlpine (mdx_*_linux_*.apk):
sudo apk add --allow-untrusted ./mdx_*_linux_*.apkArch Linux (mdx_*_linux_*.pkg.tar.zst):
sudo pacman -U ./mdx_*_linux_*.pkg.tar.zstWindows (mdx_*_windows_*.zip, contains mdx.exe):
You can just extract the archive with File Explorer/7-Zip, or use this PowerShell command:
Expand-Archive .\mdx_*_windows_*.zip -DestinationPath .\mdx
.\mdx\mdx.exe --help
Linux/macOS (mdx_*_linux_*.tar.gz, contains mdx):
tar -xzf mdx_*_linux_*.tar.gz
./mdx --help- Install
curlpackage:
pkg install curl -y- Execute this command:
bash <(curl -s https://raw.githubusercontent.com/arimatakao/mdx/main/android_installation.sh)You can also install mdx manually by running these commands in sequence:
pkg update && pkg upgrade -ypkg install -y golangecho 'export GOPATH=$HOME/go' >> ~/.bashrcecho 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrcsource ~/.bashrcgo install github.com/arimatakao/mdx@latestFor use mdx just execute:
mdxgo install github.com/arimatakao/mdx@latestUsing flakes to run mdx directly:
nix run 'git+https://github.com/arimatakao/mdx?ref=refs/tags/v1.11.0' -- download --help
Using flakes to create a temporary sh with mdx available on the $PATH:
nix sh 'git+https://github.com/arimatakao/mdx?ref=refs/tags/v1.11.0'
- Clone the repository:
git clone https://github.com/arimatakao/mdx.git- Build docker image:
docker build -t mdx .Usage examples:
# Ping
docker run --rm mdx dl ping
# Download
docker run --rm -v /your/download/dir:/download mdx dl -o /download <url>
# Interactive download
docker run --rm -it -v /your/download/dir:/download mdx dl -o /download <url>Also add useful alias for your sh:
alias containermdx="docker run --rm -it -v /your/download/dir:/download mdx"
It allows you to run mdx anywhere in your sh using the command containermdx
Interactive downloading mode:
mdx dl -iDemo of interactive mode:
Download manga:
# get help
mdx download --help
# by default 1 chapter is being downloaded
mdx download -u https://mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370/this-gorilla-will-die-in-1-day
# or
mdx dl -u https://mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370/this-gorilla-will-die-in-1-day
# or
mdx dl https://mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# or
mdx dl mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download pdf format instead of cbz
mdx dl -e pdf mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# or epub format
mdx dl -e epub mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download all chapters
# i don't recommend using this flag - https://github.com/arimatakao/mdx?tab=readme-ov-file#getting-error-while-getting-manga-chapters-request-is-failed-i-cant-download-anything-why
mdx dl -a mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download a specific chapter
mdx dl -c 3 mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# or set direct link to the chapter
mdx dl --this mangadex.org/chapter/7c5d2aea-ea55-47d9-8c65-a33c9e92df70
# or
mdx dl https://mangadex.org/chapter/7c5d2aea-ea55-47d9-8c65-a33c9e92df70
# download a range of chapters
mdx dl -c 1-3 mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download 1 volume of manga
mdx dl -v 1 mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download a range of chapters and merge them in one file
mdx dl -m -c 1-3 mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download 1 volume of manga and merge chapters in one file
mdx dl -m -v 1 mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download last chapter
mdx dl --last mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# specify language, default is english (to get the available languages, execute the info subcommand)
mdx dl -l it mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# specify the output directory
mdx dl -o your/dir mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# specify translation
mdx dl -t "Black Cat" mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370
# download compressed version (lower image quality and file size)
mdx dl -j mangadex.org/title/a3f91d0b-02f5-4a3d-a2d0-f0bde7152370Check available updates:
mdx updateGet help about subcommands and flags:
mdx
mdx -h
# ping subcommand is example
mdx ping
mdx ping -hSearch manga:
mdx find -t "Manga Title"
mdx search -t "Manga Title"
mdx f -t "Manga Title"Get detailed information about the manga:
mdx info -u https://mangadex.org/title/319df2e2-e6a6-4e3a-a31c-68539c140a84/slam-dunk
# or
mdx info mangadex.org/title/319df2e2-e6a6-4e3a-a31c-68539c140a84/slam-dunkCheck connection to MangaDex API:
mdx pingYou can find the manga link at mangadex.org. Choose the manga you like and open its page. The link to the manga looks like this:
https://mangadex.org/title/abc-123-abc/some-title
You can use this link to download chapters of the manga.
Go to mangadex.org, choose the manga you like, and open the specific chapter you want. The link to the chapter looks like this:
https://mangadex.org/chapter/abc-123-abc
You can use this link to download the specific chapter.
Make sure you have specified the correct language, translation group, and number of chapters. If you are unable to download a specific chapter, try using the direct link to the chapter:
mdx dl https://mangadex.org/chapter/abc-123-abc
Remember: mdx can only download chapters from MangaDex.
I don't know. It's a problem on MangaDex's side or on your side.
I downloaded a chapter but the output filename doesn't have the volume number or chapter number. Why?
This problem stems from the uploader failing to specify the correct volume or chapter details.
The size of each page in the PDF corresponds to the size of the image.
Maybe you didn't specify the translation group, chapter range, or language correctly. Make sure that the chapter can be opened on MangaDex (not on external resource).
Sometimes it doesn't download because of some problems on the MangaDex side. Just try again later.
- Remove Doujinshi from list in
findsubcommand and adddoujinshiflag for show Doujinshi in list. - Add metadata for cbz downloaded archive.
- Add check update subcommand.
- Add flag to
download:-
merge- download chapters in one file. -
last- download latest chapter. -
this- download a specific chapter using a link provided by the user. -
extension- sets the extension of the output file. Add file support formats:- pdf (include metadata).
- epub (include metadata).
- directory (folder with images).
-
all- download all chapters. -
volume- download all chapters of specified volume. -
volume-range- download all chapters of specified volume range. -
volume-bundle- download all chapters of volume into one file. -
oneshot- download all oneshots of manga (if available).
-
- Add interactive mode for
downloadsubcommand. - Add self update mechanism.
- Add search filter for
findsubcommand. - Add flag
randomininfosubcommand to get information about random manga. -
Add interactive mode for(already added intofindsubcommand.downloadsubcommand)
- Use
ptermoutput insteadfmt. - Refactor
cmdpackage. - Add rate limiter for client api.
- Create a Github action to automate the creation of
.deb.rpm.pkg.tar.zstpackages when a new release is created. - Add tests for
mangadexapipackage. - Refactor
internal/mdxpackage. - Refactor
mangadexapipackage. - Refactor
filekitpackage.
This project is licensed under the MIT - see the LICENSE file for details.
This project uses the following third-party libraries:
- Cobra (https://github.com/spf13/cobra) - Licensed under the Apache License 2.0
- Resty (https://github.com/go-resty/resty) - Licensed under the MIT
- PTerm (https://github.com/pterm/pterm) - Licensed under the MIT
- gopdf (https://github.com/signintech/gopdf) - Licensed under the MIT
- go-epub (https://github.com/go-shiori/go-epub) - Licensed under the MIT
- consolesize-go (https://github.com/nathan-fiscaletti/consolesize-go) - Licensed under the MIT

