Skip to content
ย 
ย 

Latest commit

ย 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OpenComic

A manga-first comic reader

This is a modified fork of ollm/OpenComic by Oleguer Llopart, maintained at RishithSahu/OpenComic. All of upstream's reader is here; this fork adds a manga-aware library on top of it and puts a lot of work into making the app start and turn pages faster. Upstream is excellent โ€” if you want plain OpenComic, get it from there.

Screenshot

Screenshot

More Screenshots ๐Ÿ“ธ

Why this fork

Upstream OpenComic is a great general-purpose comic reader. This fork is aimed at people with a large, messy manga/manhwa library who want it to organise and read itself sensibly:

  • It knows what you are reading. Series metadata is scraped from AniList per folder, so your library shows real titles, authors, genres and ratings instead of directory names.
  • It picks the right reading mode for you. A series AniList reports as manga opens in double page, right-to-left. manhwa and manhua open in webtoon/scroll. Set a mode by hand and that choice wins and is remembered โ€” per series, not globally.
  • It helps you decide what to read next. Continue reading, Recommended for you and Recently added rows on the home screen, with thumbs up/down feedback that actually changes what you get shown.
  • It finds things. genre:action series:manhwa rating>75 -completed works, and searches can be saved.
  • It got a lot faster. See Performance โ€” the numbers are measured, not estimated.

What's new since v1.7.0

Roughly 160 fork changes across v1.7.0 โ†’ v1.8.3. The highlights:

๐Ÿ—บ๏ธ Three new library views
  • Series Relationship Explorer โ€” an interactive flowchart of a series' prequels, sequels, spin-offs and adaptations, opening straight into your local files
  • Library Constellation โ€” the whole library as an interactive, night-sky-styled star map, distance driven by genre similarity
  • Library Weather โ€” a five-number "weather report" dashboard for your reading habits
๐Ÿ“‡ Manga-aware library
  • Automatic AniList metadata per series folder: title, author, genres, demographic, serialization year, rating and description, with backfill for entries scraped before newer fields existed
  • Automatic reading mode per series, driven by the AniList format โ€” and per-series reading configuration, so each title keeps its own layout instead of sharing one global setting
  • Genre filter menu in Library and Recently opened
  • Rename titles from the right-click menu (display name only โ€” files on disk are never touched)
โ–ถ๏ธ Discovery
  • Continue reading, Recommended for you and Recently added rows with cover art and metadata
  • Thumbs up/down recommendation feedback with anti-repeat rotation and fairness weighting, plus an optional ranking sidebar combining the AniList score with your own likes and dislikes
  • AniList "Trending Now" / "Popular" rows on the Catalogs page, so it pulls its weight for a manga-focused library instead of only listing upstream's general-fiction catalogs. Loaded and refreshed only when the page is opened, cached locally, and never touches startup time
๐Ÿ”Ž Search
  • Power search syntax with field filters, comparisons and negation (full grammar below)
  • Saved searches, recallable in one click
  • Debounced search, so typing no longer freezes on a large library
โšก Performance

See Performance for the measurements.

๐Ÿ›Ÿ Reliability
  • "Clear temporary files" no longer wipes your library, tracking, reading progress and bookmarks โ€” it also asks for confirmation first, which it previously did not
  • Fixed opened files showing only their first page until their cache was cleared by hand
  • Fixed EPUB pagination getting permanently stuck on the loading screen
  • Fixed looping and jumping back to the top during continuous scroll reading
  • Fixed corrupted thumbnails being retried forever, pinning a CPU core
  • Fixed the library search hanging indefinitely on an unreadable folder
  • Every AI tool (Artifact Removal, Descreen, Upscale) now works on PDFs, at the right resolution, without leaking blob memory or flickering on every page turn
  • Fixed a crash opening CBZ archives packed as a wrapping folder (common in omnibus/scanlation releases), and their library thumbnails never appearing
  • Fixed a hang and slower startup introduced by an in-progress performance experiment
  • Fixed the header bar's icon row (sort, zoom, filters, bookmarks) disappearing for a long comic/folder title
  • Fixed a manga never appearing in Continue reading despite being read repeatedly, when AniList couldn't match its title โ€” actual reading progress is now enough on its own
  • Fixed browsing into a folder holding a single archive jumping straight into the reader instead of showing that folder
  • Fixed zoom resetting on every chapter change in webtoon/scroll view even with "keep zoom" enabled
  • Fixed a brief blank flash on every page turn, and stutter while scrolling fast through webtoons
๐ŸŽ“ Quality of life
  • Interactive in-app tutorial that walks through the real UI using the bundled Pepper & Carrot sample
  • Guides available offline from Help โ–ธ Guides
  • Right-click to delete custom catalog tabs
  • Windows installers no longer fail to start with Could not load the "sharp" module

New ways to see your library

A library, a series and your reading habits are each interesting in their own way that a plain grid and a plain list can't really show. Three new pages, each built around one specific question:

๐Ÿ•ธ๏ธ Series Relationship Explorer โ€” "what else belongs with this one?"

