Free · open source · built for AniList

A modern anime & manga tracker, built exclusively for AniList.

Karasu watches what you play and read and keeps your AniList progress in sync — no buttons to press.

  • Windows · Linux · Android
  • MIT licensed
  • No account needed to start
  • Free

    MIT licensed, no paid tier.

  • Open source

    Every commit is public.

  • Built for AniList

    Implicit OAuth, no client secret.

  • No telemetry

    No analytics, no backend, no account of ours.

The problem

Keeping a list current is a chore. Karasu does the chore.

Tracking is five small steps you repeat for every episode and every chapter. Karasu turns them into none.

By hand

  1. 1Watch an episode.
  2. 2Remember to open AniList.
  3. 3Find the title in your list.
  4. 4Fix the number, save, close the tab.
  5. 5Do it again for the manga tab.

With Karasu

  • It sees what you play.

    Your system's media sessions, your player or browser window, an mpv pipe, or your own Jellyfin server — Karasu reads whichever is there.

  • It only ever moves forward.

    A scrobble can raise your progress, never lower it, and it re-checks your list a moment before it writes.

  • It asks if you want it to.

    Turn on the confirmation toast and every update waits for one click on the desktop.

Which sources exist on which platform is listed under Platforms.

How it works

From play to updated, without you.

Six steps, all of them Karasu's. The only one you take is the first.

  1. 01You press play

    In a player, a browser tab, or on your Jellyfin server.

  2. 02Karasu notices

    Media sessions, window titles, an mpv pipe, or Jellyfin's session list.

  3. 03It reads the title

    A release-name parser and a fuzzy matcher against your list.

  4. 04And the episode

    Season splits and redirects included, from the community's relations data.

  5. 05Your settings apply

    Threshold, confirmation, corrections and offsets.

  6. 06AniList is updated

    Progress moves forward; a receipt with an undo lands in the app.

The Overview with the Now Playing card at the top: Katanagatari, episode 3, playing in mpv, progress updating in 31 minutes.

After two thirds of the runtime

That is the default. Set a number of minutes instead, or ask for the confirmation toast and decide per episode.

A pause defers, it does not cancel

Nothing is written while the player is paused; resume, and the next check is due.

Forward only, and re-checked

Progress can only go up, and your list is read again right before the write so an edit you made meanwhile wins.

An unclear season is yours to settle

When a source reports a season Karasu cannot match, it stops and offers the sequels — it does not guess.

What it recognises

Players
mpvVLCMPC-HCMPC-BEPotPlayerSMPlayer
Browsers
ChromeFirefoxEdgeBraveOperaVivaldiZenLibreWolfWaterfoxHelium
Streaming sites
CrunchyrollADNNetflix
Manga sites
MangaDexMANGA PlusComickBato.toMangaFireAsura Scans
Servers
Jellyfin

Windows has all of these. Linux reads media sessions, mpv and Jellyfin, and no window titles; Android reads Jellyfin. The Platforms section has the whole table.

Local library

Your files, matched to your list.

Point Karasu at the anime you keep on disk and it tells you which episode is next — one click opens it.

  1. 01Your folder

    The one you already have. Up to 20,000 files, six levels deep.

  2. 02Karasu scans

    Release names are parsed the same way detection parses them.

  3. 03Matches your list

    Each title reads exact, close, or yours once you have corrected it.

  4. 04Knows what is next

    The first episode past your progress, per title.

  5. 05Plays it

    In your default player, or in mpv if you point Karasu at it.

The local library lists three matched titles with their next unwatched file, the match confidence and a Play button each.
  • Corrections stick.

    Re-point a title once; a rescan never undoes it.

  • Seasons can be split.

    A folder numbered straight through is split into the AniList entries it spans — Karasu proposes the split, you confirm it.

  • Unplaced titles get a suggestion.

    Karasu asks AniList for its best guess, and applies it only when you confirm.

Karasu never downloads anything. The library is the folder you already have; how the files got there is not the app's business.

Offline

Edits made offline are sent when you are back.

A tracker that stops working on a train is not much of a tracker. Karasu keeps the list, keeps the edit, and keeps its word about which is which.

  1. 01Online

    Your list is fetched and cached in a local SQLite database.

  2. 02The network goes

    The list you had stays readable; a title on it opens with a working +1.

  3. 03You edit anyway

    Progress, status, score — the change is queued, not lost.

  4. 04The queue waits

    Per account, inspectable in Settings, each entry discardable.

  5. 05The network returns

    Queued edits are sent in order the next time a list opens.

“Queued” is never “saved”

The receipt says which one happened. A queued edit is a promise Karasu keeps later, and it tells you so.

Only your list is cached

Browsing titles you have not added, search and the social pages need the network, and say so instead of pretending.

Accounts stay apart

Every queued edit is stamped with the account that made it and is only ever sent for that account.

Statistics

Your list, as pictures.

