CALIBRE-DEBUG(1)

πŸ’– NAME πŸ’–

calibre-debug β€” bestie, it's literally the calibre-debug command, and it's giving "swiss army knife but make it terminal" πŸ”₯

calibre-debug [options]

Okay so picture this: it's a whole grab-bag of command line interfaces that are chef's kiss for debugging calibre. No options at all? Then this command just starts an embedded Python interpreter, no big deal, very demure. But you can also run the main calibre GUI, the calibre E-book viewer, and the calibre editor in debug mode. Iconic behaviour, honestly. ✨

It also has interfaces into all the little bits of calibre that never got their own dedicated command line tools β€” font subsetting, the E-book diff tool, that whole crew. They live here. 🫢

You can also use calibre-debug to run standalone scripts, and the way you do that is:

calibre-debug -e myscript.py -- --option1 --option2 file1 file2 ...

Everything after the -- gets passed straight to the script, no gatekeeping. You can even use calibre-debug as a shebang in your scripts, like this:

#!/usr/bin/env -S calibre-debug -e -- --
Heads up bestie πŸ’… whenever you pass arguments to calibre-debug that have spaces in them, wrap them in quotation marks. Like: "/some path/with spaces" β€” do not skip this, she will not understand you otherwise.

✨ OPTIONS ✨

  • --add-simple-plugin β€” Add a simple plugin β€” and by "simple" we mean a plugin that's literally just a .py file, nothing more β€” by specifying the path to the py file containing the plugin code. So easy, so slay. πŸŽ€
  • --command, -c β€” Run Python code. Just... run it. ✨
  • --debug-device-driver, -d β€” Debug device detection πŸ”
  • --default-programs β€” (Un)register calibre from Windows Default Programs.
--default-programs = (register|unregister)
  • --diff β€” Run the calibre diff tool. For example:
calibre-debug --diff file1 file2
  • --edit-book β€” Launch the calibre "Edit book" tool in debug mode. And just like with -g, use -- to pass command line arguments. πŸ¦‹
  • --exec-file, -e β€” Run the Python code in file.
  • --explode-book, -x β€” Explode the book into the specified folder. Usage:
-x file.epub output_dir

This exports the book as a collection of HTML files and metadata, which you can edit using standard HTML editing tools. Works with EPUB, AZW3, HTMLZ and DOCX files. Deconstruct era fr fr πŸ’…

  • --export-all-calibre-data β€” Export all calibre data (books/settings/plugins). Normally, you will be asked for the export folder and the libraries to export. You can also specify them as command line arguments to skip the questions β€” but use absolute paths for the export folder and libraries, no shortcuts. The special keyword "all" can be used to export all libraries. Examples:
calibre-debug --export-all-calibre-data   # for interactive use
calibre-debug --export-all-calibre-data /path/to/empty/export/folder /path/to/library/folder1 /path/to/library2
calibre-debug --export-all-calibre-data /export/folder all   # export all known libraries
  • --gui, -g β€” Run the GUI with debugging enabled. Debug output is printed to stdout and stderr. To pass command line arguments use -- followed by the arguments, for example:
calibre-debug -g -- /path/to/ebook
  • --gui-debug β€” Run the GUI with a debug console, logging to the specified path. For internal use only bestie β€” you want the -g option to run the GUI in debug mode. πŸ™ˆ
  • --help, -h β€” show this help message and exit
  • --implode-book, -i β€” Implode a previously exploded book. Usage:
-i output_dir file.epub

Imports the book from the files in output_dir, which must have been created by a previous call to --explode-book. And be sure to specify the same file type as was used when exploding, okay? Consistency is the vibe. πŸŽ€

  • --import-calibre-data β€” Import previously exported calibre data πŸ“₯
  • --inspect-mobi, -m β€” Inspect the MOBI file(s) at the specified path(s) πŸ‘‘
  • --kepubify β€” Convert the specified EPUB file to KEPUB without doing a full conversion. This is what the Kobo driver does when sending files to the device. Lowkey the exact same glow-up. ✨
  • --paths β€” Output the paths necessary to setup the calibre environment 🌈
  • --run-plugin, -r β€” Run a plugin that provides a command line interface. For example:
calibre-debug -r "Plugin name" -- file1 --option1

Everything after the -- will be passed to the plugin as arguments. Periodt. πŸ’…

  • --run-test, -t β€” Run the named test(s). Use the special value "all" to run all tests. If the test name starts with a period it is assumed to be a module name. If the test name starts with @ it is assumed to be a category name. 🧚
  • --run-without-debug β€” Don't run with the DEBUG flag set πŸ™…
  • --shutdown-running-calibre, -s β€” Cause a running calibre instance, if any, to be shutdown. > Note that if there are running jobs, they will be silently aborted, so use with care. Not me warning you dramatically but also meaning it 😭
  • --subset-font, -f β€” Subset the specified font. Use -- after this option to pass option to the font subsetting program.
  • --test-build β€” Test binary modules in build πŸ”₯
  • --un-kepubify β€” Convert the specified KEPUB file to EPUB without doing a full conversion. This is what the Kobo driver does when importing files from the device. The reverse glow-down, if you will. πŸ’œ
  • --version β€” show program's version number and exit
  • --viewer, -w β€” Run the E-book viewer in debug mode. And as with -g, use -- to pass command line arguments. πŸ¦‹

🌸 Author 🌸

Kovid Goyal

Kovid Goyal


okay that's the whole page, you're welcome πŸ’– this was version 9.14.0, dated August 28, 2026 β€” written by the one and only, main character energy, no cap. bye bestie, go debug something πŸŽ€βœ¨

πŸ“¦ where this page comes from