Right-click any series โ†’ View relationships. Instead of a wall of text, prequels, sequels, spin-offs, side stories and adaptations are laid out as a small flowchart: the adaptation (anime, if one exists) sits above the series itself, prequel โ†’ this series โ†’ sequel run left to right through the middle, and spin-offs / side stories sit below.

Every node is resolved to your own library first โ€” by the same tracking ID (AniList/MyAnimeList) if the related title is already tracked, and by fuzzy title match otherwise, using the same matching OpenComic already uses when it scrapes a folder's metadata in the first place. Click a node that resolved locally and it opens that series' actual files immediately โ€” no searching, no guessing which folder it lives in. A relation that doesn't resolve locally (an anime adaptation, which naturally never has local files in a manga reader, or a prequel nobody's added yet) still shows in the diagram โ€” click it and it opens that title's AniList or MyAnimeList page in your browser instead, so "nothing to click" never means "no information at all."

๐ŸŒŒ Library Constellation โ€” "what does my whole library actually look like?"

A visual map of the entire library, styled as a real night sky rather than a generic node-link diagram: a deep-space background regardless of your active theme, a decorative starfield, and every series drawn as a small glowing star. Distance between two stars is genre similarity โ€” series that actually share several genres end up visibly close together, unrelated ones drift apart โ€” computed once as a physics simulation when the page opens, not live every frame.

Genre similarity here is weighted, not a plain shared-tag count: a genre practically every series in your library has (Action, Comedy, Fantasyโ€ฆ) barely pulls two stars together, while a genre only a handful of series share (Cooking, Mecha, Isekaiโ€ฆ) pulls hard โ€” the same idea as TF-IDF weighting in search. Without that weighting, a real library's genre distribution collapses the whole map into one dense, illegible ball, since almost every pair of series shares something common. Distinctive clusters of stars get their own nebula โ€” a soft, genre-tinted glow with the genre's name โ€” so a region of the sky reads as "this is where the Isekai titles are" at a glance, without a label covering half the map for genres too common to mean anything as a cluster.

Scroll to zoom (anchored to your cursor, not the middle of the screen), drag to pan, and click any star to jump straight into that series.

โ˜๏ธ Library Weather โ€” "how am I actually doing?"

A small, deliberately unserious dashboard, not another analytics page: unfinished series, series you completed this month, series you're actively reading (touched in the last two weeks), series untouched for over a year, and folders still missing a confirmed metadata match. Every number comes straight from data OpenComic already stores locally โ€” your real reading progress, not a separate tracked-in-parallel counter that can quietly drift out of sync with it โ€” so opening the page costs nothing extra and the numbers are always current.

It's not trying to be a serious analytics suite. It's a "weather report" for a library that can easily have hundreds of series in it: five honest numbers, presented for a moment's reaction ("oh, I really should get back to that one") rather than a dashboard to study.

Performance

Measured on the same machine, warm, against a packaged build โ€” your numbers will differ with library size, disk and display.

Area Before After
Startup to dom-ready (packaged x64) 5.5โ€“8.0s ~0.65s
CBZ archive listing (279MB, 192 pages) 420ms 23ms
Single page out of that CBZ 126ms 14ms
Library render (234 folders) ~1,872 blocking filesystem calls, ~82ms 468 first render, 0 on re-render, ~8ms

What changed, in short:

  • The renderer used to require its entire module graph โ€” sharp, the AI runtime, epubjs, the whole remote-server stack โ€” before the document was even parsed. Only what is needed to paint the library loads up front now; the rest is pulled in lazily and warmed during idle time.
  • CBZ archives are read in-process instead of spawning a 7z subprocess per operation. A CBZ is a ZIP, so a page is a plain byte range. Any failure falls back to the original 7-Zip path, so CBR/CB7/RAR are untouched.
  • The library page stopped rebuilding itself every few seconds during metadata scraping, and stopped building its recommendation candidate list four separate times per render. Each build ran a blocking existsSync + statSync per tracked folder โ€” 234 folders ร— 2 calls ร— 4 builds โ€” so building it once removes three quarters of that outright, and the folder timestamps are then cached for two minutes, which takes a re-render inside that window down to none at all.
  • PDF prefetching no longer queues 20 pages per turn while keeping only 3โ€“4 rendered pages alive, which meant most of that rasterisation was evicted before it could be shown and had to be redone.
  • The rendered-page cache is budgeted in bytes rather than page count, so a zoomed page on a HiDPI display can no longer quietly hold hundreds of megabytes.

Not everything tried made the cut โ€” a page scheduler and a direct archive-to-Sharp streaming path were built, measured, found to be within noise, and removed rather than shipped on principle.

Features