Half of it is drawn from the list Karasu already holds — the sunburst, your watch time, your scores against the crowd — and the rest is AniList's own statistics, fetched once and kept for half an hour.

  • Five tabs

    Overview, ratings, years, genres and tags, people and studios.

  • Drawn by hand

    Radar, sunburst, treemap, area, dot plot, gradient bars and heatmaps — SVG the app draws itself, no chart library.

  • Your scores against the crowd

    The one figure AniList's own statistics page does not give you, computed from your cached list.

  • A year in review

    A poster of your year or season in five crops, exported as PNG or JPEG at up to 3×.

The Statistics page's overview tab with charts drawn from the list.
The Statistics page's genres and tags tab.
The year-in-review poster with its preset crops beside it.

Features

Everything else the tracker does.

Each of these is in the current release, and each has a row in the site's content audit naming the code that makes it true.

The anime list as rows: cover, title, status, score and episode count editable in place, dates and tags beside them.

The list

Your list, in your format.

Karasu reads and writes scores in the format your AniList account uses — 100-point, 10-point with or without decimals, five stars or three smileys — in every control, badge and chart.

  • Custom lists, advanced scores, tags, notes, dates, rewatches and volumes
  • Bulk edit across a selection; undo for ten fields of a save
  • Saved presets, tri-state filters and a typo-tolerant search
  • Covers or rows, 1 to 40 covers per row, lists that stay quick at any size
The manga list as a cover grid.

Manga

Manga, counted the way AniList counts it.

Chapters and volumes both, with a continue-reading row on the overview. On Windows, a chapter open in your browser on MangaDex, MANGA Plus, Comick, Bato.to, MangaFire or Asura Scans is recognised like an episode.

The notification bell open over the Overview, listing recent notifications.

Notifications

Told when it matters, quiet otherwise.

New episodes of what you are watching land as desktop notifications. Sequel announcements and on-hold reminders are there to switch on. Your AniList notifications share the same bell, grouped when they arrive in bursts.

  • A tray icon with Scrobble now, Sync now and the detection switch
  • An optional background check, every 15, 30 or 60 minutes
The anime list on the phone as a four-column cover grid with the status tabs above.
A title's detail page on the phone with the entry editor.

Android

On your phone, with the app closed.

The Android build is a sideloaded APK with the same list, the same statistics and Jellyfin detection. Four home-screen widgets draw straight from the cached list with no network, and a background job checks AniList's notifications even while Karasu is closed.

  • Share an anilist.co link into Karasu to open it there
  • Widgets: Airing Today, Continue Watching, Continue Reading, This Week
The Seasonal page shows one season's titles in a grid, with the season switcher above it.

Discovery

The season, the calendar, the franchise.

A seasonal page with a picker that reaches four years back, a Monday-first calendar with iCal export, a franchise graph you can pan and zoom, recommendations weighted by your own scores, and search across anime, manga, users, characters, staff and studios.

  • Activity feed with likes, replies and a composer
  • Profiles, followers, affinity
  • Forum threads and comments, with permalinks
  • Character, staff and studio pages

Activities

AniList's social side, read live and stored nowhere.

The activity feed, profiles with follow and affinity, forum threads and comments, text posts, likes and replies — AniList's own data, rendered by an AniList client. Nothing social is kept on your machine, and every further page is a button rather than a scroll, so the request budget stays yours.

Playing Karasu

Anime Title

Episode 4 / 12 · Watching

18:32 left

Get Karasu hereView on AniList

Discord

Rich Presence, if you want it.

Off until you switch it on. When it is on, Discord shows the title, the episode or chapter and a timer, with a button to the project — never your AniList name, and never a title your content filter hides.

  • Start with a local list, no account
  • Connect AniList later; the two lists merge
  • Export: MyAnimeList XML or a JSON backup
  • Daily local backups; a portable mode beside the exe

Yours to keep

No account required, nothing you cannot take with you.

Start without an account and keep a local list; connect AniList later and Karasu merges the two. Export to MyAnimeList XML or a JSON backup in either mode; import into a local list. A daily local backup of the database is on by default, and a portable mode keeps everything beside the executable.

Screenshots

The app, as it is.

Every image here is a capture of the app as it ships — nothing mocked, nothing planned. Click one to see it at full size.

  • Overview — the season, your numbers, what airs this week

  • Now Playing — an episode detected in mpv, the update counting down

  • Anime list, grid view

  • Anime list, rows — status, score and progress edited in place

  • Manga list, grid view

  • Local library — files matched to your list, next episode first

  • Statistics — overview

  • Statistics — genres and tags

  • Year in review

  • Seasonal

  • Calendar

  • Franchise graph

  • The bell — Karasu's and AniList's notifications in one stream

  • Command palette (Ctrl+K)

  • Settings — detection

  • Light theme

  • About

Platforms

Windows, Linux and Android. No macOS.

Version 1.0.0, released 2026-09-05. Stable means in the current release and used every day by the maintainer; Experimental means in the release and built by CI, but not used every day.

Windows

Stable

An installer for 64-bit Windows. It is not code-signed, so SmartScreen may warn on first run; verify the download against the checksums if you like.

  • Every detection source: media sessions, player and browser windows, mpv, Jellyfin
  • Streaming and manga sites in the browser
  • Tray icon, autostart, the built-in updater
  • Portable mode: drop a karasu.portable file beside the exe

