Skip to main content

Unofficial terminal UI client for AniList built with Textual

Project description

AniList-TUI (Unofficial)

AniList-TUI is an unofficial terminal user interface for browsing anime, searching titles, and managing your AniList library without leaving the terminal.

Preview

Main preview:

Catppuccin Mocha Theme

Client ID configuration

  • The login screen asks for your AniList client ID and saves it in ~/.config/anilist-tui/auth.json.
  • You can override it at runtime using environment variable ANILIST_CLIENT_ID.
  • Resolution order: ANILIST_CLIENT_ID -> saved client ID.

Create your AniList client:

Head over to https://anilist.co/ and click on your profile -> settings -> developer -> create new client

AniList Client Creation

Then get the client details (Client ID):

AniList Client Details

When you launch Anilist-TUI for the first time, you get this screen:

AniList-TUI Auth Screen

Paste the Client ID and click on the URL generated to authorize the app.

AniList-TUI Authorization

Click on authorize and copy and paste the token in the input field in AniList-TUI

This will generate your token and store it locally in ~/.config/anilist-tui/auth.json.

Features

Browse anime

  • Browse curated feeds:
    • Seasonal (auto-detected by current season and year)
    • Trending
    • Popular
    • Top Rated

Search

  • Search anime from anywhere using the search bar.
  • Search results are loaded from AniList in popularity order.

Library management

  • Open personal library views:
    • Watching
    • Planning
    • Completed
    • Dropped
    • Paused
    • Repeating
  • For a selected anime, you can:
    • Add or change library status
    • Remove from library (clear status)
    • Update watched episode progress
    • Set rating using AniList 3-point scale (:(, :|, :))

Anime details and recommendations

  • Detailed panel for selected anime:
    • Title, genres, release status, average score
    • Episode progress counter (Ep X / Y)
    • Full description (HTML converted to readable markdown text)
    • Cover image
  • Recommendations tab with selectable recommended titles.
  • Selecting a recommendation loads that anime’s details immediately.
  • Open the selected anime page directly in your browser.

User stats screen

  • Dedicated user stats screen (User -> Stats) with:
    • Username and AniList profile link
    • Anime totals (entries, episodes, minutes watched, mean score)
    • Manga totals (entries, chapters, volumes, mean score)
    • Profile avatar

Performance and UX

  • In-memory caching for lists and search results to reduce repeat API calls.
  • Vim-style navigation in tree/table widgets (j / k).
  • Focus navigation shortcuts and command palette support.
  • Responsive table/image resizing based on terminal size.

Requirements

  • Python 3.12+
  • AniList account

Installation

Quick install (recommended)

This script installs uv if needed, then installs anilist-tui:

curl -LsSf https://raw.githubusercontent.com/pndpti/anilist-tui/master/install.sh | sh

Install as a uv tool manually

uv tool install -U anilist-tui

Then run it from anywhere:

anilist-tui

To remove it:

uv tool uninstall anilist-tui

Commands and keybindings

The table below lists app commands and where they apply.

Keys Action Where it works
Ctrl+Shift+P Open command palette Global
/ Focus search input Global
Ctrl+N Move focus to next widget Global
Ctrl+P Move focus to previous widget Global
Tab Move focus to next widget Search input
j Move cursor down Anime tree, user tree, anime table, recommendations table
k Move cursor up Anime tree, user tree, anime table, recommendations table
h Switch to Details tab Details panel
l Switch to Recommendations tab Details panel
a Focus/open library status select Details tab only
r Focus/open rating select Details tab only
v Open selected anime on AniList in browser Details tab only
i Increment watched episode count Details tab only
+ Increment watched episode count Details tab only
d Decrement watched episode count Details tab only
- Decrement watched episode count Details tab only
j / k Move within open select dropdown Library/Rating dropdown overlay
Escape Close open select dropdown Library/Rating dropdown overlay
q Back / close stats screen User stats screen

Command preview:

Command Preview

Themes

AniList-TUI currently uses only Textual’s built-in themes (no custom app themes yet).

  • App default theme: catppuccin-mocha
  • Theme is loaded from ~/.config/anilist-tui/config.toml:
[ui]
theme = "catppuccin-mocha"

Other theme previews:

Gruvbox Nord
Gruvbox Theme Nord Theme

Built-in Textual themes available

Theme
textual-dark
textual-light
nord
gruvbox
catppuccin-mocha
textual-ansi
dracula
tokyo-night
monokai
flexoki
catppuccin-latte
catppuccin-frappe
catppuccin-macchiato
solarized-light
solarized-dark
rose-pine
rose-pine-moon
rose-pine-dawn
atom-one-dark
atom-one-light

Configuration files

  • Auth/session: ~/.config/anilist-tui/auth.json
  • UI config: ~/.config/anilist-tui/config.toml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anilist_tui-0.1.2.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anilist_tui-0.1.2-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file anilist_tui-0.1.2.tar.gz.

File metadata

  • Download URL: anilist_tui-0.1.2.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for anilist_tui-0.1.2.tar.gz
Algorithm Hash digest
SHA256 913edd424bfbb4aeaf76be31ced6f4b66a089149ad9cf5b270d3844f9e17ff6a
MD5 35e746455c3f33107ab25c103b0585af
BLAKE2b-256 ca23fe07f5ec1dcdb06170b120c019d702069016a4038e2bd9dfbdabc06c02d4

See more details on using hashes here.

File details

Details for the file anilist_tui-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: anilist_tui-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for anilist_tui-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d8adf5ff143fa316ca4ee1a252c335933359302300cd83f7c17e8997393b5308
MD5 5a2c6912252e08c55bb1331e90564063
BLAKE2b-256 92946a1242419fb01e17bd4cd05abaf00d5ea66aafc6c6164a34c6a7d30fbc58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page