Everything below comes from upstream OpenComic and works exactly as it does there.

  • ๐ŸŒ„ Support these image formats: JPG, JP2, JXR, JXL, PNG, APNG, AVIF, HEIC, WEBP, GIF, SVG, BMP, ICO
  • ๐Ÿ“ฆ Support these compressed formats: RAR, ZIP, 7Z, TAR, LZH, ACE, CBR, CBZ, CBA, CB7, CBT
  • ๐Ÿ“„ Support these document/ebook formats: PDF, EPUB
  • ๐ŸŽต Support background music from folder: MP3, M4A, MP4, WEBM, WEBA, OGG, OPUS, WAV, FLAC
  • โ˜๏ธ Server connection support: smb://, ftp://, ftps://, scp://, sftp://, ssh://, s3://, webdav://, webdavs://
  • ๐Ÿ“ Master folders support
  • ๐Ÿ“š OPDS support
  • ๐Ÿ—‚๏ธ Tab support
  • ๐ŸชŸ Multi-window support
  • โค๏ธ Favorite labels
  • ๐Ÿท๏ธ Custom labels
  • ๐Ÿ‡ฏ๐Ÿ‡ต Manga read mode
  • ๐Ÿ‡ฐ๐Ÿ‡ท Webtoon read mode
  • ๐Ÿ“– Double page view
  • ๐Ÿ”– Bookmarks and continue reading
  • ๐Ÿ” Floating magnifying glass
  • ๐Ÿ–ฑ๏ธ Reading in scroll or slide
  • โšช Adjust the brightness, saturation, contrast, sepia, negative and invert colors
  • ๐ŸŽจ Colorize black and white images
  • โœจ AI tools: Artifact Removal, Descreen, and Upscale
  • ๐Ÿ”„ Tracking with sites (AniList and MyAnimeList)
  • ๐ŸŽฎ Gamepad navigation
  • โŒจ๏ธ Custom shortcuts and tap zones
  • ๐Ÿ”ข Multiple interpolation methods: lanczos3, lanczos2, mitchell, cubic, linear, nearest and others

Search syntax

The search overlay accepts field filters, for example genre:action series:manhwa rating>75 -completed:

  • Text fields โ€” author: (artist:, creator:), genre:, tag:, label:, title:, name:, path:, status:, type: (kind:), source:, series: (seriestype:), demographic: (demo:), has:
  • Numeric fields, usable with : = > < >= <= โ€” rating: (score:), year:, progress:, confidence:, time: (readtime:, minutes:)
  • Keywords โ€” unread, reading, read/completed, favorite, tracked/untracked, folder, file, compressed
  • Combine values with , or |, quote phrases, and negate any term with - or !

Any search can be saved from the overlay and recalled in one click.

You can see the changes between versions in the Changelog ๐Ÿ“

Download

This fork

Releases โ€” v1.8.3

  • Windows x64: NSIS installer. The build is unsigned, so Windows SmartScreen will warn the first time you run it โ€” choose More info โ–ธ Run anyway.
  • Linux x64: generic .7z, .tar.gz and .zip archives (extract and run opencomic). Distro packages (.deb, .rpm, AppImage) aren't published yet โ€” until then, use one of the archives above or build from source.
  • macOS: no prebuilt build yet โ€” a signed/notarized .dmg needs to be built on macOS itself, which this fork isn't set up to do. Build from source in the meantime.

Upstream

The links below are upstream OpenComic v1.7.0 and do not include anything described in What's new.

Website

Installation and Starting for development

Requirements: Git, Node and NPM

git clone https://github.com/RishithSahu/OpenComic.git
cd OpenComic
npm install
npm start

Build from source

git pull origin main
npm install
npm run build-<buildType>

Available build types:

  • Windows: win (all targets), nsis, portable, folder-portable, appx, dir
  • Windows Arm: win-arm
  • macOS: mac-dmg, mac-pkg (Both include arm)
  • Linux deb, rpm, snap, flatpak, appimage, 7z
  • Linux Arm: deb-arm, rpm-arm, snap-arm, flatpak-arm, appimage-arm, 7z-arm

Now the build files are located in dist folder.

Troubleshooting

Not exists during build (Linux or macOS) โ€” run npm install --force inside ./build/node-zstd-native-dependencies, then npm install again in the main folder.

Could not load the "sharp" module using the win32-x64 runtime when starting a built app โ€” npm only installs the sharp binary for the machine's own CPU, and installing another architecture removes the previous one. A single node_modules is used to build both the x64 and arm64 installers, so one of them can end up shipping a binary it cannot load. Every Windows build script already runs this first, but if you invoke electron-builder directly, run it yourself:

npm run sharp-native

It installs every sharp architecture for the current OS, at the exact versions sharp itself declares. Note that a plain npm install afterwards will prune them again, since they are installed with --no-save.

Translation

If you want to see OpenComic in your language, please help us to Translate.

Contributors

Backers

Sponsors

Mega Sponsors

GitHub Sponsors

Pepper & Carrot

This application contains as example the webcomic Pepper&Carrot by David Revoy licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0).

Based on the universe of Hereva created by David Revoy with contributions by Craig Maloney. Corrections by Willem Sonke, Moini, Hali, CGand and Alex Gryson. Translated into Spanish by TheFaico.

About

A performance-focused fork of OpenComic for large local comic and manga libraries, faster startup and CBZ archive listing, with AniList metadata, automatic reading modes and power search.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages