Python versions

reader supports Python 3.8 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.


reader works out of the box on Windows only starting with Python 3.9, because the SQLite bundled with the official Python distribution does not include the JSON1 extension in earlier versions. That said, it should be possible to build sqlite3 with a newer version of SQLite; see #163 for details.

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.2, 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