A fast, feature-rich, and highly customizable Terminal User Interface (TUI) E-book reader built with Rust.
TermTome brings the joy of reading directly to your terminal. Whether you're a developer who never wants to leave their command line or someone who appreciates minimalistic, distraction-free environments, TermTome provides a robust reading experience with advanced features like in-book searching, progress tracking, and custom themes.
TermTome is packed with everything you need for a comfortable reading experience in the terminal:
- Broad Format Support: Seamlessly parse and read EPUB files.
- Reading Preferences: Toggle between Light and Dark modes or create your own custom color schemes.
- Adjustable Display: Dynamically adjust reading layouts, text sizing simulation, and window splitting.
- Progress Tracking: Real-time stats on your chapter progress, time spent reading, and estimated reading speed (WPM).
- In-Chapter Search: Quickly find text using the
/command, complete with result highlighting andn/Nnavigation. - Table of Contents: Native TOC view to instantly jump between sections and chapters.
- Smart Bookmarks: Remembers your last read position, time spent, and preferred settings per book.
- Organize Your Collection: Support for categories, tags, and rich book metadata (Author, Title, Date, Description).
- Library Filtering: Sort your books by name, date, or progress, and quickly filter your library.
- Full Library Control: Import new books, delete old ones, and manage your collection directly from the TUI.
- Keyboard-First Design: Vim-like keybindings for fast and intuitive navigation.
- Mouse Support: Built-in terminal mouse support for scrolling and clicking.
- Responsive UI: Automatically handles terminal resizing and reflows text beautifully.
To build and run TermTome, you will need:
- Rust (1.70 or newer recommended)
- Cargo (comes with Rust)
-
Clone the repository:
git clone https://github.com/xenycx/termtome.git cd termtome -
Build the project:
cargo build --release
-
Install globally (Optional):
cargo install --path .This allows you to run
termtomefrom anywhere on your system.
Run the application directly using Cargo:
cargo runOr, if installed globally, simply type the executable name in your terminal. You can pass the path to an EPUB file directly:
termtome path/to/your/book.epubTermTome is designed to be fully navigable via keyboard. (Press ? inside the app to view the help menu anytime).
| Key | Action |
|---|---|
j / Down |
Scroll Down |
k / Up |
Scroll Up |
h / Left |
Previous Chapter / Go Back |
l / Right |
Next Chapter / Go Forward |
/ |
Start Search |
n / N |
Next/Previous Search Result |
Tab |
Switch between Library and Reading view |
q / Esc |
Quit Application |
(Note: Mouse scrolling and clicking are also supported if your terminal emulator allows it.)
Press : at any time to open the command palette at the bottom of the screen.
| Command | Description |
|---|---|
:import <path> |
Import an EPUB or TXT file into your library |
:create <name> |
Create a new library category (folder) |
:delete [book] |
Delete the selected book, or a specific book by name |
:move <bk> <cat> |
Move a book to a different category |
:dl or :downloader |
Open the online downloader pane |
:theme [light|dark] |
Toggle the current theme or set it explicitly |
:quit or :q |
Exit the application |
By default, TermTome stores your imported books, reading progress, and configuration files in your system's standard user data directory.
- Linux:
~/.local/share/termtome/ - macOS:
~/Library/Application Support/termtome/ - Windows:
C:\Users\{User}\AppData\Roaming\termtome\
Contributions, issues, and feature requests are welcome! Feel free to check issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
