A lightweight, purely local web application for reading comics. Place your .cbz or .cbr files into organized series folders, and the application instantly builds a beautiful, interface to read them on your localhost server or mobile device on the same network.
- Zero-Extraction Storage: Comics
.cbzfiles are opened entirely in browser memory using JSZip, saving you massive amounts of hard drive space. - Smart Metadata & Search: Automatically generates
config.jsonfiles for series. Add characters, genres, and creators to dynamically search through your library. - Binge Mode: Natively detects when you are near the end of an issue and prompts you to jump into the chronological next issue.
- Persistent Reading Tracking: Uses browser local storage to remember which issues you've finished, graying out their covers and giving you a custom Right-Click context menu to manage read states.
- Mobile Friendly: Fully responsive UI, including the ability to scroll through pages using your phone's physical Volume Keys.
- Custom Theming: Use
preferences.jsonto swap CSS styles globally.
- Inside your root directory, create a directory called
./collections. Inside this directory, create subdirectories for any comic series (e.g.,./collections/Thunderbolts/). - Drop your
.cbzor.cbrcomic files into that directory. - Double-click the
RunReader.batfile to start the application. - The script will automatically:
- Run
UpdateLibrary.ps1to scan directories, extract cover images, and updatelibraryData.jswith your latest issues. - Boot a lightweight Python HTTP server.
- Open your default web browser directly to the reader.
- Run
- Windows / PowerShell 5+ (for dynamic library building)
- Python 3 (for the lightweight localhost server)
- A modern Web Browser
The application is entirely self-hosted. Instead of relying on a heavy database like SQL, UpdateLibrary.ps1 runs on startup to scan raw directories using Regular Expressions, pulling out issue dates/names and injecting them into a static libraryData.js object.
Python simply serves the directory over HTTP to bypass standard browser CORS limitations. All the heavy lifting—from sorting, searching, URL routing, and in-memory zip extraction—is handled natively by Vanilla JavaScript and HTML5 on the frontend!