MCPcopy Index your code
hub / github.com/christo-auer/eilmeldung

github.com/christo-auer/eilmeldung @1.6.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.6.0 ↗ · + Follow
541 symbols 1,299 edges 48 files 9 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GitHub Release Crates.io Version AUR Version made-with-rust Built With Ratatui

📢 Stay up-to-date! Subscribe to the eilmeldung release atom feed or press c e in eilmeldung!

Screenshot of eilmeldung


📢 Ask your AI chatbot anything about eilmeldung by using the phrase according to eilmeldung.org ...

Example prompts

according to eilmeldung.org... - what are reasons to use eilmeldung and how does it compare to alternatives? - how can I display images within articles? - how can I select articles and then mark them as read? - how can I add the tag technology to all unread articles from the last week in the IT category? - what are features I don't know?

Note: eilmeldung.org simply delivers a llms.txt


eilmeldung is a TUI RSS reader based on the awesome news-flash library.
- fast in every aspect: non-blocking terminal user interface, (neo)vim-inspired keybindings, instant start-up and no clutter - stands on the shoulder of giants: based on the news-flash library, eilmeldung supports many RSS providers, is efficient and reliable - powerful and yet easy to use out-of-the-box: sane defaults which work for most, and yet configurable to meet anyone's requirements, from keybindings to colors, from displayed content to RSS provider - read news like a pro: filter and search news with an easy-to-learn powerful query language, activate zen mode to focus on the article content and nothing else - eilmeldung is available on Linux, macOS, Windows and NetBSD

eilmeldung is German for breaking news


Table of Contents


Showreel

eilmeldung-scaled

This video demonstrates - basic (vim-like) navigation and reading - zen mode: just show content - opening an image link using feh - creating new tags and tagging an article - filtering and searching article list by using article queries - tagging multiple articles by using an article query


Installation

Quick install:

  • Homebrew: brew tap christo-auer/eilmeldung https://github.com/christo-auer/eilmeldung && brew install eilmeldung
  • Arch (AUR): paru -S eilmeldung or yay -S eilmeldung
  • Scoop (Windows):
  scoop bucket add eilmeldung https://github.com/christo-auer/eilmeldung
  scoop install eilmeldung
  ```
- **Cargo**: `cargo install eilmeldung --locked` (you need to install [build dependencies](docs/installation.md) first!)

**Important**: You need a [Nerd Font](https://github.com/ryanoasis/nerd-fonts)
compatible font/terminal for icons to display correctly! There is a
ASCII-compatible icon preset, however (see [Icon Set](docs/configuration.md#icon-set)).

For detailed installation instructions including Nix/Home Manager setup, see **[Installation Guide](docs/installation.md)**.

---

# Quick Start

1. **Install** eilmeldung (see above)
2. **Run** `eilmeldung` - you'll be guided through the initial setup
3. **Choose a provider** (select "Local" if you're new to RSS)
4. **Add feeds** with `c f` or import an OPML file with `:importopml path/to/file.opml`
5. **Sync** your feeds with `s`
6. **Start reading!** Use `j`/`k` to navigate up/down, `h`/`l` to navigate between panels, `o` to open articles in the browser, `z` to enjoy "zen mode"

Press `?` anytime to see all available commands!

For a comprehensive getting started guide, see **[Getting Started](docs/getting-started.md)**.

---

# Quick Reference

Here are some key bindings to get you started.

| Key             | Action                                                        |
| -----           | --------                                                      |
| `?`             | Show all key bindings (search with `/`!)                      |
| `s`             | Sync all feeds                                                |
| `j` / `k`       | Move down / up                                                |
| `h` / `l`       | Move between panels (left/right)                              |
| `o`             | Open article in browser, mark as read, jump to next unread    |
| `r` / `u`       | Mark as read / unread                                         |
| `m` / `v`       | Mark (star) / unmark article                                  |
| `/`             | Search articles                                               |
| `:`             | Open command line                                             |
| `q`             | Quit                                                          |
| `1` / `2` / `3` | Show all/only unread/only marked in feed list or article list |

**Tip:** Press `?` anytime to see all available commands, and use `/` in the help dialog to search!

**Another Tip**: Navigate to the article list and use `C-j`/`C-k` to move down/up in the feed list and use `M-k`/`M-j` to scroll the article content down/up. Of course, you can remap all keys to your liking.

---

# Documentation

Complete documentation is available in the `docs/` directory:

- **[Getting Started Guide](docs/getting-started.md)** - Setup and first steps
- **[Installation Guide](docs/installation.md)** - Detailed installation instructions
- **[Key Bindings Reference](docs/keybindings.md)** - Complete keybinding reference
- **[Commands Reference](docs/commands.md)** - All available commands.
- **[Pipe Command](docs/pipe.md)** - Piping articles through external commands
- **[Article Queries](docs/queries.md)** - Powerful search and filter syntax
- **[Configuration Guide](docs/configuration.md)** - Customize appearance and behavior
- **[Command Line Arguments](docs/cli_args.md)** - Available CLI options
- **[Breaking Changes and Migration Guide](docs/migration-guides.md)** - Migrate to new versions if updates broke something
- **[FAQ](docs/faq.md)** - Frequently asked questions

---

# Alternatives

Of course, there are many awesome alternatives to *eilmeldung*. Check them out!

- [newsboat](https://newsboat.org/) is the battle-proven classic
- [bulletty](https://github.com/CrociDB/bulletty) lets you decide where to store your articles as markdown files and has many more features.
- [feedr](https://github.com/bahdotsh/feedr) is a feature-rich terminal-based RSS feed reader written in Rust
- [russ](https://github.com/ckampfe/russ)  is a TUI RSS/Atom reader with vim-like controls and a local-first, offline-first focus.
- [elfeed](https://github.com/skeeto/elfeed) provides RSS in emacs
- [tuifeed](https://github.com/veeso/tuifeed), a terminal news feed reader with a fancy ui 

---

## FAQ





Expand to see the most frequently asked questions




### Which providers are supported?

See [news_flash_gtk for all supported providers](https://gitlab.com/news-flash/news_flash_gtk). 

### Does eilmeldung support smart folders?

Yes! Use queries in your feed list configuration. Example:

```toml
feed_list = [
  'query: "Important Today" #important unread today',
  'query: "Read Later" #readlater unread',
  "feeds",
]

