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:
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
Then get the client details (Client ID):
When you launch Anilist-TUI for the first time, you get this screen:
Paste the Client ID and click on the URL generated to authorize the app.
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:
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 |
|---|---|
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
913edd424bfbb4aeaf76be31ced6f4b66a089149ad9cf5b270d3844f9e17ff6a
|
|
| MD5 |
35e746455c3f33107ab25c103b0585af
|
|
| BLAKE2b-256 |
ca23fe07f5ec1dcdb06170b120c019d702069016a4038e2bd9dfbdabc06c02d4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8adf5ff143fa316ca4ee1a252c335933359302300cd83f7c17e8997393b5308
|
|
| MD5 |
5a2c6912252e08c55bb1331e90564063
|
|
| BLAKE2b-256 |
92946a1242419fb01e17bd4cd05abaf00d5ea66aafc6c6164a34c6a7d30fbc58
|