1 unstable release
| 0.1.0 | Aug 4, 2025 |
|---|
#2371 in Command line utilities
120KB
2.5K
SLoC
NOS CLI
A modern, fast terminal-based RSS feed reader specifically designed for NOS.nl (Nederlandse Omroep Stichting) news feeds.
✨ Features
- 📰 Multiple Feed Categories: Access news, sports, and special programs from NOS
- 🖼️ Terminal Image Support: View article images directly in your terminal
- ⚡ Fast & Responsive: Smooth navigation with vi-style keybindings
- 🎨 Beautiful UI: Clean interface with official NOS brand colors
- 📱 Responsive Layout: Adapts to different terminal sizes
- 🔍 Article Preview: Quick preview text in list view
- 📖 Full Article View: Read complete articles with proper formatting
🚀 Installation
From Source
# Clone the repository
git clone https://github.com/thijmen-nos/nos-cli.git
cd nos-cli
# Build and install
cargo install --path .
Prerequisites
- Rust 1.70 or later
- A terminal that supports 256 colors (most modern terminals)
- For optimal image display: A terminal with image protocol support (iTerm2, Kitty, etc.)
📖 Usage
Start the application:
nos-cli
Navigation
The application uses intuitive keybindings:
Feed Selection Mode
↑/↓orj/k: Navigate between feedsEnter/l/→: Select a feedq/Esc: Quit application
Article List Mode
↑/↓orj/k: Navigate between articlesEnter/l/→: Open article detailsh/←/Backspace: Return to feed selectionq/Esc: Quit application
Article Detail Mode
↑/↓orj/k: Scroll article contentJ/K: Jump to next/previous articleh/←/Backspace: Return to article listq/Esc: Quit application
📺 Available Feeds
News Feeds
- NOS Nieuws Algemeen (General News)
- NOS Nieuws Binnenland (Domestic News)
- NOS Nieuws Buitenland (International News)
- NOS Nieuws Politiek (Politics)
- NOS Nieuws Economie (Economics)
- NOS Nieuws Opmerkelijk (Remarkable News)
- NOS Nieuws Koningshuis (Royal House)
- NOS Nieuws Cultuur en media (Culture & Media)
- NOS Nieuws Tech (Technology)
Sports Feeds
- NOS Sport Algemeen (General Sports)
- NOS Sport Voetbal (Football)
- NOS Sport Wielrennen (Cycling)
- NOS Sport Schaatsen (Ice Skating)
- NOS Sport Tennis
- NOS Sport Formule 1 (Formula 1)
Special Programs
- Nieuwsuur
- NOS op 3
- NOS Jeugdjournaal (Youth News)
🛠️ Development
Building
# Debug build
cargo build
# Release build
cargo build --release
Running
# Run with cargo
cargo run
# Run with debug logging
RUST_LOG=debug cargo run
Testing
cargo test
🤝 Contributing
We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Guidelines
- Follow standard Rust conventions and formatting (
cargo fmt) - Ensure all tests pass (
cargo test) - Add documentation for new features
- Update README if needed
📄 License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
🙏 Acknowledgments
- NOS.nl for providing the RSS feeds
- Ratatui for the excellent TUI framework
- The Rust community for the amazing ecosystem
📞 Support
If you encounter any issues or have questions, please open an issue on GitHub.
Made with ❤️ for the Dutch news community
Dependencies
~46–82MB
~1M SLoC