tbook
An EPUB reader that lives in the terminal: cover, illustrations as ANSI blocks, and reading resumed at the exact paragraph you left.
- 2026
- terminal tool
- published — first release
- Go · TUI · ANSI 24-bit · EPUB
the problem
Reading in the terminal is usually a second-class experience: existing readers treat the EPUB as plain text and throw away what makes a book visual — cover, illustrations, typography. Desktop readers solve that at the cost of one more window and an app that wants your attention.
What was missing was simple: open a book in the shell and continue where I stopped, without leaving the terminal and without losing what the file carries inside.
the approach
tbook is a single Go binary: `tbook book.epub` opens the book, the cover comes on the first page, and the EPUB's images are drawn as 24-bit ANSI art, with an automatic fallback to 256 colours when the terminal can't keep up.
Reading is entirely keyboard-driven — arrows change chapters, `/` searches a passage, `n`/`N` jump between matches, `b` marks the spot, `t` switches between the dark, light and sepia themes. The column is adjustable from 40 to 120 characters (76 by default), because reading width is a preference, not a factory setting.
The detail that defined the project was memory: on exit, tbook saves position, bookmarks and reading time per book, and `tbook stats` shows the history. `tbook library` browses the shelf with cover and progress beside it, and `tbook search`/`tbook download` pull Project Gutenberg classics straight into the library — no browser involved.
where it stands
First release published on GitHub (Sep/2026), with cover and illustrations, search, bookmarks, three themes, reading statistics and the Project Gutenberg integration. It's what I use to read in the terminal.