A vibed accessible, modern RSS client for the blind
  • Python 98.6%
  • Batchfile 1%
  • Shell 0.4%
Find a file
admin 93dd672177 chore: sync agents.md memory block
Adds the NPR TollBit gate memory pointer written while fixing v1.128.2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149o1yQHtzXSK3ew2frYEoV
2026-08-12 22:58:51 -07:00
.github/workflows fix: pin Linux wxPython binary build 2026-07-28 13:20:29 -07:00
assets Add accessible mac UI and cross-platform build pipeline 2026-04-15 12:04:16 -07:00
core Release v1.128.2 2026-08-12 22:57:54 -07:00
gui feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
hooks chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
installer chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
locale feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
providers fix: trust Windows certificates for Miniflux 2026-08-11 11:50:15 -07:00
sounds fix: NPR feed, add sounds, cleanup boilerplate, fix accessibility 2026-01-06 11:43:32 -08:00
tests fix: read NPR articles and audio around the TollBit gate 2026-08-12 22:53:00 -07:00
tools feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
.gitattributes feat: add complete Lemmy feed and thread support 2026-07-22 20:26:29 -07:00
.gitignore fix: bootstrap YouTube extraction through hidden browser sessions 2026-07-29 21:38:41 -07:00
agents.md chore: sync agents.md memory block 2026-08-12 22:58:51 -07:00
BUGFIX_mark_read_refresh.md Improve skip silence to avoid random word skipping - increased minimum to 800ms, padding to 300ms, reduced merge gap 2026-01-30 12:14:26 -08:00
BUGFIX_volume_jump.md fix: volume still jumped on first adjustment for slow streams 2026-07-03 13:58:59 -07:00
build.bat feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
build.md feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
build.sh chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
CHANGELOG.md Release v1.128.2 2026-08-12 22:57:54 -07:00
check_miniflux.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
check_portable_db.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
check_reg.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
conftest.py test: skip the re-resolve tests when local TCP delivery is broken 2026-07-28 11:52:17 -07:00
debug_mark_read.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
FEATURE_remember_last_feed.md Improve skip silence to avoid random word skipping - increased minimum to 800ms, padding to 300ms, reduced merge gap 2026-01-30 12:14:26 -08:00
IMPROVEMENT_skip_silence.md Improve skip silence to avoid random word skipping - increased minimum to 800ms, padding to 300ms, reduced merge gap 2026-01-30 12:14:26 -08:00
LICENSE chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
main.py feat: self-update the embedded yt_dlp module at runtime 2026-07-29 19:04:23 -07:00
main.spec feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
npr_test.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
portable.spec feat: report the app version to screen readers and announce it in-app 2026-08-12 10:53:47 -07:00
pytest.ini fix: restore silence scan and enforce refresh breaker 2026-07-30 11:21:13 -07:00
README.md docs: bring the README up to date and document the license 2026-07-24 11:52:15 -07:00
repro_check_supported.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
repro_extract.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
repro_extract_fixed.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
repro_relocation.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
repro_scroll.py chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
requirements.txt fix: preserve reader position and harden YouTube fallback 2026-07-30 07:25:24 -07:00
setup.bat chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
start_blindrss.bat chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00
update_helper.bat fix: remove successful update temp files 2026-07-30 12:37:55 -07:00
update_helper.sh chore: license BlindRSS under MIT and add SPDX headers 2026-07-24 11:48:32 -07:00

BlindRSS

A vibe-coded, screen-reader-friendly desktop RSS and podcast client for Windows, macOS, and Linux, built for fast feed reading and dependable audio playback.

Join SerrebiProjects on Telegram License: MIT

Have a question, hit a bug, or want early word on new releases? Join the SerrebiProjects Telegram group — the community hub for BlindRSS and my other projects, and the fastest place to get help.

