A terminal-based eBook reader with modular text-to-speech capabilities and multi-format support
Project description
Lue - Terminal eBook Reader with Text-to-Speech
Features • Quick Start • Installation • Usage • Development
✨ Features
| Feature | Description |
|---|---|
| 📖 Multi-Format Support | Support for EPUB, PDF, TXT, DOCX, DOC, HTML, RTF, and Markdown with seamless format detection |
| 👄 Modular TTS System | Edge TTS (default) and Kokoro TTS (local/offline) with extensible architecture for new models |
| 🌌 Rich Terminal UI | Clean, responsive interface with customizable color themes and full mouse & keyboard support |
| 💾 Smart Persistence | Automatic progress saving, state restoration, and cross-session continuity for seamless reading |
| 🌍 Cross-Platform & Multilingual | Full support for macOS, Linux, Windows with 100+ languages and consistent global experience |
| ⚡️ Fast Navigation | Intuitive shortcuts, flexible controls, and optional smooth scrolling for efficient book navigation |
| 🎛️ Speed Adjustment | Adjust text-to-speech playback speed from 1x to 3x for personalized listening experience |
🚀 Quick Start
Want to try Lue right away? Follow these simple steps:
# 1. Install FFmpeg (required for audio processing)
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows: Download from ffmpeg.org and add to PATH
# 2. Clone and setup
git clone https://github.com/superstarryeyes/lue.git
cd lue
pip install -r requirements.txt
# 3. Start reading!
python -m lue sample.txt
📝 Note: Quick start uses Edge TTS (requires internet). For offline capabilities, see full installation.
📦 Installation
Prerequisites
Core Requirements
- FFmpeg - Audio processing (required)
Optional Dependencies
- espeak - Kokoro TTS support
- antiword - .doc file support
macOS (Homebrew)
brew install ffmpeg
# Optional
brew install espeak antiword
Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# Optional
sudo apt install espeak antiword
Windows
Download FFmpeg from ffmpeg.org and add to PATH.
Install Lue
Standard Installation
# 1. Clone repository
git clone https://github.com/superstarryeyes/lue.git
cd lue
# 2. Install dependencies
pip install -r requirements.txt
# 3. Install Lue
pip install .
Enable Kokoro TTS (Optional)
For local/offline TTS capabilities:
# 1. Edit requirements.txt - uncomment Kokoro packages:
kokoro>=0.9.4
soundfile>=0.13.1
huggingface-hub>=0.34.4
# 2. Install PyTorch
# CPU version:
pip install torch torchvision torchaudio
# GPU version (CUDA):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 3. Install updated requirements
pip install -r requirements.txt
# 4. Install Lue
pip install .
💻 Usage
Basic Commands
# Start with default TTS
lue path/to/your/book.epub
# Launch without arguments to open the last book you were reading
lue
# Use specific TTS model
lue --tts kokoro path/to/your/book.epub
# Use a specific voice (full list at VOICES.md)
lue --voice "en-US-AriaNeural" path/to/your/book.epub
# Set the speech speed (e.g., 1.5x)
lue --speed 1.5 path/to/your/book.epub
# Specify a language code if needed
lue --lang a path/to/your/book.epub
# Seconds of overlap between sentences
lue --over 0.2 path/to/your/book.epub
# Enable PDF cleaning filter (removes page numbers, headers and footnotes)
lue --filter path/to/your/book.pdf
# View available options
lue --help
Keyboard Controls
| Key Binding | Action Description |
|---|---|
q |
Quit the application and save current reading progress automatically |
p |
Pause or resume the text-to-speech audio playback |
a |
Toggle auto-scroll mode to automatically advance during TTS playback |
t |
Select and highlight the top sentence of the current visible page |
h / l |
Move the reading line to the previous or next paragraph in the document |
j / k |
Move the reading line to the previous or next sentence in the document |
i / m |
Jump up or down by full pages for rapid navigation through longer documents |
u / n |
Scroll up or down by smaller increments for fine-grained position control |
y / b |
Jump directly to the beginning or end of the document for quick navigation |
, / . |
Decrease or increase text-to-speech playback speed (1x to 3x) |
Mouse Controls
- 🖱️ Click - Jump to sentence
- 🔄 Scroll - Navigate content
- 📍 Progress bar click - Jump to position
🧩 Development
Interested in extending Lue?
Check out the Developer Guide for instructions on adding new TTS models and contributing to the project.
Data Storage
Reading Progress:
- macOS:
~/Library/Application Support/lue/ - Linux:
~/.local/share/lue/ - Windows:
C:\Users\<User>\AppData\Local\lue\
Error Logs:
- macOS:
~/Library/Logs/lue/error.log - Linux:
~/.cache/lue/log/error.log - Windows:
C:\Users\<User>\AppData\Local\lue\Logs\error.log
📄 License
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
🛠️ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lue_reader-0.1.5-py3-none-any.whl.
File metadata
- Download URL: lue_reader-0.1.5-py3-none-any.whl
- Upload date:
- Size: 59.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fedfde34d52c041883a81d2b079abad23f251d2d41173e8b5dd40d5ac5367808
|
|
| MD5 |
d068024ad1fbfba091e4ed4a0cb5a2e4
|
|
| BLAKE2b-256 |
b59b683a3413cba2dac380d721ef7f2e70e88716e1d7d18a8da044fc1ffe0378
|