| Crates.io | feedr |
| lib.rs | feedr |
| version | 0.3.0 |
| created_at | 2025-04-02 15:08:00.803187+00 |
| updated_at | 2025-10-17 13:22:05.441568+00 |
| description | Feedr is a feature-rich terminal-based RSS/Atom feed reader written in Rust. |
| homepage | https://github.com/bahdotsh/feedr |
| repository | https://github.com/bahdotsh/feedr |
| max_upload_size | |
| id | 1616696 |
| size | 1,207,833 |
Feedr is a feature-rich terminal-based RSS feed reader written in Rust. It provides a clean, intuitive TUI interface for managing and reading RSS feeds with elegant visuals and smooth keyboard navigation.

cargo install feedr
git clone https://github.com/bahdotsh/feedr.git
cd feedr
cargo build --release
The binary will be available at target/release/feedr.
Run the application:
feedr
a to add a feedhttps://news.ycombinator.com/rss)Enter to view itemso to open the current article in your browser| Key | Action |
|---|---|
Tab |
Cycle between views |
q |
Quit application |
r |
Refresh all feeds |
/ |
Search mode |
| Key | Action |
|---|---|
f |
Go to feeds list |
a |
Add a new feed |
↑/↓ |
Navigate items |
Enter |
View selected item |
o |
Open link in browser |
| Key | Action |
|---|---|
h / Esc |
Go to dashboard |
a |
Add a new feed |
d |
Delete selected feed |
↑/↓ |
Navigate feeds |
Enter |
View feed items |
| Key | Action |
|---|---|
h / Esc |
Back to feeds list |
Home |
Go to dashboard |
↑/↓ |
Navigate items |
Enter |
View item details |
o |
Open item in browser |
| Key | Action |
|---|---|
h / Esc |
Back to feed items |
Home |
Go to dashboard |
o |
Open item in browser |
Feedr supports customization through a TOML configuration file that follows XDG Base Directory specifications.
~/.config/feedr/config.toml%APPDATA%\feedr\config.tomlThe configuration file is automatically generated with default values on first run if it doesn't exist.
# Feedr Configuration File
[general]
max_dashboard_items = 100 # Maximum number of items shown on dashboard
auto_refresh_interval = 0 # Auto-refresh interval in seconds (0 = disabled)
refresh_enabled = false # Enable automatic background refresh
refresh_rate_limit_delay = 2000 # Delay in milliseconds between requests to same domain
[network]
http_timeout = 15 # HTTP request timeout in seconds
user_agent = "Mozilla/5.0 (compatible; Feedr/1.0; +https://github.com/bahdotsh/feedr)"
[ui]
tick_rate = 100 # UI update rate in milliseconds
error_display_timeout = 3000 # Error message duration in milliseconds
# Optional: Define default feeds to load on first run
[[default_feeds]]
url = "https://example.com/feed.xml"
category = "News"
To enable automatic refresh every 5 minutes with rate limiting:
[general]
refresh_enabled = true
auto_refresh_interval = 300 # 5 minutes
refresh_rate_limit_delay = 2000 # 2 seconds between requests to same domain
Note: Rate limiting groups feeds by domain and staggers requests to prevent hitting API limits. For example, if you have multiple Reddit feeds, they will be fetched with a 2-second delay between each request to avoid getting blocked.
You can define feeds to be automatically loaded on first run:
[[default_feeds]]
url = "https://news.ycombinator.com/rss"
category = "Tech"
[[default_feeds]]
url = "https://example.com/feed.xml"
category = "News"
Feedr stores your bookmarks, categories, and read items in:
~/.local/share/feedr/feedr_data.json%LOCALAPPDATA%\feedr\feedr_data.jsonFeedr automatically migrates data from older versions to the new XDG-compliant locations. Your existing data will be preserved and automatically moved to the correct location on first run.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)