An open API service indexing awesome lists of open source software.

https://github.com/josueBarretogit/manga-tui

Terminal-based manga reader and downloader with image rendering support
https://github.com/josueBarretogit/manga-tui

anilist anime cbz comic-downloader comic-reader linux macos manga manga-downloader manga-reader manga-scraper mangadex ratatui rust terminal terminal-app terminal-based tui tui-app windows

Last synced: about 1 year ago
JSON representation

Terminal-based manga reader and downloader with image rendering support

Awesome Lists containing this project

README

          


📖 Manga-tui 🖥️


Terminal-based manga reader and downloader written in rust 🦀




test passing


crates io downloads


downloads


License

## Table of contents

- [Features](#features)
- [Dependencies](#dependencies)
- [Installation](#installation)
- [Image rendering](#image-rendering)
- [Usage](#usage)
- [Manga providers](#manga-providers)
- [Configuration](#configuration)
- [Motivation](#motivation)
- [Credits](#credits)

## Features

- [Mangadex](https://mangadex.org/) and [Weebcentral](https://weebcentral.com/) are available as manga providers

- Track your reading history with [anilist integration](./docs/anilist.md)

- Advanced search (with filters)

- Read manga in your terminal with terminals such as: Wezterm, iTerm2, Kitty, Ghostty

- Reading history is stored locally (with no login required)

- Download manga (available formats: cbz, epub, pdf and raw images)

- Download all chapters of a manga (available formats: cbz, epub, pdf and raw images)

### Join the [discord](https://discord.gg/jNzuDCH3) server for further help, feature requests or to chat with contributors

## Dependencies

On linux you may need to install the D-bus secret service library

### Debian

```shell
sudo apt install libdbus-1-dev pkg-config
```

### Fedora

```shell
sudo dnf install dbus-devel pkgconf-pkg-config
```

### Arch

```shell
sudo pacman -S dbus pkgconf
```

## Installation

### Using cargo

```shell
cargo install manga-tui --locked
```

### AUR

You can install `manga-tui` from the [AUR](https://aur.archlinux.org/packages/manga-tui) with using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers).

```shell
paru -S manga-tui
```

### Nix

If you have the [Nix package manager](https://nixos.org/), this repo provides a flake that builds the latest git version from source.

Simply run the following:

```sh
nix run 'github:josueBarretogit/manga-tui'
```

Or, to install persistently:

```sh
nix profile install 'github:josueBarretogit/manga-tui'
```

## Binary release

Download a binary from the [releases page](https://github.com/josueBarretogit/manga-tui/releases/latest)

## Image rendering

Use a terminal that can render images such as [Wezterm](https://wezfurlong.org/wezterm/index.html) (Personally I recommend using this one It's the one used in the videos), [iTerm2](https://iterm2.com/), [Kitty](https://sw.kovidgoyal.net/kitty/) and [Ghostty](https://ghostty.org/download)

For more information see: [image-support](https://github.com/benjajaja/ratatui-image?tab=readme-ov-file#compatibility-matrix)

> [!WARNING]
> On windows image display is very buggy, see [this issue](https://github.com/josueBarretogit/manga-tui/issues/26) for more information

No images will be displayed if the terminal does not have image support (but `manga-tui` will still work as a manga downloader)

## Usage

After installation just run the binary

```shell
manga-tui
```

## Manga providers

> [!WARNING]
> Expect any manga provider to fail at some point, either due to them closing operations due to a [lawsuit](https://www.japantimes.co.jp/news/2024/04/18/japan/crime-legal/manga-mura-copyright-ruling/) or the provider itself having issues on their end like [manganato](https://github.com/josueBarretogit/manga-tui/issues/132)

By default when you run `manga-tui` Mangadex will be used

```shell
manga-tui
```

If you want to use Weebcentral or any other provider available then run:

```shell
manga-tui -p weebcentral
```

## Configuration

The config file is located at `XDG_CONFIG_HOME/manga-tui/config.toml`, to know where it is you can run:

```shell
manga-tui --config-dir

# or

manga-tui -c
```

Which provides the following configuration:

```toml
# The format of the manga downloaded
# values: cbz, raw, epub, pdf
# default: "cbz"
download_type = "cbz"

# Download image quality, low quality means images are compressed and is recommended for slow internet connections
# values: low, high
# default: "low"
image_quality = "low"

# Pages around the currently selected page to try to prefetch
# values: 0-255
# default: 5
amount_pages = 5

# Whether or not bookmarking is done automatically, if false you decide which chapter to bookmark
# values: true, false
# default: true
auto_bookmark = true

# Whether or not downloading a manga counts as reading it on services like anilist
# values: true, false
# default: false
track_reading_when_download = false

# Enable / disable checking for new updates
# values: true, false
# default: true
check_new_updates = true

# Sets which manga provider will be used when running manga-tui,
# you can override it by running manga-tui with the -p flag like this: manga-tui -p weebcentral
# values: mangadex, weebcentral
# default: "mangadex"
default_manga_provider = "mangadex"

# Enable / disable tracking reading history with services like `anilist`
# values: true, false
# default: true
track_reading_history = true

# Anilist-related config, if you want `manga-tui` to read your anilist credentials from this file then place them here
[anilist]
# Your client id from your anilist account
# leave it as an empty string "" if you don't want to use the config file to read your anilist credentials
# values: string
# default: ""
client_id = ""

# Your acces token from your anilist account
# leave it as an empty string "" if you don't want to use the config file to read your anilist credentials
# values: string
# default: ""
access_token = ""
```

Manga downloads and reading history is stored in the `manga-tui` directory, to know where it is run:

```shell
manga-tui --data-dir

# or

manga-tui -d
```

On linux it will output something like: `~/.local/share/manga-tui`

On the `manga-tui` directory there will be 3 directories

- `history`, which contains a sqlite database to store reading history
- `mangaDownloads`, where manga will be downloaded
- `errorLogs`, for storing posible errors / bugs

If you want to change the location of this directory you can set the environment variable `MANGA_TUI_DATA_DIR` to some path pointing to a directory, like:

```shell
export MANGA_TUI_DATA_DIR="/home/user/Desktop/mangas"
```

> [!NOTE]
> Mangadex-only feature
By default `manga-tui` will search mangas in english, you can change the language by running:

```shell
# `es` corresponds to the Iso code for spanish
manga-tui lang --set 'es'
```

> [!NOTE]
> Mangadex-only feature
Check the available languages and their Iso codes by running:

```shell
manga-tui lang --print
```

## Motivation

I wanted to make a "How linux user does ..." but for manga, [here is the video](https://www.youtube.com/watch?v=K0FsGRqEc1c) also this is a great excuse to start reading manga again

## Credits

Many thanks to Mangadex for providing the free API please consider supporting them ❤️

Many thanks to the [Ratatui organization](https://github.com/ratatui-org) for making such a good library for making TUI's in rust 🐭

Many thanks to the developer of the [Ratatui-image crate](https://crates.io/crates/ratatui-image) for providing a widget that renders images in the terminal 🖼️

Consider giving a star to this project ⭐