{"id":18345426,"url":"https://github.com/dnlzrgz/lazyfeed","last_synced_at":"2025-04-06T08:31:43.629Z","repository":{"id":253231621,"uuid":"807720963","full_name":"dnlzrgz/lazyfeed","owner":"dnlzrgz","description":" A fast, modern, and simple RSS/Atom feed reader for the terminal written in pure Python. ","archived":false,"fork":false,"pushed_at":"2025-01-02T07:19:37.000Z","size":5866,"stargazers_count":17,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T08:22:07.471Z","etag":null,"topics":["cli","feed","feed-reader","news","rss","rss-reader","terminal","textual","tui"],"latest_commit_sha":null,"homepage":"https://dnlzrgz.com/projects/lazyfeed/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnlzrgz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-29T16:40:32.000Z","updated_at":"2025-03-24T00:27:23.000Z","dependencies_parsed_at":"2024-12-26T21:20:44.551Z","dependency_job_id":"8ca46544-a7ef-4efc-a49f-bedfecfe36b9","html_url":"https://github.com/dnlzrgz/lazyfeed","commit_stats":null,"previous_names":["dnlzrgz/lazyfeed"],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlzrgz%2Flazyfeed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlzrgz%2Flazyfeed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlzrgz%2Flazyfeed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnlzrgz%2Flazyfeed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnlzrgz","download_url":"https://codeload.github.com/dnlzrgz/lazyfeed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457227,"owners_count":20941900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","feed","feed-reader","news","rss","rss-reader","terminal","textual","tui"],"created_at":"2024-11-05T21:08:11.548Z","updated_at":"2025-04-06T08:31:43.624Z","avatar_url":"https://github.com/dnlzrgz.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lazyfeed\n\n\u003cp style=\"text-align: center\"\u003e\nA fast, modern, and simple RSS/Atom feed reader for the terminal written in pure Python.\n\u003c/p\u003e\n\n![Loaded screenshot](./.github/screenshot.png)\n\n## Features\n\n- Support for RSS/Atom feeds.\n- Import from and export feeds.\n- Save for later.\n- Vim-like keybindings for navigation.\n- Theming.\n- \"In-app\" reading support.\n- Configuration options.\n\n## Core dependencies\n\n- [textual](https://www.textualize.io/).\n- [aiohttp](https://docs.aiohttp.org/en/stable/index.html).\n- [feedparser](https://feedparser.readthedocs.io/en/latest/basic.html).\n- [sqlalchemy](https://www.sqlalchemy.org/).\n\n## Motivation\n\nFor 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.\n\n## Coming up\n\n- Full-text search support.\n- Categories.\n- Better in-app reading experience.\n- Customizable keybindings.\n\n## Installation\n\nThe recommended way is by using [uv](https://docs.astral.sh/uv/guides/tools/):\n\n```bash\nuv tool install --python 3.13 lazyfeed\n```\n\nNow you just need to import your feeds from an OPML file like this:\n\n```bash\nlazyfeed \u003c ~/Downloads/feeds.opml\n```\n\nOr, after starting `lazyfeed`, adding your favorite feeds one by one:\n\n![Add feed](./.github/screenshot_add_feed.png)\n\n## Import and export\n\nAs you can see importing your RSS feeds is pretty simple and exporting them is as simple as just doing:\n\n```bash\nlazyfeed \u003e ~/Downloads/feeds.opml\n```\n\n\u003e At the moment only OPML is supported.\n\n## Configuration\n\nThe 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:\n\n```toml\n# Welcome! This is the configuration file for lazyfeed.\n\n# Available themes include:\n# - \"dracula\"\n# - \"textual-dark\"\n# - \"textual-light\"\n# - \"nord\"\n# - \"gruvbox\"\n# - \"catppuccin-mocha\"\n# - \"textual-ansi\"\n# - \"tokyo-night\"\n# - \"monokai\"\n# - \"flexoki\"\n# - \"catppuccin-latte\"\n# - \"solarized-light\"\ntheme = \"dracula\"\n\n# If set to true, all items will be marked as read when quitting the application.\nauto_read = false\n\n# If set to true, items will be fetched at start.\nauto_load = false\n\n# If set to false, items will be marked as read without asking for confirmation.\nconfirm_before_read = true\n\n# Specifies by which attribute the items will be sorted.\nsort_by = \"published_at\" # \"title\", \"is_read\", \"published_at\"\n\n# Specifies the sort order.\nsort_order = \"ascending\" # \"descending\", \"ascending\"\n\n[client]\n# Maximum times (in seconds) to wait for all request operations.\ntimeout = 300\n\n# Timeout for establishing a connection.\nconnect_timeout = 10\n\n[client.headers]\n# This section defines the HTTP headers that will be sent with\n# each request.\n# User-Agent = \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36\"\n# Accept = \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8\"\n# Accept-Language = \"en-US,en;q=0.6\"\n# Accept-Encoding = \"gzip,deflate,br,zstd\"\n```\n\n\u003e 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](https://click.palletsprojects.com/en/stable/api/#click.get_app_dir).\n\n## Usage\n\nTo start using `lazyfeed` you just need to run:\n\n```bash\nlazyfeed\n```\n\n## Some screenshots\n\n![Confirmation](./.github/screenshot_confirmation.png)\n![In-app reader](./.github/screenshot_in_app_reader.png)\n![Saved for later](./.github/screenshot_save_for_later.png)\n\n\u003e The theme used for the screenshots is `dracula`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnlzrgz%2Flazyfeed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnlzrgz%2Flazyfeed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnlzrgz%2Flazyfeed/lists"}