bookworm is a fast TUI library management system, like Calibre. It is designed to handle importing, navigating, and manipulating the metadata of millions of ebooks efficiently and reliably.
- High performance reading of ebook metadata
- bookworm can read ~8000 books per second, whereas Calibre, on the same system, with the same books, takes multiple minutes
- Command based interface, usable from both TUI and CLI
- SQLite backend
- Modifications are synchronized to the SQLite backend at the path specified via --database
- Instant startup
- bookworm only reads books into memory when they're needed, allowing a database with millions of books to be opened instantly
Binary downloads are available at https://github.com/philippeitis/bookworm/releases
To use copy and paste functionality on Linux, the following dependencies must be installed:
sudo apt-get install xorg-dev libxcb1-dev libxcb-shape0-dev libxcb-xfixes0-dev
On Windows, MacOS
git clone https://github.com/philippeitis/bookworm.git
cd bookworm
cargo install --path bookworm-tui --features copypaste
On Linux distros, additional dependencies are required for copy-paste support:
git clone https://github.com/philippeitis/bookworm.git
cd bookworm
sudo apt-get install xorg-dev libxcb1-dev libxcb-shape0-dev libxcb-xfixes0-dev
cargo install --path bookworm-tui --features copypaste
The minimum supported Rust version is current stable.
Note that not all terminals are fully supported - Ubuntu's default terminal works correctly. Windows Terminal does not currently support mouse scrolling.
- Adding single books and books from directories
- Command based interaction
- Hotkey navigation and interaction
- Selecting books and editing their metadata using F2, or deleting them using Del
- Specifying settings (selection colours, default columns, default sort settings) via TOML file
- Copying and pasting supported fields, on supported platforms via CTRL+C, CTRL+V
Arguments which take [id]?
will modify the selected items if no id is provided.
All commands which don't make use of UI interaction can be used from the command line, using bookworm [args] (-- [command])*
Command | Description |
---|---|
:q |
Quit |
:w |
Write |
:wq |
Write and then quit |
:h (command)? |
View help information (for a particular command) |
:o (-f)? [id]? |
Open a book in default app / file manager with given id |
:c (-?[column])+ |
Add/Remove columns |
:s ([column] -d?)* |
Sort by column, ascending (default) or descending |
:a -r? ((-d / -p / -g)? path+ -r?)+ |
Add a single book, multiple books, or books matching a glob |
:e [id]? ((-a / -r / -d)? [column] [new_value])+ |
Edit the book |
:m -a |
Merge all books with matching metadata |
:d |
Delete selected book |
:d -a |
Delete all books |
:d ((-r /-e / -x)? [column] [search_str])+ |
Delete books matching predicates |
:j ((-r / -e / -x)? [column] [search_str])+ |
Jumping to a book matching the regex / exact substring / exact string / default |
:f ((-r / -e / -x)? [column] [search_str])+ |
Finding books matching the regex / exact substring / exact string / default |
Keybinding | Description |
---|---|
CTRL + Q |
Quit |
CTRL + S |
Save all changes |
PAGE UP |
Go up one page of books |
PAGE DOWN |
Go down one page of books |
HOME |
First book in collection |
END |
Last book in collection |
UP |
Go up one book |
DOWN |
Go down one book |
SCROLL UP |
Go up n books |
SCROLL DOWN |
Go down n books |
- Cloud synchronization (eg. back up database and all books to Google Drive)
- Support for supplementary files (eg. more than one cover for a book)
- Reflecting external libraries as if they are native (eg. access Project Gutenberg directly)