Skip to content

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MosaicView

Version License Platform

🌐 https://bruno-aublet.github.io/MosaicView/

MosaicView is a desktop application for editing digital comics files — CBZ, CBR, CB7, CBT and PDF — without ever having to open or extract them manually.

This is NOT a reader, although it has a viewer. It is an editing tool for comic archives.

Designed for comic, manga and BD readers who want to organize, clean up and prepare their files quickly and intuitively.

This is my first application, and I hope you’ll like it. I have absolutely no programming knowledge. None, zero, nada. I built MosaicView with the help of Claude Code. Yes, I used an AI to write this program. You can hate me if it makes you feel better.

⚠️ Active development — features are being added regularly.

💬 Feedback wanted

I'd love to hear from you: what works, what doesn't, what's missing, what's confusing. This project only gets better with real feedback from real users.

Translations were done by AI and are naturally error-prone, so any help spotting and fixing mistakes is very welcome. Don't hesitate to tell me what's wrong.

I obviously haven't been able to test the scan feature with every scanner out there. If it fails with yours, please get in touch and/or send me the logs. The app will guide you through sending them.


The Mosaic View

Open an archive and its pages fill the window as thumbnails — your entire comic, at a glance. Everything is designed to be handled directly in that mosaic: drag pages to reorder them, drop files to add them, click to rename or delete. The goal was to make it feel like something you can figure out without reading the docs.

Thumbnail size is adjustable (3 sizes), via the slider or Ctrl+scroll wheel directly on the mosaic. The interface comes in light and dark themes. A fullscreen mode is also available.

The window can be split into two independent panels side by side, each with its own archive, its own undo/redo history, and its own toolbar. The divider between the two panels is freely resizable. Pages can be dragged from one panel to the other (i.e. moving pages from one archive to the other).

All operations are performed directly on the archive — no manual extraction required.


Supported formats

Format Read Write
CBZ (ZIP) ✅ ✅
CBR (RAR) ✅ —
CB7 (7-Zip) ✅ —
CBT (TAR) ✅ —
PDF ✅ —
EPUB ✅ (images only) —

CBR, CB7, CBT and PDF files are always exported as CBZ after editing. This is a deliberate choice: the ZIP engine is free and open, while RAR is proprietary, 7-Zip and TAR are rarely used in practice for comics.

MosaicView also detects misnamed archives (e.g. a CBR file saved with a .cbz extension) and offers to rename them automatically.

MosaicView also accepts loose image files (dragged individually or as a folder), in the following formats: JPG, PNG, GIF, WebP, AVIF, BMP, TIFF, ICO, JFIF.


Languages

MosaicView is fully translated into 46 languages, including English, French, German, Spanish, Japanese, Chinese, Arabic, and many more.

The interface language is detected automatically from your system settings.

For the adventurous, the interface is also available in Klingon and Elvish (Quenya and Sindarin) — each in two versions: Latin transliteration and native script.

The icon panel on the left is entirely optional. It can be hidden if you prefer a cleaner interface. When visible, it is fully customizable: you can adjust its width, choose which icons appear in it, change their size, and rearrange them freely within the column.

Icon panel


