Skip to main content

lazyfeed

A fast, modern, and simple RSS/Atom feed reader for the terminal written in pure Python.

Loaded screenshot

Features

  • Support for RSS/Atom feeds.
  • Import from and export feeds.
  • Save for later.
  • Vim-like keybindings for navigation.
  • Theming.
  • "In-app" reading support.
  • Configuration options.

Core dependencies

Motivation

For quite some time, I have wanted to build an RSS reader for myself. While I appreciated some existing solutions, I often felt that they were missing key features or included unnecessary ones. I wanted a simple, fast, and elegant way to stay updated with my favorite feeds without the hassle of limits, ads, or cumbersome configuration files.

Coming up

  • Full-text search support.
  • Categories.
  • Better in-app reading experience.
  • Customizable keybindings.

Installation

The recommended way is by using uv:

uv tool install --python 3.13 lazyfeed

Now you just need to import your feeds from an OPML file like this:

lazyfeed < ~/Downloads/feeds.opml

Or, after starting lazyfeed, adding your favorite feeds one by one:

Add feed

Import and export

As you can see importing your RSS feeds is pretty simple and exporting them is as simple as just doing:

lazyfeed > ~/Downloads/feeds.opml

At the moment only OPML is supported.

Configuration

The configuration file for lazyfeed is located at $XSG_CONFIG_HOME/lazyfeed/config.toml. This file is generated automatically the first time you run lazyfeed and will look something like this:

# Welcome! This is the configuration file for lazyfeed.

# Available themes include:
# - "dracula"
# - "textual-dark"
# - "textual-light"
# - "nord"
# - "gruvbox"
# - "catppuccin-mocha"
# - "textual-ansi"
# - "tokyo-night"
# - "monokai"
# - "flexoki"
# - "catppuccin-latte"
# - "solarized-light"
theme = "dracula"

# If set to true, all items will be marked as read when quitting the application.
auto_read = false

# If set to true, items will be fetched at start.
auto_load = false

# If set to false, items will be marked as read without asking for confirmation.
confirm_before_read = true

# Specifies by which attribute the items will be sorted.
sort_by = "published_at" # "title", "is_read", "published_at"

# Specifies the sort order.
sort_order = "ascending" # "descending", "ascending"

[client]
# Maximum times (in seconds) to wait for all request operations.
timeout = 300

# Timeout for establishing a connection.
connect_timeout = 10

[client.headers]
# This section defines the HTTP headers that will be sent with
# each request.
# User-Agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
# Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"
# Accept-Language = "en-US,en;q=0.6"
# Accept-Encoding = "gzip,deflate,br,zstd"

The folder that holds the configuration file as well as the SQLite database is determined by the get_app_dir utility provided by click. You can read more about it here.

Usage

To start using lazyfeed you just need to run:

lazyfeed

Some screenshots

Confirmation In-app reader Saved for later

The theme used for the screenshots is dracula.

Metadata

Release files for lazyfeed 0.5.9

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

Source distribution (sdist)

Source distribution for lazyfeed 0.5.9
File Size Uploaded
lazyfeed-0.5.9.tar.gz 725.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lazyfeed 0.5.9
File Interpreter ABI Platform
lazyfeed-0.5.9-py3-none-any.whl Python 3 none any Details

Total release size: 751.0 kB

Release files / lazyfeed-0.5.9.tar.gz

Download URL lazyfeed-0.5.9.tar.gz
Size 725.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fe6803f5c6e1f2b78ab35978c6915d180bb35469a67e7c99707b64a8c221ee0a
BLAKE2b-256 checksum
How to use checksums
260d819b81b4cd5bcf2270463018268c53f08bfa58daa46d4af4b815cd3cb3bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 2, 2025.

Transparency log

Release files / lazyfeed-0.5.9-py3-none-any.whl

Download URL lazyfeed-0.5.9-py3-none-any.whl
Size 25.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44cc2f412072bab03a87245a98e97b415a6e02ca8d3eb73d2f6a86c3c112bf68
BLAKE2b-256 checksum
How to use checksums
6ec4c34b237e3e813b72e006c4787daccf140213d2106145056c9e582fb49bbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 2, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.9 This release

2 release files

0.5.7

2 release files

0.5.5

2 release files

0.5.3

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

2 release files

0.1.31

2 release files

0.1.27

2 release files

0.1.25

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.15

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.6

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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