Skip to content
ย 
ย 

Latest commit

ย 

History

23 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.1. The highlights:

๐Ÿ“‡ 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

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.1

  • 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.7 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

Contributors

Languages