Features

  • Mosaic view — browse all pages of an archive at a glance, as thumbnails
  • Minimap — an optional side panel showing a miniature overview of the whole mosaic, with a rectangle marking the currently visible area. Drag the rectangle or click anywhere on the minimap to jump straight to that spot; the mosaic and the minimap scroll together in both directions. Hidden by default, toggle it from the menu bar or the right-click context menu.
  • Reorder pages — drag and drop pages into the right order directly in the mosaic
  • Rename pages — edit filenames inline, without extracting anything
  • Delete pages — remove unwanted pages in one click
  • Resize pages — batch-resize all pages of an archive to a target resolution
  • Image adjustments — sharpness (simple or adaptive/unsharp mask), brightness/contrast, saturation, color removal, JPEG compression quality, black/white levels (with eyedroppers and an auto button), transparency (click a color to make it transparent), color depth (32/24/8/1-bit), effects (grayscale, sepia, color inversion), and image mode (RGB, RGBA, grayscale, CMYK, palette…) — all available live from the image viewer's toolbar, each with an instant preview
  • Merge archives — combine multiple CBZ/CBR/CB7/CBT/PDF files into one (especially useful for variant covers)
  • Convert formats — batch-convert CBR → CBZ, CB7 → CBZ, CBT → CBZ, PDF → CBZ, or image folders → CBZ
  • Scan images — scan a page directly from a connected scanner (via Windows' WIA system) and add it straight to the mosaic, with resolution and color mode selection. No third-party scanning software needed. Tested and working on a HP ENVY 4520; other scanner models may run into errors, since WIA driver behavior varies significantly between manufacturers.
  • Renumber pages — three modes: simple sequential renumbering (01, 02, 03…), smart renumbering that detects double-page spreads by their aspect ratio and generates compound names (01-02, 03, 04-05…), or OFF to keep original filenames untouched. The active mode is shown in a clickable status bar indicator and is remembered between sessions.
  • ZIP compression — a configurable default compression level (0-9, defaulting to no compression) is applied whenever a CBZ is saved, since comic images are already compressed by their own format and ZIP compression on top brings no real space savings while slowing down saving and reading. A status bar indicator shows the compression state of the currently open file and offers to resave it at the default level when relevant.
  • Image viewer — double-click any page to open a full viewer, used both for reading and for editing: navigate with arrow keys or mouse wheel, zoom with Ctrl+scroll, pan with right-click drag, toggle fullscreen with F11 or double-click. Four reading modes: single page, double-page spread, continuous scroll, and webtoon (for tall vertical images). Animated GIFs are played back with a Play/Pause button. Every editing tool below (crop, straighten, rotate/flip, clone zone, blur stamp, text, shapes, paste an image, macros, and all image adjustments) lives directly in the viewer's own toolbar. A bookmark is automatically saved when closing the viewer (except on the first and last page) — a red ribbon icon appears on the corresponding thumbnail in the mosaic. On the next opening, a prompt offers to resume reading from that page.
  • Sort pages — sort all pages by name, file type, file size, width, height, resolution, or DPI
  • Rotate / flip — rotate pages 90° left or right, or flip them horizontally or vertically, from the mosaic (icon column, menu, or right-click on a selection) or directly from the image viewer's toolbar for the page currently being read
  • Manual crop — crop any page by drawing a selection directly on the image. A crop mask mode (right-click the toolbar icon to switch) lets you memorize a crop rectangle and reapply it as-is on other pages, handy for cropping the same area across many pages without redrawing it every time.
  • Straighten — correct a slightly tilted scan, manually or automatically (right-click the toolbar icon to switch mode). Manual mode: draw a reference line on what should be horizontal or vertical; the exact correction angle is calculated automatically and applied to the image, with draggable endpoints for fine-tuning. Automatic mode: detects the skew angle on its own (via OpenCV's Hough line transform) and straightens the image immediately, no line to draw — works on a multi-image selection at once, with a final summary of successes and failures (an image is left untouched if no reliable skew could be detected).
  • Clone Zone — paint over unwanted elements (logos, watermarks, stray marks) by cloning a nearby area of the image. Ctrl+click sets the source; left-click paints. Two modes: Fixed (each stroke restarts from the same source point) and Relative (the source advances with the brush). Adjustable brush size from 1 to 200 px.
  • Blur stamp — paint over any part of a page to permanently blur it, with independent controls for the brush's size and its strength (how strong the blur itself is), meant chiefly for reliably hiding text or other content beyond recognition. Each stroke commits immediately; passing over the same spot again stacks more blur on top rather than resetting it.
  • Text insertion — add rich-text overlays directly onto a page. Multiple independent text blocks can be placed simultaneously by clicking on the image. Each block supports per-selection bold, italic, and underline formatting, a freely chosen font family and size, and a custom color with alpha channel. Blocks can be moved pixel-by-pixel with Ctrl+arrow keys or dragged freely. Applying flattens all blocks onto the image at once.
  • Draw shapes — add ellipses, rectangles, rounded rectangles, lines, and arrows directly onto a page by dragging with the mouse. Choose the outline thickness and a single color for both the outline and an optional fill, with an eyedropper to pick a color straight from the page. Shapes can be resized from their corner/edge handles, dragged to a new position, rotated from a dedicated handle, or nudged with the arrow keys; several shapes can be drawn before applying them all at once.
  • Paste an image — paste an image from the system clipboard (a screenshot, or a single file copied from Windows Explorer) directly onto the page being viewed, or simply drag a page from either panel's mosaic — or an image file straight from Windows Explorer — onto the viewer. The pasted image can be moved, resized (corner handles keep its proportions, edge handles resize freely), and freely rotated, the same way as shapes above; several images can be pasted before applying them all at once. Ctrl+C/Ctrl+V also work directly in the viewer for copying and pasting a page.
  • Macros — record a sequence of actions performed on a page (crop, levels, clone stamp, color adjustments, and any other viewer tool) and replay it identically on one or several other pages, like a small batch job. Recording happens in the viewer; playback is available from the viewer (current page) or, for a whole selection at once, from the mosaic. A page a recorded step doesn't apply to (a crop rectangle too large, an incompatible format...) simply fails on its own, without stopping the rest of the run — a final report lists what succeeded, partially succeeded, or failed, and why.
  • Split — cut a page into N equal parts, horizontally or vertically
  • Join — combine multiple selected pages into a single image by positioning them freely, with a live preview
  • Animated GIF export — generate an animated GIF from the pages of an archive
  • ICO export — create an icon file from a page
  • NFO file editor — create .nfo files directly inside an archive from the toolbar, the File menu, or the right-click context menu. The non-modal dialog lets you enter a filename and write free-form text content; the file is injected into the mosaic immediately. Double-clicking an existing .nfo file in the mosaic opens it in the same integrated editor for editing. Both creation and editing are recorded in the undo/redo history.
  • Flatten subdirectories — some archives store pages in a subfolder structure; this flattens everything to the root level in one click, with automatic conflict resolution if two files share the same name
  • Undo / Redo — every operation is reversible
  • Corrupted page detection — unreadable or damaged pages are flagged visually in the mosaic
  • Duplicate page detection — pages with strictly identical content (a common side effect of scanning or merging errors) are flagged with a badge in the mosaic. "Manage duplicates" (menu bar, right-click on the mosaic, or right-click on a thumbnail) opens a window listing every group of identical pages with a thumbnail and a checkbox per page, letting you review and delete the extras in one go.
  • Fullscreen mode — toggle fullscreen at any time from the toolbar or with F11
  • ComicInfo.xml editor — create or edit the ComicInfo.xml metadata file embedded in an archive directly from MosaicView. See the Metadata section below.
  • Automatic update check — on startup, MosaicView silently checks GitHub Releases in the background; if a newer version is available, a banner appears in the window and the menu is updated. No notification if already up to date or if there is no network. A manual check is also available from the menu.


Batch conversions

Batch conversions can be launched from the toolbar, the menu bar, the right-click context menu, or by dropping a folder directly onto the window. All batch operations scan the folder recursively and show a confirmation dialog before starting, with a progress bar and a summary at the end.

  • CBR → CBZ — converts all CBR files in a folder to CBZ. Misnamed CBR files that are actually ZIP, 7z, or TAR archives are automatically renamed to the correct extension (.cbz, .cb7, .cbt).
  • CB7 → CBZ — converts all CB7 files in a folder to CBZ. Misnamed CB7 files that are actually ZIP, RAR, or TAR archives are automatically renamed to the correct extension (.cbz, .cbr, .cbt).
  • CBT → CBZ — converts all CBT files in a folder to CBZ. Misnamed CBT files that are actually ZIP, RAR, or 7z archives are automatically renamed to the correct extension (.cbz, .cbr, .cb7).
  • PDF → CBZ — converts all PDF files in a folder to CBZ, extracting each page as an image
  • Images → CBZ — packages loose image files into CBZ archives, with two modes: one CBZ per image, or all images grouped into a single CBZ
  • Metadata import — automatically retrieves metadata (title, series, authors…) from ComicVine for all compatible files in a folder. A wizard opens successively for each file. See the Metadata section below.
  • Create library — indexes all compatible files in a folder into a new MosaicView library (*.mvdb). See the Library section below.
  • Recompress CBZ at default level — scans a folder for CBZ/CBR/CB7/CBT files, detects the real format of each by magic bytes (catching files saved with the wrong extension in either direction), renames mis-named CBZ files to the correct extension, and recompresses every CBZ not already at the configured default ZIP compression level. See the ZIP compression entry above.

When renamed files or errors occur, a log file is created and a link to it is shown in the summary dialog.

Batch conversions


Metadata

MosaicView can automatically retrieve metadata (title, series, issue number, authors, publisher, summary…) from ComicVine, a community-maintained comics database.

A free ComicVine API key is required. The application will guide you through obtaining one. The key is never stored in plain text, it is encrypted using Windows DPAPI and can only be read by the same Windows user account.

This feature is entirely based on the open source project cbanack/comic-vine-scraper.

  • Single file — open a file, then use the toolbar button or the Metadata menu. A two-step wizard lets you pick the series, then the matching issue. Metadata is written as a ComicInfo.xml file inside the archive.
  • Batch mode — drop one or more folders onto the mosaic and choose "Metadata import", or use the dedicated toolbar button. The wizard opens for each compatible file (CBZ, CBR, CB7, CBT, PDF) found in the folder and its subfolders. Non-CBZ files are automatically converted to CBZ after writing.
  • Source traceability — every metadata import records the source page URL in the Web field and adds a dated line ("MosaicView: metadata retrieved on...") to the Notes field, both fully editable like any other field. A newer import updates that line in place rather than stacking up.

Library

The library lets you catalogue and search your entire digital comics collection. It works by reading the metadata already present in each file (title, series, authors, publisher…) and gathering it into a single library file (*.mvdb).

  • Create — use the Library menu → New database, or drop one or more folders onto the mosaic and choose "Create a library from the folder(s)". MosaicView scans the folders and indexes all compatible files automatically.
  • Search — filter by series, author, year, publisher, and more, combining as many criteria as needed (AND/OR).
  • Open — double-click any entry to open the file directly in MosaicView. An "Open in MosaicView" button is also available in the preview panel. The right-click menu also offers "Open with default application" to launch the file with whatever program Windows has associated with it.
  • Drag and drop into the mosaic — selected entries can be dragged straight from the library table onto a panel: a single file opens it, multiple files merge them, exactly like dropping files from Windows Explorer.
  • Edit metadata — comics that already have a ComicInfo.xml can be edited directly from the library without opening the file first.
  • Export — the "Export results" button saves the current table to an Excel file (*.xlsx).

Windows integration

MosaicView only ever runs as a single instance. If you double-click a comic file or a MosaicView library while the app is already open, it won't launch a second window. The file simply opens in the instance that's already running, which is brought to the front.

MosaicView also registers itself with Windows so it shows up in the "Open with" list for comic archives and images, under the name "MosaicView". This just makes it available as a choice ; setting it as the default application for a file type is still done the usual Windows way (right-click a file → "Open with" → "Choose another app" → check "Always use this app").


Requirements

Only needed when running from source — the pre-built executables (see Download) already include UnRAR and 7-Zip.

  • Python 3.11+
  • Dependencies (install with pip install -r requirements.txt):
PySide6, Pillow, numpy, opencv-python, rarfile, PyMuPDF, packaging, openpyxl, pywin32, send2trash, defusedxml
  • UnRAR (for CBR support): place UnRAR.exe in the unrar/ folder → Download from rarlab.com

  • 7-Zip (for CB7 support): place 7z.exe and 7z.dll in the 7zip/ folder → Download from 7-zip.org

  • Development-only dependency (install with pip install -r requirements-dev.txt): pytest, used to run the test suite (see Tests below). Not required to run the application itself, and never bundled into the compiled executables.


Download

Pre-built executables for Windows are available on the Releases page. Each release provides two versions:

  • ONE DIR — starts faster, distributed as a ZIP archive containing a folder
  • ONE FILE — single .exe file, no need to unzip, more compact, slower startup

Installation

git clone https://github.com/Bruno-Aublet/MosaicView.git
cd MosaicView
pip install -r requirements.txt
python MosaicView.py

Two PyInstaller spec files are included for building a standalone executable (see the ONE DIR / ONE FILE difference above): build with pyinstaller MosaicView_ONE_DIR.spec or pyinstaller MosaicView_ONE_FILE.spec.


Tests

The tests/ folder contains a pytest suite covering the pure, Qt-free logic modules (metadata parsing, page renumbering, sorting, image merging, the library database, configuration persistence...), plus static checks enforcing two hard architectural requirements (see CLAUDE.md): no window in the application is ever modal, and no PDF loading process is ever shared between the two panels or between a panel and a batch task.

Run the full suite with:

pip install -r requirements-dev.txt
python -m pytest tests

Or open run_tests.py in VSCode and click ▶️ Run.


Developer documentation (Claude Code skills)

This repository ships its own living documentation: 87 Claude Code skills in .claude/skills/, plus the project instructions in CLAUDE.md. Each skill is a per-feature development guide: where the feature's code lives, what it does, when it runs, how to modify it without breaking the project's mandatory patterns (non-modal dialogs everywhere, live language switching, theming, undo/redo...), and the pitfalls already encountered and solved. CLAUDE.md is the index that ties the skills together and states the non-negotiable architecture and UI rules. Skill content only loads on demand, so this count doesn't add context overhead to a session — only each skill's short description is kept in context until it's actually invoked.

If you clone or fork this project and open it with Claude Code, all of this is picked up automatically. Without Claude, the skills are still worth reading as plain architecture documentation, organized by feature.

⚠️ This documentation is written in French. Claude Code exploits it regardless of the language you use to interact with it; human readers can run it through any machine translator.


License

MosaicView is released under the GNU General Public License v3.0. See LICENSE for details.


Third-party components

Component Use License
UnRAR (RARlab) CBR/RAR extraction Freeware, non-commercial use
7-Zip (Igor Pavlov) CB7 extraction GNU LGPL

License files are included in the unrar/ and 7zip/ folders. All third-party licenses are also available directly within the application.


Contact

Bruno Aublet — GitHub — Contact

About

MosaicView - Desktop manager for digital comics, with a mosaic grid view for fast page-level editing (reorder, crop, rotate, convert...). Supports CBZ, CBR, CB7, CBT, PDF, and EPUB. Built-in support for fictional-language readers (Klingon, Sindarin, Quenya). Releases can be found here : https://github.com/Bruno-Aublet/MosaicView/releases

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages