A cross-platform .NET 10 console tool that packages image folders into CBZ archives. Supports single-folder, batch, and structure-mirroring modes with an interactive wizard for no-argument usage.
- Single mode — converts one image folder into a
.cbzfile - Batch mode — converts every subfolder of a directory into its own
.cbzfile - Mirror mode — batch converts recursively and mirrors the full folder structure in the output
- Interactive wizard — run with no arguments to get a guided step-by-step menu
- Page renaming — optionally rename archive entries to
page_01.jpg,page_02.jpg, … - Prepend string — prefix every output filename (e.g.
Vol.1 Chapter 01.cbz) - Compression control — choose
NoCompression(default),Fastest,Optimal, orSmallestSize - Overwrite control — existing CBZ files are skipped by default; pass
--overwriteto replace them - Log file — writes a timestamped
.logfile alongside the output after each run (opt-out with--no-log) - Colored output with progress bars and spinners powered by Spectre.Console
.jpg .jpeg .png .gif .webp .bmp .tiff .tif .avif
- .NET 10 Runtime (or SDK if building from source)
Download the latest release for your platform from the Releases page, or build from source (see below).
Running the executable with no arguments launches an interactive wizard:
ImageSetToCBZ
The wizard walks you through all options and returns to the main menu after each conversion completes.
ImageSetToCBZ <input> [options]
| Argument / Option | Description |
|---|---|
<input> |
Path to the directory containing images (or subdirectories in batch mode) |
-b, --batch |
Process all subdirectories of <input> as individual CBZ files |
-m, --mirror |
Recursively process all nested subdirectories and mirror the folder structure in --output. Requires --batch and --output |
-p, --prepend <value> |
String to prepend to each output CBZ filename (e.g. "Vol.1") |
-o, --output <path> |
Directory to write CBZ files to. Defaults to placing each CBZ next to its source folder |
-c, --compression <level> |
NoCompression (default), Fastest, Optimal, SmallestSize |
--no-log |
Skip creating a log file of the conversion results |
-r, --rename-pages |
Rename images inside the CBZ to page_01, page_02, … (off by default) |
--overwrite |
Overwrite existing CBZ files (off by default — existing files are skipped) |
Convert a single folder:
ImageSetToCBZ "path/to/images"
Batch convert all subfolders:
ImageSetToCBZ "path/to/comics" --batch
Batch convert with a prepended volume label:
ImageSetToCBZ "path/to/comics" --batch --prepend "Vol.1"
Batch convert to a specific output directory:
ImageSetToCBZ "path/to/comics" --batch --output "path/to/output"
Mirror a nested folder structure into an output directory:
ImageSetToCBZ "path/to/comics" --batch --mirror --output "path/to/output"
Convert and rename pages inside each CBZ:
ImageSetToCBZ "path/to/images" --rename-pages
Re-run and overwrite previously created CBZ files:
ImageSetToCBZ "path/to/comics" --batch --overwrite
By default, a log file is written to the output directory after each run:
ImageSetToCBZ_20250101_120000.log
It contains a per-file result (OK, SKIP, FAIL) and a summary of how many files were created, skipped, and failed. Pass --no-log to suppress it.
git clone https://github.com/CrazyOldWizard/ImageSetToCBZ.git
cd ImageSetToCBZ
dotnet build
To publish a self-contained executable for your platform:
dotnet publish -c Release -r win-x64 --self-contained
dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r osx-x64 --self-contained
- Spectre.Console.Cli 0.55.0
