Terminal EPUB/PDF reader focused on speed, smooth navigation, and Vim-style workflows.
demo_combined.mp4
- EPUB and PDF support in one TUI app
- Split layout: library/TOC on the left, reader on the right
- Fast PDF pipeline with Kitty SHM image transfer in supported terminals
- Search, bookmarks, jump list history, reading stats
- Inline comments/annotations with persistent storage and Markdown export
- Image rendering, link handling, and external viewer handoff
- Theme selection, adjustable margins, zen mode
- Vim-style keybindings and normal mode
brew install bookokratInstall from the AUR:
yay -S bookokrat-bin
# or
paru -S bookokrat-binnix run github:bugzmanov/bookokrat
# or install into profile
nix profile install github:bugzmanov/bookokratDownload from GitHub Releases.
Build from source. Requires Rust and a C compiler/linker.
Prerequisites (click to expand)
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install build-essential
# For PDF support:
sudo apt install pkg-config libfontconfig1-dev clang libclang-devLinux (Fedora/RHEL):
sudo dnf install gcc makemacOS:
xcode-select --installWindows: Install Visual Studio Build Tools with the "Desktop development with C++" workload.
cargo install bookokratBuild without PDF support:
cargo install bookokrat --no-default-featuresbookokratOptional direct open:
bookokrat path/to/book.epub
bookokrat path/to/book.pdf
bookokrat path/to/book.epub --zen-modePress ? inside the app to open the built-in help.
- Full usage and keyboard reference:
readme.txt
PDF viewing requires a graphics-capable terminal.
- Best experience: Kitty, Ghostty
- Good: iTerm2, WezTerm, Warp, Konsole (with some limitations)
- Terminals without graphics protocol support - EPUB support without images. PDFs are not supported
For protocol details and troubleshooting, see the in-app help (?) and readme.txt.
Bookokrat stores state in XDG-compliant locations and keeps project directories clean.
| Data | Location |
|---|---|
| Bookmarks | <data_dir>/bookokrat/libraries/<library>/bookmarks.json |
| Comments | <data_dir>/bookokrat/libraries/<library>/comments/ |
| Image cache | <cache_dir>/bookokrat/libraries/<library>/temp_images/ |
| Log file | <state_dir>/bookokrat/bookokrat.log |
| Settings | ~/.bookokrat_settings.yaml |
Typical <data_dir> paths:
- macOS:
~/Library/Application Support - Linux:
~/.local/share
tui-textarea is vendored in vendor/tui-textarea because upstream is currently unmaintained and behind current ratatui compatibility. The vendored base comes from PR #118:
https://github.com/rhysd/tui-textarea/pull/118/changes
Bookokrat is based on bookrat by Dmitry Sobolev (MIT).
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
See LICENSE.