Skip to main content

⭐ star — Speaking Terminal Access Reader

CI PyPI Python License: GPL-3.0-or-later

star is an accessible, GUI-first document reader with built-in text-to-speech. It opens PDFs, Word/EPUB/PowerPoint, web pages, spreadsheets, and more, reads them aloud, and highlights each word as it is spoken — with no cloud account and no internet required.

star is built for students with print disabilities — people who work with dense, heavily formatted documents and need a reading tool that gets out of the way. The Qt GUI is the primary interface (it launches by default and is where development is focused), with a keyboard shortcut for every command; a full-featured, keyboard-driven curses terminal UI remains available with --tui for headless or text-only environments.

It draws design inspiration from Emacspeak, Kurzweil 1000, Natural Reader, and Central Access Reader.


🚀 Install

On any platform with Python 3.11+:

pipx install star-reader      # isolated app install (recommended)
# or
pip install star-reader       # into the current environment

Then run it:

star                 # launch the Qt GUI
star document.pdf    # open a file
star --tui           # force the terminal UI
star --deps          # show which optional features are installed

Add optional features with extras — pip install "star-reader[all]" for the full feature set (everything except the multi-GB Whisper/Torch dictation stack, which is [transcribe]), or groups like star-reader[translate,vocab]. Full instructions (wheel, single-file star.pyz, native engines, per-platform notes) are in the Installation guide.


✨ Highlights

  • Reads aloud with live word highlighting in both the Qt GUI and the terminal TUI — including in-process eSpeak-NG with true audio-position sync.
  • Many TTS engines: pyttsx3 (SAPI5 / NSSpeechSynthesizer), macOS say, eSpeak-NG, Festival, Piper (neural, offline, free), Coqui, and DECtalk.
  • Opens almost anything: PDF (incl. OCR), DOCX, PPTX, EPUB, HTML, Markdown, spreadsheets, DAISY/DTBook, and dozens more formats.
  • Study tools: notes & annotations, a citation manager, summarization, Anki flashcard export, document translation (15 languages, no API key), RSS/Atom feed reading, and a difficult-word overlay.
  • Knowledge graph: link annotations across documents with typed relations (CONFLICTS_WITH, SUPPORTS, CITES, …), extract concepts, view the graph interactively, and export to SVG/PlantUML/DOT/JSON.
  • Export: Markdown, HTML, EPUB, PDF (with highlights), BRF braille, TTS audio (WAV/MP3/OGG/MP4), karaoke video (MP4), Anki decks, and synchronized SRT/VTT subtitles.
  • Extensible: TTS engines, document formats, and export targets are discovered through importlib.metadata entry-points — installing a third-party plugin package adds backends, loaders, or exporters with no changes to star itself.
  • Accessibility-first: NVDA/JAWS/Orca/VoiceOver compatible, four colorblind-friendly themes + custom CSS themes, dyslexia-friendly font, bionic reading, adjustable spacing (WCAG 1.4.12), and high-DPI support.
  • Graceful degradation: every third-party dependency is optional and guarded, so the core runs on the Python standard library alone.

See the full feature reference for everything.


📚 Documentation

Guide What's in it
Installation PyPI / wheel / zipapp install, optional packages, native engines, platform notes
Usage Guide Running star, the quick command reference, full keyboard map, M-x commands, CLI options
Features The complete feature reference
Knowledge Graph Typed relations between annotations, concept extraction, graph view, and export
Configuration Every settings.json key
Architecture & Contributing Package layout, distribution artifacts, contributing, tests
Changelog Full record of changes
Build guide Building the cross-platform wheel (and the deprecated Windows star.exe)

➡️ Browse all docs in the docs/ directory.


📦 Distribution

The pure-Python wheel (pip install star-reader) is star's primary, stable distribution and the only artifact produced by automated releases; it works on macOS, Linux, and Windows alike. A single-file star.pyz zipapp and the self-contained Windows star.exe (deprecated) are build-it-yourself — they are no longer shipped with releases. See Installation and BUILD.md.


🤝 Contributing

Contributions are welcome — please open an issue before a PR for anything beyond small fixes. Keep every third-party dependency optional and guarded, target Python 3.11, and document new keybindings and M-x commands. See Architecture & Contributing for the full guidelines and how to run the test suite.


📜 License

star — Speaking Terminal Access Reader Copyright 2026 Jon Pielaet

Free software under the GNU General Public License version 3 or later. This program is distributed in the hope that it will be useful, but without any warranty. See the LICENSE file, or run M-x license in the app, for the full text.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

star_reader-0.1.18.tar.gz (396.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

star_reader-0.1.18-py3-none-any.whl (404.7 kB view details)

Uploaded Python 3

File details

Details for the file star_reader-0.1.18.tar.gz.

File metadata

  • Download URL: star_reader-0.1.18.tar.gz
  • Upload date:
  • Size: 396.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for star_reader-0.1.18.tar.gz
Algorithm Hash digest
SHA256 a7c2e752c494d8d326113b3c86306402f7f7c39324e44b31aac0a60946be86bd
MD5 66dc54e6c68875e71ffe096d9cf3211a
BLAKE2b-256 40b491bdc69ebba6a02dcfba6c081d596f623342c58560b10f71240c016e2b6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for star_reader-0.1.18.tar.gz:

Publisher: release.yml on leavesofgrass/star

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file star_reader-0.1.18-py3-none-any.whl.

File metadata

  • Download URL: star_reader-0.1.18-py3-none-any.whl
  • Upload date:
  • Size: 404.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for star_reader-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 a6e33fe9dd92fd6f1fc889009b31be5bd880a428cfbf7d3cc3021afaf156e59e
MD5 d2ba8fc391f5ce8f1b63aef013734bae
BLAKE2b-256 865eb96f8199498eea53d756a84aaaec64a2561240a627ab36184001461841b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for star_reader-0.1.18-py3-none-any.whl:

Publisher: release.yml on leavesofgrass/star

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page