Why this fork | What's new | Screenshots | Features | Changelog | Download
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.
More Screenshots ๐ธ
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
mangaopens in double page, right-to-left.manhwaandmanhuaopen 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 -completedworks, and searches can be saved. - It got a lot faster. See Performance โ the numbers are measured, not estimated.
Roughly 160 fork changes across v1.7.0 โ v1.8.1. The highlights:
- 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)
- 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
- 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
See Performance for the measurements.
- "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
- 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
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
requireits 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
7zsubprocess 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+statSyncper 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.
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,nearestand others
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 ๐
- 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.gzand.ziparchives (extract and runopencomic). 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
.dmgneeds to be built on macOS itself, which this fork isn't set up to do. Build from source in the meantime.
The links below are upstream OpenComic v1.7.7
and do not include anything described in What's new.
Requirements: Git, Node and NPM
git clone https://github.com/RishithSahu/OpenComic.git
cd OpenComic
npm install
npm startgit 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 includearm) - 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.
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-nativeIt 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.
If you want to see OpenComic in your language, please help us to Translate.
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.