Features

  • Reads RSS/Atom feeds and plays podcast and video enclosures.
  • Works with local feeds and hosted providers: Miniflux, Inoreader, The Old Reader, and BazQux.
  • All / Unread / Read / Favorites views, with mark read/unread and mark all read.
  • Smart Folders, saved searches, and a Feeds with Errors view for feeds that quietly stopped updating.
  • Filter rules that move, label, or delete articles as they arrive.
  • Deleted Articles view that restores what you removed, and permanently deletes when you mean it.
  • Recovers full article text when a feed only ships summaries.
  • Reads YouTube videos as articles, with the description, transcript, and chapters inline.
  • Reads Reddit, Lemmy, Groups.io, and Google Groups discussions as whole threads rather than one post.
  • Discovers feeds from URLs and search providers: Apple Podcasts, gPodder, Feedly, NewsBlur, Feedspot, Reddit, the Fediverse, Feedsearch, and local discovery.
  • Subscribes to YouTube channels and playlists, Mastodon, Bluesky, PieFed, SoundCloud, and Mixcloud.
  • Imports subscriptions in bulk from OPML and from a YouTube Takeout export.
  • Fetches feeds behind bot protection using a configurable browser identity and imported clearance cookies.
  • Resolves YouTube, Rumble, and Odysee media through yt-dlp and built-in resolvers.
  • Smooths VLC playback and seeking with a local range-cache proxy.
  • Playback speed control, an equalizer, silence skipping, chapters, and soundcard selection.
  • Casts to Chromecast, DLNA/UPnP, and AirPlay.
  • Tray controls, media-key support, and startup restore of your last feed and folder.
  • Windows notifications for new articles, with per-feed exclusions and per-refresh limits.
  • 61 remappable keyboard commands, grouped by feeds, articles, view, player, and playback speed.
  • Translated into 15 languages, with catalog updates delivered between app releases.
  • Built-in updater that verifies SHA-256 and Authenticode before applying an update.

Download and install

Grab the latest build from the Releases page. For a version-by-version history, see the changelog.

Windows installer (recommended)

  1. Download BlindRSS-Setup-vX.Y.Z.exe.
  2. Run it and approve the elevation prompt. It installs to Program Files, adds a Start Menu entry, and updates itself in place.

Windows portable

  1. Download BlindRSS-vX.Y.Z.zip.
  2. Extract it anywhere and run BlindRSS.exe — no installation required.

macOS and Linux

Download the matching …-macos.zip or …-linux.tar.gz asset from the same release.

Installed builds keep your settings and database in %APPDATA%\BlindRSS and default episode downloads to your Downloads folder. Uninstalling leaves your data untouched.

Run from source (any OS)

  1. Install Python 3.14.
  2. Install dependencies: pip install -r requirements.txt
  3. Launch it: python main.py

Building

See build.md for the full release pipeline — PyInstaller packaging, Authenticode signing, the Program Files installer, and the macOS/Linux build dispatch.

Debug logging

Enable debug mode in Settings to write a rotating blindrss.log (DEBUG and above) next to your config and data. With debug mode off, no log file is created.

Contributing

Pull requests are welcome. If BlindRSS has been useful to you, open a PR with a fix or feature and I'll review it.

Translations

I only speak English, so I got several languages started with AI-assisted translation rather than leaving them untranslated. Human translation is always preferred, and I'd rather have a native speaker's review than a machine's best guess.

If you speak one of the supported languages and something reads wrong, awkward, or just off, please open a PR to fix it — I can't judge the wording myself, so I'll almost certainly accept it. See locale/README.md for how the translation files are laid out and how to update them.

License

BlindRSS is under the MIT license — use it, change it, redistribute it, or package it for a distro repository, no permission needed. Every source file carries an SPDX-License-Identifier: MIT header so packaging tools can pick the license up automatically.

It went unlicensed longer than it should have, which quietly blocked anyone trying to package it. If that was you, it's sorted now.

Community and support

Report bugs and request features in Issues. For questions, feedback, and release news, join the SerrebiProjects Telegram group.