Python versions

reader supports Python 3.9 and newer, and PyPy.


These packages will be installed automatically when installing reader:

  • feedparser parses feeds; reader is essentially feedparser + state.

  • requests retrieves feeds from the internet; it replaces feedparser’s default use of urllib to make it easier to write plugins.

  • iso8601 parses dates in ISO 8601 / RFC 3339; used for JSON Feed parsing.

  • beautifulsoup4 is used to strip HTML tags before adding entries to the search index.

  • typing-extensions is used for typing backports.

reader also depends on the sqlite3 standard library module (at least SQLite 3.15), and on the JSON1 SQLite extension. To use the full-text search functionality, at least SQLite 3.18 with the FTS5 extension is required.

Optional dependencies

Despite coming with a CLI and web application, reader is primarily a library. As such, most dependencies are optional, and can be installed as extras.

As of version 3.5, reader has the following extras:

  • cli installs the dependencies needed for the command-line interface.

  • app installs the dependencies needed for the web application.

  • Specific plugins may require additional dependencies; refer to their documentation for details.

Virtual environments

You should probably install reader inside a virtual environment; see this for how and why to do it.

Install reader

Use the following command to install reader, along with its required dependencies:

pip install reader

Use the following command to install reader with optional dependencies:

pip install 'reader[some-extra,...]'

Update reader

Use the following command to update reader (add any extras as needed):

pip install --upgrade reader

Living on the edge

If you want to use the latest reader code before it’s released, install or update from the master branch:

pip install --upgrade