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.
- Dashboard View: See the latest articles across all your feeds
- Feed Management: Subscribe to and organize multiple RSS feeds
- Rich Content Display: Beautiful formatting of articles with HTML-to-text conversion
- Smart Search: Quickly find content across all your feeds
- Browser Integration: Open articles in your default browser
- Rust and Cargo (install from https://rustup.rs/)
cargo install feedrgit clone https://github.com/bahdotsh/feedr.git cd feedr cargo build --releaseThe binary will be available at target/release/feedr.
Run the application:
feedr- When you open Feedr for the first time, press
ato add a feed - Enter a valid RSS feed URL (e.g.,
https://news.ycombinator.com/rss) - Use arrow keys to navigate and
Enterto view items - Press
oto 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 |
- ratatui: Terminal UI framework
- crossterm: Terminal manipulation
- reqwest: HTTP client
- rss: RSS parsing
- html2text: HTML to text conversion
- chrono: Date and time handling
- serde: Serialization/deserialization
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
