Features
Tankōbon is a library manager and reader for digital comics, BD and manga. It opens CBZ, CBR and PDF files. The user interface is in English and French (see Language); labels below are quoted as they appear in the French interface.
The mouse pointer turns into a hand over everything that can be clicked (buttons, links, menus, checkboxes and their labels), and keeps the usual arrow over disabled controls.
Home
"Accueil" is the page shown when the app starts, first entry of the sidebar. It shows a "Reprendre la lecture" block with the covers of the last five books you opened and started but did not finish (past the first page, last page not reached, no "Lu" tag), most recently opened first, each with its title and page ("Page 4 / 10"). Clicking one opens it in the reader at its saved page. The block is hidden when there is nothing to resume. Below it, a "Derniers ajouts" block shows the 5 books most recently added to the library (by date added, newest first), each as its cover and title; clicking one opens it in the reader. An empty library shows a short message instead. A "À lire" block suggests five books drawn at random among those not finished yet (a book already started counts; one at its last page or tagged Lu doesn't); shown as covers like the other blocks; clicking a book opens it in the reader and "Tirer d'autres livres" draws a new selection. The draw is made once the library is loaded and doesn't change when a book is edited elsewhere. A "Une deuxième chance" block lists the five lowest-rated books (rated 1 or 2 stars, worst first, then by title; unrated books are not listed) as covers like the other blocks, each with its stars; click a cover to open the book, the stars can be changed right there and a book rated 3 or more leaves the list. A "Redécouvrez vos favoris" block shows the 5 best-rated books of the library (highest rating first, and among equal ratings the one opened longest ago first) as covers with their title and stars; clicking one opens it in the reader. It is hidden while no book is rated. More blocks will be added to the page. Paramètres › Accueil manages the page: "Afficher la page d'accueil" turns it off (the "Accueil" entry leaves the sidebar and the app starts on the library), and each block has a checkbox to show or hide it, a number of books to show (3 to 20, 5 by default) and up/down buttons ("Monter"/"Descendre") to set the order. Each block is a single row of covers in a view of fixed size: when the books don't all fit, arrows at the edges scroll the row. "Masquer si vide" hides a block while it has nothing to show; unchecked, the block stays with a short message instead. It is checked by default for "Reprendre la lecture" and "Redécouvrez vos favoris" (which were always hidden when empty) and unchecked for the other blocks. The choices are part of the exported settings.
Library
- Page sizes: once comics are added (file, folder, resynchronization, JSON import, or a book opened for the first time), the app measures their pages in the background, one book at a time, and shows each book's average page size ("Pages ~1 200 × 1 800 px", the simple average of the pages' widths and heights) on its row in the library. A bar at the bottom of the window shows "Mesure de la taille des pages…" with a progress gauge while the measure runs; the library stays usable meanwhile. Pages whose size can't be read are left out of the average (a PDF's pages are measured at the size they are rendered at). A book that can't be measured shows no size and is tried again at the next start.
- Adding comics: "Ajouter un fichier" adds one comic to the library without opening it (a message says whether it was added or was already there); "Ajouter un dossier…" adds every CBZ/CBR/PDF found in a folder and its subfolders, with a progress bar, which stays on screen at the end of the scan until you close it with its cross. Comics already in the library are skipped, and a file that can't be opened is counted as failed without stopping the scan. The folder dialog opens in the folder you added last time (if it still exists).
- Resynchronizing (Paramètres › Bibliothèque): the folders added with "Ajouter un dossier…" are remembered and listed there (each can be forgotten, which keeps its comics in the library). "Resynchroniser maintenant" walks them again: new comics are added and comics whose file no longer exists are removed from the library, with their progress, rating, tags and reading-list places (the files on disk are never touched). Comics that aren't under one of these folders (a file added on its own) are checked one by one: they are removed when their file is gone but the directory that held it still exists (if that directory is unreadable too, an unplugged drive for instance, they stay). A folder that can't be read, an unplugged drive for instance, is skipped and reported instead of emptied. "Resynchroniser la bibliothèque au démarrage" (off by default) does the same in the background at every start. The date of the last resynchronization is shown on the page. The folder list isn't part of the JSON export, and clearing the library keeps it.
- Opening the library from another computer or path: a comic inside one of these folders (or the organized folder) is recorded relative to its folder, so a database kept on a shared, network or cloud drive opens wherever the folders are mounted. The folder's location on each computer is kept on that computer only (
library-roots.jsonin the user data directory). On a computer where a folder isn't found, Paramètres › Bibliothèque lists it under "Dossiers à localiser": "Localiser ce dossier…" says where it is, and its comics open again. Comics added on their own, outside every folder, keep their full path. Forgetting a folder keeps its comics (and the way they are recorded). The JSON export still names comics by full path. - Format: each row's detail line shows the file's format (CBZ, CBR or PDF) after the page counter, read from the file extension.
- Organizing the library (Paramètres › Bibliothèque › "Organisation de la bibliothèque"): off by default ("Laisser les fichiers où ils sont"). Once an organized folder is chosen ("Choisir…"), the comics you add (a file, a folder, or new ones found by a resynchronization) can be moved into it. "Arborescence" picks how the folder is laid out. By default ("Un sous-dossier par BD"), each comic goes in its own subfolder named after the original file followed by its identifier, for example
Astérix T01 (3f2a…)/Astérix T01.cbz(a very long name is cut to fit the system's limit). Otherwise, choose one to three levels among "Première lettre", "Année", "Auteur", "Série" and "Album": the file goes in the last level's folder, for exampleA/Astérix/Astérix le Gaulois.cbzwith first letter then series, and the page shows an example. The first letter and the year can only be the first level, and the first letter needs a second level: it is that level's first letter without its accent (É→E), its first digit, or#for any other character. The author is the first writer credited (else the first person credited), as "Last name First name"; a comic with no year or no author goes into an "Inconnu" folder, one with no series into a folder named after its title. "Nom des fichiers" renames the files as they are moved, from a template of fields:{series},{volume},{title},{year}and{author}, for example{series} - T{volume} - {title}givesTintin - T20 - Tintin au Tibet.cbz, and the page shows the name it gives a sample album. Left empty (the default), files keep their original name; the extension is always kept. A missing series, volume, year or author gives "Inconnu", and the characters a file name can't hold become_; a/, a\or an unknown field ({serie}) is refused, with a message, and nothing is saved until it is fixed. In the default layout, the comic's subfolder takes the new name too. When two comics of the same name end up in the same folder, the second one's file is renamed with its identifier, for exampleTome 1 (3f2a…).cbz. Changing the tree or the file name moves nothing by itself: "Organiser toute la bibliothèque…" moves and renames the comics to their new place, as well as those whose details (series, volume, title, year, credits) changed since they were moved, and deletes the folders it leaves empty. "Demander s'il faut les déplacer" asks after each addition from the library page or a manual resynchronization (a resynchronization at startup never asks); "Toujours les déplacer" moves them without asking. The progress, rating, tags, details and reading lists of a moved comic are kept. The organized folder is added to the resynchronized folders, and a comic dropped there by hand is moved into its own subfolder at the next resynchronization (whatever the mode, except off). Comics already in the library aren't moved when the option is turned on: "Organiser toute la bibliothèque…" does it on demand, after a confirmation giving the number of comics not in their place yet, with a progress bar (it can't run during a resynchronization, nor the other way round). The folders the comics leave are not deleted (except the subfolders of the organized folder left empty). A comic that can't be moved (file in use, drive unplugged) stays where it was, still in the library, and is counted as "could not be moved". - Damaged files: comics are read in a separate process, so a corrupted or booby-trapped file (a PDF with an absurdly large page, say) can at worst fail to open, show an "unreadable file" error or be counted as failed during a folder scan; the app itself keeps running. If the reader's process stops while a book is open, reopen the book.
- Covers: each comic is shown with a thumbnail of its first page; clicking it opens the comic. Thumbnails are made when a comic is added or opened, and kept in a cache on disk, so the library doesn't reopen every file to show them. A comic added before this feature, or whose thumbnail is missing, gets one the first time the library shows it.
- Large libraries: the library list only draws the comics near the screen, so it stays smooth with tens of thousands of comics, and searching doesn't lag while typing. Every view (library, reading lists, sidebar, settings) shows the same data and is updated as soon as something changes, including after a folder scan, an import or when a comic is opened in the reader.
- File information: for each comic the library shows its page count, the number of files in the archive and its size on disk. They are computed when the comic is opened or scanned, and refreshed each time it is reopened.
- Looking up a book's information (magnifier button on each comic, "Rechercher les infos"): searches public APIs for the book's series, volume or issue number, title, release date, language and credits (writer, artist, colorist, inker, letterer, cover artist). The search is prefilled from the file name ("Blacksad_T02 (2003)" searches "Blacksad", volume 2) or from the series already known, and can be edited and rerun. The user picks the right book among the results (cover, date, language, source and authors are shown), then reviews each proposed change: every field can be accepted or refused, and edited before being applied. Authors already on the book are listed with the proposed ones; each can be kept or dropped, renamed, or given another role. An accepted title replaces the file name as the book's title, and reopening the file no longer resets it. Instead of search terms, the link of an album page on Bédéthèque (
https://www.bedetheque.com/BD-….html) can be pasted in the search field: the button becomes "Lire la fiche", the page is read and its information goes straight to the review step. - Editing a book by hand (pencil button on each comic, "Modifier la fiche"): the same information can be typed directly, without searching anything: title, series, volume or issue number, release date (
AAAA,AAAA-MMorAAAA-MM-JJ), language (picked from a list) and authors. Authors can be added, removed, renamed or given another role; a single-word pen name goes in the last name. An emptied field is cleared, except the title, which can't be empty. A changed title replaces the file name for good, as with a lookup. A person is shared by every book that credits them, and names are matched regardless of case: changing only the case of a name keeps the person's existing spelling. - Shown in the library: once filled in, the series, volume, year and language appear under the title, followed by the authors grouped by role.
- Sources (Paramètres › Métadonnées): Comic Vine, the reference for US comics, with the roles of each person; it needs a free personal API key, and is skipped without one. Google Books, which covers French BD and manga editions but doesn't tell the writer from the artist (everyone found there is an "Auteur"); an API key is optional, without one requests share an anonymous quota that can run out. Each source can be turned off. Only the search text is sent, and only when the user starts a search. Bédéthèque, the reference for BD and manga in French, is not searched: its album pages are read only from a pasted link, which needs no setting.
- People: each person credited is stored once (first name, last name, and a nationality field kept for later) and shared by all the books that credit them. A single-word pen name ("Hergé") is stored as a last name.
- Rating and tags: each comic can be rated from 0 to 5 stars (clicking the selected star again clears it) and tagged, with two quick tags ("Lu", "À lire"; "Read", "To read" in English) plus free tags typed in a text field. The quick tags are the same tags whatever the interface language: switching language only changes how they are labelled. Rating and tags are only ever changed by the user: reopening a book never resets them.
- Display modes (four icon buttons in the toolbar, next to the rating filter): "full" shows everything (cover, series, volume, year, language, authors, page counter, format, file information, rating and tag field); "medium" keeps the cover, the title, the series and volume, the page counter and the rating; "compact" shows one line per comic: title, series and volume, with no cover, rating or tags; "grid" shows the covers side by side, as many per line as the window is wide, with the series, title and volume under each (grouping by series, sorting, filters and the selection work as in the other modes, and a series heading takes a line of its own). In the grid, a card is dragged whole onto a reading list, and its tick box and its actions (edit, look up, add to a list, remove) appear when the pointer is over it or it has the focus. The action buttons (open, edit, look up, add to a list, remove) and the drag handle are there in every mode. The choice is remembered between sessions.
- Grouping by series (the stacked-layers button next to the display modes, off by default): the list is grouped by series, each series behind a heading with its name and how many of its books are read ("Lus : 3 / 7"). Series are in alphabetical order, the books without a series last under "Sans série"; within a series, books are sorted by volume (2 before 10, books without a volume after the others), then by title. A series whose name differs only by case or surrounding spaces is the same series. Clicking a heading folds or unfolds its books (folded series unfold again when the library page is reopened). Search and filters apply inside the groups: a series with no matching book disappears. The choice is remembered between sessions.
- Same book in several formats: when the library holds a book as two files of different formats (a CBZ and a PDF, say), the page shows it once, with the line "Formats : CBZ, PDF" under the title and one "Ouvrir CBZ" / "Ouvrir PDF" button per file to open the one you want (in the grid view, one small CBZ / PDF button per file under the title) (a click on the cover or the title opens the first). Two files are the same book when they have the same series and volume, or, without both, the same title (case, accents and surrounding spaces ignored); two files of the same format stay two books. Nothing is merged in the library: each file keeps its own progress, rating and tags, and the details, edit, list and remove buttons act on the file shown. Searching or filtering shows a book through the first of its files that matches.
- Sorting (the "Trier par" list in the toolbar, before the display modes): by last opening (the default, most recently opened first), by date added, by release date or by title, each in both directions. Books without a release date come last in both directions; titles follow natural order ("Tome 2" before "Tome 10"), ignoring case and accents. Sorting doesn't hide anything, unlike the filters, and applies to what they keep. While the list is grouped by series, the list is greyed out and reads "Par série et par tome": the grouped view has its own order, and the chosen sort comes back when grouping is turned off. The choice is remembered between sessions.
- Search and filters: the toolbar searches titles, file paths (so a folder name finds a whole series), series and author names, ignoring accents and case. Tags can be combined (a comic must carry all selected tags), and the rating filter keeps comics rated at least the chosen number of stars. The "sans fiche" button (file icon, next to the rating filter) keeps only the comics that have no information beyond their title, whether typed by hand or brought by a lookup: no series, volume, release date, language or credits. It is handy to find the comics left to document, and "Réinitialiser" clears it like the other filters.
Reading lists
- Removing a book (trash button on each comic): asks for confirmation first, in an in-app dialog rather than a native window, since the rating, tags, looked-up information, credits and list memberships are lost. The file on disk is left untouched.
- Lists ("Listes de lecture" in the sidebar): named piles of books to read in order, up to 50 books each. The page shows every list with its progress bar (books read out of the total, as a percentage) and the next book to read, with a "Lire" button. A list can be created there, renamed or deleted from its own page; deleting a list never removes its books from the library.
- Adding books: the list button on each comic of the library opens a dialog with one checkbox per list (ticking adds the book at the end, unticking takes it out) and a field to create a new list that the book goes straight into. A full list can't take more books. A comic can also be dragged from the library by the grip (six dots) at the left of its row, which highlights on hover; the rest of the row opens the book. Dropped onto a list of the sidebar, the list is highlighted under the pointer, the book is added at the end, and a short message under the lists confirms it (or says the book was already there, or that the list is full). Dragging over "Listes de lecture" unfolds the lists; there is nothing to drop on while the sidebar is collapsed to icons. Removing a comic from the library also takes it out of its lists.
- Adding several books at once: when the comic has a series and the library holds other books of it, the list dialog also offers "Toute la série « … » (N livres)": each list then gets every book of the series it doesn't hold yet, in volume order (2 before 10, books without a volume last; series names match whatever the case and accents). The library rows also have a checkbox, next to the grip: Shift-click ticks or unticks the whole range since the previous click, and the checkbox above the list ticks every comic shown (or unticks them). The selection survives a new search or filter, so it can gather books from several searches; "Ajouter à une liste de lecture" then opens the same dialog for the selected books, in the order shown. Dragging the grip of a selected comic carries the whole selection (shown as "N livres" under the pointer) and drops it onto a list of the sidebar the same way; dragging the grip of a comic that isn't selected carries that comic alone. With several books, a list holding some of them shows how many and a half-ticked box, ticking a list adds the missing ones (they can't be taken out all at once: that is done on the list's page), and a new list created there gets them all. A list that fills up takes the books that fit, in order, and a message says how many were added, how many were already there and how many were left out.
- Read books: a book counts as read once its last page has been reached, or when it carries the "Lu" tag. In the list it is greyed out and struck through, and the first unread book is highlighted as the next one ("À suivre").
- Reordering: unread books are moved by dragging the grip (six dots) at the left of their row, or with the up/down arrows; the rest of the row opens the book. Read books stay where they are: they can't be moved, and the unread books move around them.
- Display modes of a list (three icon buttons above the books, as in the library): "full", "medium" and "compact" show a list's books like the library's display modes do (cover, details, page counter, rating and tags in "full"; cover, series and volume, page counter and rating in "medium"; one line in "compact"), and the rating and tags can be changed from there. The list keeps its own order and its reading actions (arrows, "Lire"/"Ouvrir", remove from the list) in every mode. The choice is remembered between sessions, separately from the library's.
- Next book: a book opened from a list (its "Lire"/"Ouvrir" buttons) offers "Suivant : …" in the reader header on its last page, which opens the list's next unread book; when every other book is read, the header says "Liste terminée".
Achievements
"Accomplissements" in the sidebar lists 20 achievements in four groups (reading, library, organization, fun), each with a manga-style badge in the app's accent colour: greyed out until earned, then in colour with the date it was earned. Tiered ones (10, 50, 200 books finished; 100, 1 000, 5 000 books in the library…) are separate badges marked with one to three stars. An achievement still to earn shows a progress bar (for example 7/10) when it is a matter of counting.
- Reading: finishing 1, 10, 50 and 200 books (a book counts as finished like in the reading lists); opening a book after 10 pm (until 5 am) or between 5 am and 7 am.
- Library: 100, 1 000 and 5 000 books; having a CBZ, a CBR and a PDF; adding a folder.
- Organization: creating a reading list, creating 5 or filling one with 50 books; rating 10 and 50 books; using 10 different tags (the "Lu" and "À lire" quick tags don't count); filling in the credits of 1 and 10 books.
- Fun: opening a book in right-to-left reading direction; having books in 2 different languages.
A toast at the bottom right announces an achievement as it is earned (several earned at once, as when an existing library is first scanned for them, are summed up in one toast). An earned achievement stays earned when the books that earned it are removed, and clearing the library keeps them; they are not part of the JSON export.
Reader
- Resume: a comic reopens at the last page read.
- Anonymous reading (Paramètres › Lecture, "Ajouter un livre à la bibliothèque quand il est ouvert", checked by default): opening a book that isn't in the library adds it. Unchecked, a book opened from the reader ("Ouvrir un fichier") that isn't in the library is read anonymously: it isn't added, nothing is saved for it (no progress, no cover) and it starts from the first page each time. "Ajouter un fichier" on the library page always adds the book, whatever the option. Books already in the library keep their progress and stay up to date either way.
- Open from the file explorer: a comic (CBZ, CBR or PDF) can be opened from outside the app: "Open with…" Tankōbon on any platform, a double click once the app is the default program for the type (the Linux
.deb/.rpmpackages and the macOS app declare the types; the Windows installer doesn't, so choose Tankōbon once with "Open with… › Always"), ortankobon book.cbzin a terminal. If the app is already running, its window comes forward and shows the book; otherwise it starts on the book. The book follows the same rules as one opened from the reader: it joins the library, or is read anonymously, according to Paramètres › Lecture. - PDF page turns: a PDF page has to be drawn before it is shown, so the reader prepares the next and previous pages in the background and keeps the last few: turning a page is nearly instant, like in a CBZ, except when jumping far or opening the book.
- Reading direction: left-to-right (BD/comics) or right-to-left (manga), in Paramètres › Lecture. It swaps which side (arrow keys and click zones) goes forward.
- Zoom: fit to window, or 50 % to 200 % (100 % being the page's actual size). A page smaller than the window stays centered; a larger one scrolls. After a page turn, a zoomed page starts at its top when you go forward and at its bottom when you go back, so reading continues where you left off.
- AI enhancement: when a page is displayed larger than its native resolution, the "Améliorer (IA)" option upscales it with a super-resolution model (ESRGAN via UpscalerJS/TensorFlow.js) that runs locally. The model ships with the app and works offline; it is only loaded the first time the option is used.
- Mouse wheel / trackpad: in "fit" zoom the wheel turns pages, one page per gesture (the inertia of a trackpad swipe doesn't skip extra pages). When zoomed in, the wheel first scrolls the page and only turns it once the top or bottom edge is reached. Whether scrolling down goes forward or back is set in Paramètres › Lecture.
- Zoom in continuous mode: the zoom menu also appears in continuous scroll. It sets the width of the page column, from 50 % to 200 % of the reading area ("Fit to width", 100 %, by default); beyond that width the pages scroll sideways. Changing it keeps your relative position in the book. It is not saved: each book opens fitted to width.
- Continuous mode: instead of page by page, pages can flow vertically ("Défilement continu"), loaded as they approach the screen. The gap between pages is set in pixels (0 = pages touch). The current page (for the counter, resuming and the reading list's next book) is the one crossing the middle of the screen, however tall it is. A page that can't be read shows "Page illisible" instead of loading forever. This includes a CBZ/CBR page whose image declares absurd dimensions (above 100 megapixels, e.g. 30 000 × 30 000 px): it is refused before being decoded, so it can't exhaust the memory, and its book simply goes without a cover.
- Book that won't open: when a book opened from the library can't be read (file moved or deleted, corrupted, unsupported), the reader shows the error with a "Retirer de la bibliothèque" button. After confirmation the book is removed from the library (its rating, tags and details are lost; the file stays on disk) and you go back to the library.
- Progress and time left: the reader header shows the percentage read and an estimate of the remaining reading time, based on the pace observed since the book was opened in this session. The estimate appears once there is enough data.
- Files that can't be opened: a file that was moved or deleted shows "Fichier introuvable : il a été déplacé ou supprimé."; any other failure (corrupted or unsupported file) shows "Impossible d'ouvrir ce fichier : …" followed by the reason. The book you were reading stays open.
- Theme: Paramètres › Affichage › "Thème" picks "Système" (the default, follows the operating system's light or dark scheme and changes with it), "Clair" or "Sombre". It applies at once and is part of the exported settings. The theme is personal: each user has their own, and switching user applies theirs. The reader's background color is separate and always free.
- Background color: the color behind the pages can be picked from presets or a color picker (Paramètres › Affichage).
- Fullscreen: the header button,
ForF11toggle fullscreen;Escapeleaves it. In fullscreen the sidebar is hidden and the header only appears when the mouse reaches the top of the screen. - Keyboard (page-by-page mode):
→,Page DownandSpaceact like the right click zone;←andPage Uplike the left one.
Application menu
The menu bar only holds entries that work: Fichier (Quitter; Fermer on macOS), Édition (undo, redo, cut, copy, paste, select all), Affichage (full screen, the same as F11) and Fenêtre (minimize, close). Reload, zoom and the help links of Electron's default menu are gone. The developer tools entry only appears in development mode (npm run dev). The labels follow the interface language and change with it.
Statistics
"Statistiques" in the sidebar shows how the library is used.
- Totals: the number of books, the size of the library on disk, the number of books read (last page reached or "Lu" tag, whenever that happened) and the total reading time.
- Charts: "Livres lus" and "Temps de lecture", as bars per month (the last twelve) or per year (since the first one with data), switched with the "Mois"/"Année" buttons. Months and years with nothing keep an empty slot.
- What is recorded, and since when: a book is dated the first time its last page is reached or it is tagged "Lu" (it is not dated again later). Reading time counts while a book of the library is open in the reader and the window is visible and focused, and is added to the day it was read (local time). Both are recorded from the version that introduced this page: books read before are in the totals but not in the charts, and have no reading time. A book opened anonymously (see "Reader") leaves no trace.
- Your data: the history is not part of the JSON export, and "Vider la bibliothèque" deletes it. Removing a single book keeps the time already spent reading it.
Users
Several people can share one installation. A user has a nickname and, optionally, a profile picture (the default is a generic contact image); there is no password, so anyone using the app can switch to any user.
- Switching: the sidebar's bottom button shows the current user. It opens a menu listing every user (click another one to switch to it, which brings you back to the home page), "Ajouter un utilisateur…" (asks for a nickname, creates the user and switches to them) and "Mon profil". Clicking your own entry in the menu opens your profile. The app reopens on the user who was active when it was closed.
- Choice screen at startup: Paramètres › Bibliothèque › "Demander qui lit au démarrage" (off by default) shows, at each launch, a full-window screen listing the users with their pictures; clicking one switches to them (the active one just closes the screen). Its "Ne plus proposer ce choix au démarrage" box turns the setting off. The setting is shared by every user, since it is read before anyone is chosen.
- Reading history (on the profile page): the books you spent time reading, one line per day and book with the time spent, most recent first (the last 200 lines). A book removed from the library since shows as "Livre retiré de la bibliothèque". "Effacer l'historique" (after a confirmation) deletes it for the active user only: the statistics' reading time goes with it, but books, progress, ratings and finished books stay.
- Profile (
/profile): change the nickname (not empty, at most 40 characters, unique ignoring case) and the picture ("Choisir une image…", then "Retirer l'image" to go back to the default). The picture is cropped to a centered square, shrunk to 256 × 256 px and stored in the database; PNG, JPEG and WebP files are accepted. - Deleting a user: the profile page's "Supprimer cet utilisateur…" button (after a confirmation) deletes the active user for good, with their ratings, tags, progress, reading lists, statistics, achievements and settings; the library and the other users are not affected, and the app switches to the previously active user and goes back to the home page. It is only available while at least one other user exists: the last remaining user can't be deleted.
- What is personal: the rating, tags and reading progress of each book (so "Lu"/"À lire", the last page reached and the books started), the reading lists, the statistics and reading time, the achievements, and the settings of reading, display, language, home page and library views (Paramètres › Lecture, Affichage, Accueil, and the library toolbar). A new user starts with the default settings and an empty history. The first user is the one the data of an earlier version goes to; their nickname is taken from the operating system's session name.
- What is shared: the library itself (the books, their title, series, credits and other information, covers), the folders and the organization of the library, the metadata sources and their API keys, the resynchronization and update-check settings, the startup choice screen, and the choice of adding opened books to the library. Editing a book's information or rescanning a folder affects everyone.
- Export / import and "Effacer la bibliothèque…" work on the active user's data: an export holds the library with the active user's ratings, tags and progress, their lists and their settings; an import merges into the active user's. Clearing the library removes the books for every user, but deletes only the reading lists of the user who clears it.
Language
The interface is available in English and French. By default it follows the operating system's language: the first of the system's preferred languages that the app supports, or English when none is. Paramètres › Affichage › "Langue" forces one of them instead ("Langue du système" goes back to following the system). The change applies at once, including the native dialogs (open a comic, add a folder, export…) and the error messages. The language is a personal setting: each user has their own, and the interface follows the user you switch to. It is part of the exported settings. A flag (SVG) of the country standing for the language is shown before the language pickers (Paramètres › Affichage and the book edit form), and replaces the language's name in the library rows (the name appears when hovering it); languages without a known flag keep their name.
Start-up
While the app loads its data (settings and language), the window shows a centered spinner instead of a blank page. It follows the system's light or dark appearance and disappears as soon as the interface is displayed.
Sidebar
The button at the top of the sidebar collapses it to a column of icons, to give more room to the reader. The state is remembered like the other settings.
"Listes de lecture" lists every reading list underneath it, for direct access to a list's page. Clicking "Listes de lecture" opens the page of all lists and unfolds them; its chevron folds or unfolds them without leaving the current page. "Paramètres" unfolds its sections the same way. Sub-entries are hidden while the sidebar is collapsed to icons. The reading lists can be put in any order by dragging them in the sidebar (a line shows where the list will land); that order is kept and used on the page of all lists too. A new list goes last.
About
Paramètres › À propos shows the app's version, along with the versions of Electron, Chromium, Node.js and V8 and the operating system. "Copier les informations" copies them as text, to paste into a bug report. Buttons open the documentation, the source code on GitHub, the published versions (installers and changelog) and the issue tracker in the default browser.
License: Tankōbon is free software under the MIT license. The "Licence" section of Paramètres › À propos says so, recalls that the app is provided "as is", without warranty (the authors aren't liable for lost data or damaged files, so keep backups and export the library regularly), and "Lire la licence" opens the full text on GitHub.
Updates: at every start, the app asks GitHub for the latest published release and, if it is newer than the running version, shows a notice offering to open the releases page to download it (a failed check, when offline for instance, stays silent). "Rechercher une nouvelle version au démarrage" in Paramètres › À propos turns this off (on by default); "Rechercher maintenant" runs the check on demand and reports the result. Only the request to GitHub is made; nothing is downloaded or installed by the app itself.
Your data
- Local only: the library, the users and the settings are stored in one SQLite file,
tankobon.db. By default it lives in the app's user data directory; nothing is sent to the cloud. Cover thumbnails are a cache in athumbnailsfolder of the user data directory; they stay there even when the database is moved, and can be deleted at any time. The only network requests are the information lookups the user starts, which send the search text to the enabled sources. - Moving the database (Paramètres › Données): the database can be pointed at another folder, for example a synced one. The existing file is not moved: if the new folder already holds a Tankōbon database it is used as is, otherwise an empty one is created there. The change takes effect after a restart ("Redémarrer maintenant"). Export your data first if you want to take it along.
- Export / import (Paramètres › Données): the library, reading lists and settings can be exported to a JSON file (named after the date and time of the export by default, e.g.
tankobon-export-2026-10-02-14h30.json), and an export can be imported back. Importing merges by file path: comics in the file overwrite the matching ones (progress, rating, tags and looked-up information included), comics only present locally are kept, and settings are replaced. Reading lists in the file replace the same lists (name and books) and come first, in the file's order; other local lists are kept, after them, and a book of a list that isn't in the library is left out. Thumbnails are not part of the export: after an import they are rebuilt in the background from the comic files. The settings include the API keys, so an export file should be kept private. If the file can't be written (full or read-only disk…), the reason is shown under the buttons instead of nothing happening. - Clearing the library (Paramètres › Données): "Effacer la bibliothèque…" removes every comic from the library (progress, ratings, tags, looked-up information and credits), deletes all reading lists and cover thumbnails, after a confirmation dialog that says how many comics and lists will go. The comic files on disk and the settings are left untouched. If it fails, the reason is shown under the button. It can't be undone: export your data first to be able to restore it.