{"id":13837389,"url":"https://github.com/metafates/mangal","last_synced_at":"2025-10-22T06:28:04.744Z","repository":{"id":36950861,"uuid":"494733737","full_name":"metafates/mangal","owner":"metafates","description":"📖 The most advanced (yet simple) cli manga downloader in the entire universe! Lua scrapers, export formats, anilist integration, fancy TUI and more!","archived":false,"fork":false,"pushed_at":"2024-07-31T10:52:43.000Z","size":31461,"stargazers_count":1576,"open_issues_count":55,"forks_count":60,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-31T21:47:42.707Z","etag":null,"topics":["anilist","anime","cli","comic-downloader","command-line","go","golang","linux","lua","macos","manga","manga-downloader","manga-reader","mangadex","mangal","pdf","scraper","terminal","tui","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metafates.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-21T09:09:58.000Z","updated_at":"2025-03-30T04:49:57.000Z","dependencies_parsed_at":"2024-05-30T04:33:52.280Z","dependency_job_id":"1ba08ca7-375a-42fa-8eed-87e9feaed33d","html_url":"https://github.com/metafates/mangal","commit_stats":{"total_commits":823,"total_committers":9,"mean_commits":91.44444444444444,"dds":"0.012150668286755817","last_synced_commit":"165f7cacf397a4bf0c42fde39d22d86acd013f17"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metafates%2Fmangal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metafates%2Fmangal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metafates%2Fmangal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metafates%2Fmangal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metafates","download_url":"https://codeload.github.com/metafates/mangal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737788,"owners_count":20987721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anilist","anime","cli","comic-downloader","command-line","go","golang","linux","lua","macos","manga","manga-downloader","manga-reader","mangadex","mangal","pdf","scraper","terminal","tui","windows"],"created_at":"2024-08-04T15:01:07.895Z","updated_at":"2025-10-22T06:28:02.500Z","avatar_url":"https://github.com/metafates.png","language":"Go","readme":"\u003ch1 align=\"center\"\u003e\n\u003cstrong\u003eMangal 4 ☄️\u003c/strong\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Linux\" src=\"https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black\"\u003e\n    \u003cimg alt=\"macOS\" src=\"https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=macos\u0026logoColor=F0F0F0\"\u003e\n    \u003cimg alt=\"Windows\" src=\"https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white\"\u003e\n    \u003cimg alt=\"Termux\" src=\"https://img.shields.io/badge/Termux-000000?style=for-the-badge\u0026logo=GNOME%20Terminal\u0026logoColor=white\"\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n    The most advanced CLI manga downloader in the entire universe!\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Mangal 4 TUI\" src=\"assets/tui.gif\"\u003e\n\u003c/p\u003e\n\n\u003e [!CAUTION]\n\u003e As of April 2025, Mangal is no longer maintained. I am incredibly grateful to everyone who used it, contributed, or gave feedback along the way - thank you! Unfortunately, I just don't have the time to keep it going right now. That said, it's open source, so you're more than welcome to fork it, build on it, or maintain your own version. I might return to it someday, but for now, I don't recommend using it as-is - running unmaintained software can introduce security risks.\n\n## Try it!\n\n```shell\ncurl -sSL mangal.metafates.one/run | sh\n```\n\n\u003e **Note** This script does not install anything, it just downloads, verifies and runs Mangal.\n\u003e Not available on Windows.\n\n## Table of contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Custom scrapers](#custom-scrapers)\n- [Anilist](#anilist)\n- [Honorable mentions](#honorable-mentions)\n\n## Features\n\n- __Lua Scrapers!!!__ You can add any source you want by creating your own _(or using someone's else)_ scraper with\n  __Lua 5.1__. See [mangal-scrapers repository](https://github.com/metafates/mangal-scrapers)\n- __4 Built-in sources__ - [Mangadex](https://mangadex.org), [Manganelo](https://m.manganelo.com/wwww), [Manganato](https://manganato.com) \u0026 [Mangapill](https://mangapill.com)\n- __Download \u0026 Read Manga__ - I mean, it would be strange if you couldn't, right?\n- __Caching__ - Mangal will cache as much data as possible, so you don't have to wait for it to download the same data over and over again. \n- __4 Different export formats__ - PDF, CBZ, ZIP and plain images\n- __TUI ✨__ - You already know how to use it! (ﾉ\u003eω\u003c)ﾉ :｡･::･ﾟ’★,｡･:･ﾟ’☆\n- __Scriptable__ - You can use Mangal in your scripts, it's just a CLI app after all. [Examples](https://github.com/metafates/mangal/wiki/Inline-mode)\n- __History__ - Resume your reading from where you left off!\n- __Fast?__ - YES.\n- __Monolith__ - ZERO runtime dependencies. Even Lua is built in. Easy to install and use.\n- __Cross-Platform__ - Linux, macOS, Windows, Termux, even your toaster. (¬‿¬ )\n- __Anilist integration__ - Mangal will collect additional data from Anilist and use it to improve your reading experience. It can also sync your progress!\n\n## Installation\n\n### Script (Linux, MacOS, Termux)\n\nInstall using [this shell script](https://github.com/metafates/mangal/blob/main/scripts/install)\n\n```shell\ncurl -sSL mangal.metafates.one/install | sh\n```\n\nThis script will automatically detect OS \u0026 Distro and use the best option available.\nFor example, on macOS it will try to use Homebrew, on Ubuntu it will install the `.deb` package and so on...\n\n### Arch Linux\n\n[AUR package](https://aur.archlinux.org/packages/mangal-bin) (maintained by [@balajsra](https://github.com/balajsra),\nthank you)\n\n### MacOS\n\nInstall using [Homebrew](https://brew.sh/)\n\n    brew tap metafates/mangal\n    brew install mangal\n\n### Windows\n\nInstall using [Scoop](https://scoop.sh/) (thanks to [@SonaliBendre](https://github.com/SonaliBendre) for adding it to\nthe official bucket)\n\n    scoop bucket add extras\n    scoop install mangal\n\n### Termux\n\nThanks to [@T-Dynamos](https://github.com/T-Dynamos) for adding it to the [termux-packages](https://github.com/termux/termux-packages)\n\n```shell\npkg install mangal\n```\n\n### Gentoo\n\nInstall using third-party overlay [raiagent](https://github.com/leycec/raiagent). Thanks to [@leycec](https://github.com/leycec) for maintaining it.\n\n```shell\neselect repository enable raiagent\nemerge --sync raiagent\nemerge mangal\n```\n\n### Nix \n\nInstall using [Nix](https://nixos.org/download.html#download-nix). Thanks to [@bertof](https://github.com/bertof) for adding it to the [nixpkgs](https://github.com/NixOS/nixpkgs)\n\n```shell\n# NixOS\nnix-env -iA nixos.mangal\n\n# Non NixOS\nnix-env -iA nixpkgs.mangal\n```\n\n### Docker\n\nInstall using Docker. (thanks to [@ArabCoders](https://github.com/ArabCoders) for reference)\n\n    docker pull metafates/mangal\n\nTo run\n\n```shell\ndocker run --rm -ti -e \"TERM=xterm-256color\" -v $(PWD)/mangal/downloads:/downloads -v $(PWD)/mangal/config:/config metafates/mangal\n```\n\n### From source\n\nVisit this link to install [Go](https://go.dev/doc/install).\n\nClone the repo\n```shell\ngit clone --depth 1 https://github.com/metafates/mangal.git\ncd mangal\n```\n\nGNU Make **(Recommended)**\n```shell\nmake install # if you want to compile and install mangal to path\nmake build # if you want to just build the binary\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eIf you don't have GNU Make use this\u003c/summary\u003e\n\n\n```shell\n# To build\ngo build -ldflags \"-X 'github.com/metafates/mangal/constant.BuiltAt=$(date -u)' -X 'github.com/metafates/mangal/constant.BuiltBy=$(whoami)' -X 'github.com/metafates/mangal/constant.Revision=$(git rev-parse --short HEAD)' -s -w\"\n\n# To install\ngo install -ldflags \"-X 'github.com/metafates/mangal/constant.BuiltAt=$(date -u)' -X 'github.com/metafates/mangal/constant.BuiltBy=$(whoami)' -X 'github.com/metafates/mangal/constant.Revision=$(git rev-parse --short HEAD)' -s -w\"\n```\n\n\u003c/details\u003e\n\nIf you want to build mangal for other architecture, say ARM, you'll have to set env variables `GOOS` and `GOARCH`\n\n```shell\nGOOS=linux GOARCH=arm64 make build\n```\n\n[Available GOOS and GOARCH combinations](https://gist.github.com/asukakenji/f15ba7e588ac42795f421b48b8aede63)\n\n### Pre-compiled\n\nDownload the pre-compiled binaries from the [releases page](https://github.com/metafates/mangal/releases/latest)\nand copy them to the desired location.\n\n## Usage\n\n### TUI\n\nJust run `mangal` and you're ready to go.\n\n\u003cdetails\u003e\n\u003csummary\u003eKeybinds\u003c/summary\u003e\n\n| Bind                                                        | Description                          |\n|-------------------------------------------------------------|--------------------------------------|\n| \u003ckbd\u003e?\u003c/kbd\u003e                                                | Show help                            |\n| \u003ckbd\u003e↑/j\u003c/kbd\u003e \u003ckbd\u003e↓/k\u003c/kbd\u003e \u003ckbd\u003e→/l\u003c/kbd\u003e \u003ckbd\u003e←/h\u003c/kbd\u003e | Navigate                             |\n| \u003ckbd\u003eg\u003c/kbd\u003e                                                | Go to first                          |\n| \u003ckbd\u003eG\u003c/kbd\u003e                                                | Go to last                           |\n| \u003ckbd\u003e/\u003c/kbd\u003e                                                | Filter                               |\n| \u003ckbd\u003eesc\u003c/kbd\u003e                                              | Back                                 |\n| \u003ckbd\u003espace\u003c/kbd\u003e                                            | Select one                           |\n| \u003ckbd\u003etab\u003c/kbd\u003e                                              | Select all                           |\n| \u003ckbd\u003ev\u003c/kbd\u003e                                                | Select volume                        |\n| \u003ckbd\u003ebackspace\u003c/kbd\u003e                                        | Unselect all                         |\n| \u003ckbd\u003eenter\u003c/kbd\u003e                                            | Confirm                              |\n| \u003ckbd\u003eo\u003c/kbd\u003e                                                | Open URL                             |\n| \u003ckbd\u003er\u003c/kbd\u003e                                                | Read                                 |\n| \u003ckbd\u003eq\u003c/kbd\u003e                                                | Quit                                 |\n| \u003ckbd\u003ectrl+c\u003c/kbd\u003e                                           | Force quit                           |\n| \u003ckbd\u003ea\u003c/kbd\u003e                                                | Select Anilist manga (chapters list) |\n| \u003ckbd\u003ed\u003c/kbd\u003e                                                | Delete single history entry          |\n\n\u003c/details\u003e\n\n![TUI](https://user-images.githubusercontent.com/62389790/198830334-fd85c74f-cf3b-4e56-9262-5d62f7f829f4.png)\n\n\u003e If you wonder what those icons mean - `D` stands for \"downloaded\", `*` shows that chapter is marked to be downloaded.\n\u003e You can choose different icons, e.g. nerd font ones - just run mangal with `--icons nerd`.\n\u003e Available options are `nerd`, `emoji`, `kaomoji` and `squares`\n\n### Mini\n\nMini mode tries to mimic [ani-cli](https://github.com/pystardust/ani-cli)\n\nTo run: `mangal mini`\n\n![mini](https://user-images.githubusercontent.com/62389790/198830544-f2005ec4-c206-4fe0-bd08-862ffd08320e.png)\n\n### Inline\n\nInline mode is intended for use with other scripts.\n\nType `mangal help inline` for more information.\n\nSee [Wiki](https://github.com/metafates/mangal/wiki/Inline-mode) for more examples.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Mangal 4 Inline\" src=\"assets/inline.gif\"\u003e\n\u003c/p\u003e\n\n### Other\n\nSee `mangal help` for more information\n\n## Configuration\n\nMangal uses [TOML](https://toml.io) format for configuration under the `mangal.toml` filename.\nConfig path depends on the OS.\nTo find yours, use `mangal where --config`.\nFor example, on __Linux__ it would be `~/.config/mangal/mangal.toml`.\n\nUse env variable `MANGAL_CONFIG_PATH` to set custom config path.\n\u003e See `mangal env` to show all available env variables.\n\n| Command               | Description                                      |\n|-----------------------|--------------------------------------------------|\n| `mangal config get`   | Get config value for specific key                |\n| `mangal config set`   | Set config value for specific key                |\n| `mangal config reset` | Reset config value for specific key              |\n| `mangal config info`  | List all config fields with description for each |\n| `mangal config write` | Write current config to a file                   |\n\n## Custom scrapers\n\nTLDR; To browse and install a custom scraper\nfrom [mangal-scrapers repository](https://github.com/metafates/mangal-scrapers) run\n\n    mangal sources install\n\nMangal has a Lua5.1 VM built-in + some useful libraries, such as headless chrome, http client, html parser and so on...\n\nCheck the [defined modules](https://github.com/metafates/mangal-lua-libs) for more information.\n\nFor scrapers examples, check the [mangal-scrapers repository](https://github.com/metafates/mangal-scrapers)\n\n### Creating a custom scraper\n\nThis command will create `example.lua` file in the `mangal where --sources` directory.\n\n    mangal sources gen --name example --url https://example.com\n\nOpen the file and edit it as you wish.\nTake a look at the comments for more information.\nSee [mangal-scrapers repository](https://github.com/metafates/mangal-scrapers) for examples.\n\nYou can test it by running `mangal run \u003cfilepath\u003e`\n\nIt should automatically appear in the list of available scrapers.\n\n\u003e New to Lua? [Quick start guide](https://learnxinyminutes.com/docs/lua/)\n\n## Anilist\n\nMangal also supports integration with anilist.\n\nBesides fetching metadata for each manga when downloading,\nmangal can also mark chapters as read on your Anilsit profile when you read them inside mangal.\n\nFor more information see [wiki](https://github.com/metafates/mangal/wiki/Anilist-Integration)\n\n## Honorable mentions\n\n### Projects using mangal\n\n- [kaizoku](https://github.com/oae/kaizoku) - Self-hosted manga downloader with mangal as its core 🚀\n\n### Similar Projects\n\n- [mangadesk](https://github.com/darylhjd/mangadesk) - Terminal client for MangaDex\n- [ani-cli](https://github.com/pystardust/ani-cli) - A cli tool to browse and play anime\n- [manga-py](https://github.com/manga-py/manga-py) - Universal manga downloader\n- [animdl](https://github.com/justfoolingaround/animdl) - A highly efficient, fast, powerful and light-weight anime\n  downloader and streamer\n- [tachiyomi](https://github.com/tachiyomiorg/tachiyomi) - Free and open source manga reader for Android\n\n### Libraries\n\n- [bubbletea](https://github.com/charmbracelet/bubbletea), [bubbles](https://github.com/charmbracelet/bubbles)\n  \u0026 [lipgloss](https://github.com/charmbracelet/lipgloss) - Made mangal shine! The best TUI libraries ever ✨\n- [gopher-lua](https://github.com/yuin/gopher-lua) - Made it possible to write custom scrapers with Lua ❤️\n- [cobra](https://github.com/spf13/cobra) and [viper](https://github.com/spf13/viper) - Responsible for the awesome CLI\n  \u0026 config experience 🛠\n- [pdfcpu](https://github.com/pdfcpu/pdfcpu) - Fast pdf processor in pure go 📄\n- _And many others!_\n\n### Contributors\n\nAnd of course, thanks to all contributors! You are awesome!\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/metafates/mangal/graphs/contributors\"\u003e\n  \u003cimg alt=\"Contributors\" src=\"https://contrib.rocks/image?repo=metafates/mangal\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\nIf you find this project useful or want to say thank you,\nplease consider starring it, that would mean a lot to me ⭐\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://star-history.com/#metafates/mangal\u0026Date\"\u003e\n\u003cimg alt=\"Star History\" src=\"https://api.star-history.com/svg?repos=metafates/mangal\u0026type=Date\"/\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetafates%2Fmangal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetafates%2Fmangal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetafates%2Fmangal/lists"}