Skip to main content

$ epy

Downloads

Buy Me a Coffee at ko-fi.com

screenshot

CLI Ebook Reader.

This is just a fork of epr with these extra features:

  • Supported formats:
    • Epub (.epub, .epub3)
    • FictionBook (.fb2)
    • Mobi (.mobi)
    • AZW3 (.azw, .azw3)
    • URL
  • Reading progress percentage
  • Bookmarks
  • External dictionary integration (sdcv, dict or wkdict)
  • Inline formats: bold and italic (depend on terminal and font capability. Italic only supported in python>=3.7)
  • Text-to-Speech (with additional setup, read below)
  • Double Spread
  • Seamless (disabled by default, read below)

Installation

  • Via PyPI (Linux and Mac OS)

    pip3 install epy-reader
    
  • Via Pip+Git

    pip3 install git+https://github.com/wustho/epy
    
  • Via AUR

    yay -S epy-ereader-git
    
  • Windows Binary

    Standalone binary for Windows is available at release page.

Usage

  • epy /path/to/your/book/book.epub (Remember to make sure your book's title doesn't contain any spaces)
  • c Switching the color profile
  • Shift + h Previous chapter
  • Shift + l Next chapter
  • Shift + g Skip to the end of the chapter
  • g Skip to the beginning of the chapter
  • Shift + m Show metadata of the book
  • t Table of contents
  • / Search
  • b Add bookmark
  • Shift + b Show bookmarks
  • q Quit
  • - Shrink the text
  • + Enlarge the text
  • o Open an image
  • s Show or hide progress

Color profiles

In the config file you will see the following section.

 "DarkColorFG": 47,
 "DarkColorBG": 235,
 "LightColorFG": 238,
 "LightColorBG": 253,

Change the values by using this image. (Make sure to ignore zeros at the beginning, it won't launch otherwise.) image

Reading Tips Using Epy

When reading using epy you might occasionally find triple asteriks ***. That means you reach the end of some section in your ebook and the next line (right after those three asteriks, which is in new section) will start at the top of the page. This might be disorienting, so the best way to get seamless reading experience is by using next-page control (space, l or Right) instead of next-line control (j or Down).

If you really want to get seamless reading experience, you can set SeamlessBetweenChapters to true in configuration file. But it has its drawback with more memory usage, that's why it's disabled by default.

Configuration File

Config file is available in json format which is located at:

  • Linux and Mac OS: ~/.config/epy/configuration.json or ~/.epy/configuration.json
  • Windows: %USERPROFILE%\.epy\configuration.json

URL Support

You can read online books like: short stories, fan fiction, etc. using epy with an url as cli argument. Pretty useful when you want to read with less distraction. epy will also remember your reading progress online.

eg. You can read Moby Dick from gutenberg directly with:

$ epy https://www.gutenberg.org/files/2701/2701-h/2701-h.htm

But note that epy will never be a web browser, it's simply a TUI program to read your favorite fiction stories in the comfort of a terminal. So please do not expect for web browser features to be implemented in epy.

Using Mouse

Although mouse support is useful when running epy on Termux Android, it’s disabled by default since most people find it intrusive when using epy in desktop. But you can enable it by setting MouseSupport to true in config file.

Key Action
Left Click (right side of screen) next page
Left Click (left side of screen) prev page
Right Click ToC
Scroll Up scroll up
Scroll Down scroll down
Ctrl + Scroll Up increase text width
Ctrl + Scroll Down decrease text width

Text-to-Speech

To get Text-to-Speech (TTS) support, external TTS engine is necessary.

List of supported engines:

  • mimic
  • pico2wave
  • gtts-mpv (requires both gTTS and MPV)

Dictionary

To use "Define Word" you will have to install an external dictionary cli program (sdcv, dict or wkdict). After you've done that, it is recommended to manually modify the configuration.json file, and set your desired dictionary there, so everything works properly.

After that you will be able to find definition of word by pressing d, and aprompt will appear to let you type in word to define.

Double Spread

Double spread is intended to mimic the behaviour of real book, so line scrolling navigation will act as scrolling page and textwidth is not adjustable.

Changelog

  • v2021.10.23: Major refactoring which harness a lot of new stuff in python>=3.7 and epy won't be backward compatible with older python version and older configuration.

  • v2022.1.8: Change in configuration and reading states schema that is not backward compatible. So if error is encountered, deleting the configuration and states file might fix the issue.

  • v2022.1.15: Early implementation of URL support, table of contents isn't available for now.

  • v2022.1.23: Library implementation: ability to switch ebook from reading history inside epy (default key: R).

  • v2022.2.5: Fix process.join() issue for unstarted process.

  • v2022.10.2: Major breakdown epy.py module into package structure for easier development.

Metadata

Release files for epy-reader 2023.6.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for epy-reader 2023.6.11
File Size Uploaded
epy_reader-2023.6.11.tar.gz 126.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for epy-reader 2023.6.11
File Interpreter ABI Platform
epy_reader-2023.6.11-py3-none-any.whl Python 3 none any Details

Total release size: 269.5 kB

Release files / epy_reader-2023.6.11.tar.gz

Download URL epy_reader-2023.6.11.tar.gz
Size 126.9 kB
Tags Source
SHA-256 checksum
How to use checksums
81e979d377bc0d78eb3092bd969019e86c50b2b6a1297f928e2c91c0a6e22546
BLAKE2b-256 checksum
How to use checksums
94dd7fd8a9fd26714d53471b67234e74e37ffea13eeea791a1e9d655acbf17f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.8.10 Linux/5.19.0-43-generic

Release files / epy_reader-2023.6.11-py3-none-any.whl

Download URL epy_reader-2023.6.11-py3-none-any.whl
Size 142.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72ce1c01152fd6d63343eec7934efba6a79abc73e9b75c4af3cdccc60a80064e
BLAKE2b-256 checksum
How to use checksums
62c77b6a90308529a0f05ecbc069f2b550ca318af5e0af32cefce1130ecb716e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.8.10 Linux/5.19.0-43-generic
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page