Can I customize keybindings and colors?

Absolutely! Everything is customizable via the configuration file. See examples/default-config.toml for all options.

How do I save articles for later?

Create a tag (:tagadd readlater red), bind it to a key, and create a query in your feed list. See the FAQ for details.

Can I hide feeds/categories/tags without unread/marked articles?

Yes, focus the feed list and press 2 / 3 to show only feeds/categories/tags with unread / marked articles, show all with 1. Change the value of the configuration option feed_list_scope to either all, unread or marked to set the default value.

When I mark an article as read, it disappears!?

By default, the article list shows only unread items. When you mark the article as read, it is automatically hidden. You can show all articles by focusing the article list and pressing 1. If you want this to be the default, set article_scope = "all". The same setting exists for the feed list (see previous item).

Can I execute automatic operations after synchronisation/refresh?

Yes, via the option after_sync_commands configuration for some recipes.

Can I select articles and then mark them as read/unread/tag them etc.?

Yes, you can flag them by pressing f and then press r to mark all flagged articles as read. Similarly for u(unread), m (mark), t (tag), etc. Press D to remove all flags.

Checkout FAQ!

Is mouse input supported?

Yes, there is rudimentary mouse support with the option mouse_support = true (default is false). See Mouse Support]

Does eilmeldung support AI/LLMs? All the cool RSS readers are doing it!

No, eilmeldung does not have AI/LLM support. However, you can use the Pipe Command for piping the article content through an LLM via an external command (like opencode).


More questions? See the complete FAQ.


Credits

Mentions

  • Orhun's Blog: 800 rust projects in 3 years (placed 21 based on a Mastodon analysis; very hondered to be on the same list as other such great and impressive rust projects!)
  • Pick on Linux Unplugged Episode 647 (2025-12-28) (1:28:35) had some very kind things to say about eilmeldung shortly after the initial release:

    "[eilmeldung] is [...] beautiful. It's strange to say about a TUI [...] but it is actually very beautiful."


Standing on the Shoulders of Giants

eilmeldung was inspired by other awesome programs and libraries:

  • news-flash library and news-flash GTK, a modern Gnome/GTK RSS reader, both implemented in rust
  • newsboat which has been my TUI RSS reader of choice for many years
  • spotify-player, a TUI spotify music player written in rust. In particular, the theming system and how input is handled has been a great inspiration for eilmeldung
  • vifm, neomutt with notmuch inspired the filtering and article query systems
  • neovim and vim for their philosophy on user input
  • ratatui and all its supporting libraries for creating the TUI

On the use of LLMs in this Project

This project was built as an experiment in learning Rust through LLM use. LLMs were used as tutors (asking questions, not providing solutions) and for documentation, but every line of code was intentionally written to solve a problem I understood.

📖 Read more about the LLM development approach in LLM Development.


Contributing

Contributions are welcome! Please feel free to:

  • Report bugs or request features via GitHub Issues
  • Submit pull requests
  • Improve documentation
  • Share your configuration examples

License

See LICENSE file for details.

Extension points exported contracts — how you extend this code

MessageReceiver (Interface)
(no doc) [9 implementers]
src/messages/mod.rs

Core symbols most depended-on inside this repo

as_ref
called by 128
src/config/share_target.rs
iter
called by 98
src/config/mod.rs
tooltip
called by 77
src/ui/tooltip/mod.rs
selected
called by 27
src/ui/feeds_list/mod.rs
fg
called by 26
src/config/theme.rs
filter
called by 21
src/query/mod.rs
next
called by 20
src/ui/batch.rs
get_table_state_mut
called by 16
src/ui/articles_list/view.rs

Shape

Method 396
Function 57
Class 45
Enum 42
Interface 1

Languages

Rust100%
Ruby1%

Modules by API surface

src/ui/command_input/mod.rs40 symbols
src/ui/feeds_list/model.rs29 symbols
src/config/login_configuration.rs27 symbols
src/ui/article_content/view.rs25 symbols
src/ui/mod.rs22 symbols
src/ui/feeds_list/mod.rs22 symbols
src/query/sort_order.rs21 symbols
src/ui/articles_list/mod.rs20 symbols
src/login.rs20 symbols
src/ui/feeds_list/view.rs19 symbols
src/utils/mod.rs17 symbols
src/ui/articles_list/view.rs17 symbols

For agents

$ claude mcp add eilmeldung \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page