Android

Stable

A sideloaded APK, Android 7 and up, signed with the project key so a newer one installs over the old. Take the arm64 build; universal is the fallback.

  • The list, statistics, notifications, the social pages
  • Four home-screen widgets, drawn from the cache with no network
  • Background notification check with the app closed
  • Share an anilist.co link into Karasu
  • Detection is Jellyfin only
  • No in-app updater: install the new APK over the old one

Linux

Experimental

An AppImage for x86_64. It needs webkit2gtk-4.1 on the system (Ubuntu 22.04+, Debian 12+, Arch); make it executable and run it.

  • Media sessions over MPRIS, mpv over its socket, Jellyfin
  • Everything the list, statistics and social pages do
  • The built-in updater, for a running AppImage
  • No window-title detection (Wayland forbids it), so no manga detection
  • A tray icon needs a StatusNotifier host; without one, closing the window quits

Updates: the desktop app follows the Stable channel by default and checks once a day; a Nightly channel with a build per commit is one switch away in Settings → Desktop → Updates. Every download is on the releases page.

AniList

Built for AniList, not instead of it.

Karasu is an independent, open-source project that talks to AniList's public API on your behalf. It is not made by AniList and not endorsed by it.

  1. 01Karasu

    On your device. Reads and writes through the public GraphQL API.

  2. 02AniList's API

    Signed in with the implicit OAuth grant — a token, never a password, and no client secret in the app.

  3. 03Your account

    Your list lives on AniList. Karasu is a way of keeping it, not a copy of it.

Not a replacement

The website stays the place your list lives; Karasu reads the same list and writes to it.

The token stays in the backend

It is kept in your OS credential store (or an encrypted file in portable mode, or the Android Keystore) and is never handed back to the app's web view.

Within the limits

AniList allows about thirty requests a minute. Karasu batches, caches and never fetches on scroll, so the budget is spent on what you asked for.

New to AniList? It is a free anime and manga database and list at anilist.co. Karasu needs an account there to sync; without one it keeps a local list.

Open source

Built in the open.

The whole of Karasu is on GitHub under the MIT licence — every commit, every decision, every measurement that shaped it. Developed with heavy AI assistance, and every change reviewed by a human maintainer before it lands.

Made with

Tauri 2
The shell: a Rust backend with the system's own web view
Rust
Detection, matching, scrobbling, storage, everything that must not be in the page
React 19 + TypeScript
The interface
Vite
Build and dev server
Tailwind CSS v4
One design-token file, the same one this site uses
SQLite
The list cache, the queue, the library — a file you can copy
TanStack Query
Server state, with the AniList budget in mind
AniList GraphQL
The one API

FAQ

Questions, answered from the code.

  • A desktop and Android app that keeps your AniList anime and manga list. It notices what you are playing or reading and updates your progress on AniList by itself, and it gives that list a fast local interface with statistics, notifications and the social pages.

  • Yes. Karasu is free of cost and released under the MIT licence. There is no paid tier and nothing to unlock.

  • Yes. The complete source is on GitHub, and every release is built there from a tagged commit.

  • A free anime and manga database and tracking site at anilist.co. Your list lives there; Karasu reads it and writes to it through AniList's public API.

  • No. It is a client for it. Your list stays on AniList and every change Karasu makes is visible on the website a moment later. You can also use Karasu without any account, with a local list only.

  • Windows and Android are Stable, Linux is an experimental AppImage, and there is no macOS build. Windows has every feature. Android has the list, statistics, notifications, widgets and the social pages, but no local library, no tray and no in-app updater. Detection differs: Windows reads media sessions, player and browser windows, mpv and Jellyfin; Linux reads media sessions, mpv and Jellyfin, with no window titles; Android reads Jellyfin.

  • It never sees your password. Signing in happens on anilist.co in your browser, which hands Karasu a token. That token is kept in your operating system's credential store on the desktop, in an encrypted file next to the app in portable mode, and in a Keystore-sealed file on Android — and it is never handed back to the app's web view.

  • Your list is cached locally, so it opens without a network, a title on it shows its cached page with a working +1, and edits are queued and sent when the connection returns. Browsing titles that are not on your list, search and the social pages need the network.

  • Yes, once an episode has played for two thirds of its length by default — or for the minutes you set, or after you confirm a toast, if you prefer to be asked. Progress only ever moves forward, and Karasu re-reads your list right before it writes.

  • No. It is an independent project using AniList's public API, with a registered client id and no special access.

  • The installer is not code-signed, so SmartScreen has never seen it before and says so. Every release ships a SHA256SUMS.txt you can check the download against.

  • AniList's API and image servers; GitHub, for the update check and the download; the community's episode-relations data on GitHub, at most once a week; your own Jellyfin server if you set one up; Discord's local socket for Rich Presence if you enable it. Images in AniList user bios are fetched through Karasu's own bounded proxy, so those hosts learn your IP address when you open a profile. Nothing else, and no analytics.

Ready to track smarter?

Install Karasu, sign in on AniList once, and let the bird keep the list.

Current release 1.0.0 · 2026-09-05 · checksums