# eilmeldung: a terminal RSS reader built on news-flash and ratatui

> eilmeldung is a Rust TUI RSS reader that wraps the news-flash library, with vim style keybindings, an article query language, zen mode, tagging, image rendering in the terminal and SQLite storage. It ships on four platforms through five package managers, and it is GPL-3.0-or-later.

**christo-auer/eilmeldung** — eilmeldung is a TUI RSS reader based on the awesome news-flash library.

- Repository: https://github.com/christo-auer/eilmeldung
- Stars: 1,033 · Forks: 37
- Language: Rust
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/christo-auer-eilmeldung

## A reader whose name means breaking news

eilmeldung is German for breaking news, and the name sets the tone for a tool that is trying to make terminal reading feel like a first class activity rather than a workaround.

The README describes it as fast in every aspect, citing a non-blocking terminal user interface, (neo)vim-inspired keybindings, mouse support, instant start-up and no clutter. The design claim is specific enough to be checkable, and it explains the technology choices: a non-blocking interface in Rust with the ratatui toolkit, a configuration layer built on the config crate, and dependencies such as if-watch with its tokio feature and notify-rust for desktop notifications.

The project is at version 1.9.0 in Cargo.toml, built on edition 2024, and published to crates.io. The release profile is set for a small, fast binary with codegen-units at 1, link time optimisation enabled, opt-level 3 and symbols stripped.

The audience is someone who already lives in a terminal and wants their news there, with the same muscle memory they use for editing. That is a narrower audience than a feed reader, and the whole design is built around it.

## news-flash does the provider work

The README is explicit that eilmeldung stands on the shoulders of the news-flash library, and the Cargo.toml confirms it as a dependency at version 3.2.0 with the image-downloader feature enabled.

That division of labour is the key architectural fact. Fetching, parsing and normalising feeds is news-flash's problem, and the README describes it as supporting many RSS providers and being efficient and reliable. What eilmeldung adds is the interface layer: the panels, the keybindings, the query language, the tagging model and the zen reading view.

The consequences for an adopter are practical. Provider coverage is news-flash's coverage, and if a specific feed type or a specific site needs a workaround, the answer lives in that library rather than here. The image-downloader feature also explains the image rendering capability, since the downloaded image is then drawn by ratatui-image with serde and tokio features enabled.

The README describes the project as standing on the shoulder of giants, and that phrase is accurate here in the literal sense: the network layer is somebody else's project, maintained in a different repository.

## Installing across four platforms and five package managers

The README lists quick install paths for Homebrew, Arch, NixOS, Scoop and cargo.

```bash
brew tap christo-auer/eilmeldung  https://github.com/christo-auer/eilmeldung && brew install eilmeldung
```

```bash
paru -S eilmeldung
```

```bash
nix run nixpkgs#eilmeldung
```

```bash
scoop install eilmeldung
```

```bash
cargo install eilmeldung --locked
```

The cargo path carries a warning that build dependencies must be installed first, with a pointer to docs/installation.md. That is not a formality: the dependency list includes libsqlite3-sys with the bundled and bundled-windows features, and openssl with the vendored feature, so the build compiles those from source rather than linking against system copies.

The Nix path has the most options, since it offers a quick run with nix run, a package pkgs.eilmeldung, and a home-manager module named eilmeldung. The repository backs this up with a flake.nix, a flake.lock, a nix/ directory and a .envrc for direnv, so the Nix integration is a first class part of the project rather than an afterthought.

The README states the tool is available on Linux, macOS, Windows and NetBSD.

## The Nerd Font requirement and the ASCII escape hatch

One requirement is called out immediately after the install commands, and it is the one that most often decides whether a new user keeps the tool. You need a Nerd Font compatible font and terminal for the icons to display correctly.

There is an escape hatch. The README points to the Icon Set section of docs/configuration.md and states that an ASCII-compatible icon preset exists. That is a real concession to a genuine problem: a TUI that renders powerline style icons will show replacement characters in a default terminal, and the user is left with a broken looking interface.

This is also why the crate pulls in arboard, configured with the wayland-data-control feature. Clipboard access on Wayland is not automatic, and a reader that can copy an article link needs that feature to work there. The dependency list is a decent map of what the interface actually does: fuzzy-matcher for fuzzy search, logos for the keybinding parser, getset for accessor generation, inquire for interactive prompts, shell-words for the pipe command, and htmd with htmlescape for rendering feed HTML in the terminal.

The default-config.toml and light-ansi-palette.toml files under examples/ show that the configuration is TOML, and the light palette example doubles as the answer to what to do if the default theme is unreadable on a light background.

## Six steps from install to reading your first feed

The quick start is a numbered list, and it is short enough to follow exactly.

Install the tool, run eilmeldung, and you are guided through the initial setup. You choose a provider, with Local recommended for anyone new to RSS. You add feeds with the c f command, or import an existing subscription list with the colon command :importopml path/to/file.opml. You sync with s, and then you read, using j and k to move, h and l to move between panels, o to open an article in the browser, and z for zen mode.

The OPML import path is the one to note. A reader that accepts an OPML file is a reader you can point at an existing subscription list, and the import is a colon command rather than a separate utility.

The key reference table gives the rest. s syncs all feeds, r and u mark as read and unread, m and v mark and unmark an article with a star, / searches articles, Ctrl-z undoes the last operations, : opens a command line, q quits, and 1, 2 and 3 filter the feed list or article list to all, only unread or only marked. Pressing ? opens the help dialog, which is itself searchable with /, and every key can be remapped.

The README also documents a set of navigation shortcuts for moving between the article list and feed list with C-j and C-k, and scrolling article content with M-k and M-j.

## Article queries, tagging and zen mode

The feature the README is most enthusiastic about is the query language. The showreel lists filtering and searching the article list by article queries and tagging multiple articles by using an article query, and docs/queries.md is called a powerful search and filter syntax.

This is a real differentiator from a conventional feed reader. The README's own example prompt for the site's llms.txt asks how to add the tag technology to all unread articles from the last week in the IT category, which is a compound operation over metadata rather than a string match on a title.

Tagging is a first class concept rather than a filter. The showreel demonstrates creating new tags and tagging an article, and a query can drive a bulk tagging action across a matched set.

Zen mode is the reading view. The README calls it a way to focus on the article content and nothing else, and the video demonstrates it as a distinct mode rather than a panel arrangement. The dependencies support that: ratatui-textarea for the text area, ratatui-image for images inside articles, and image for image handling.

The docs directory is substantial and covers a pipe command for piping articles through external commands, a configuration guide, a complete keybindings reference, a commands reference, CLI arguments, and a breaking changes and migration guide.

## Storage, upgrades and the cost of GPL

The dependency list shows SQLite as the storage layer, through libsqlite3-sys with bundled and bundled-windows features, so the database is embedded rather than a separate server.

That is a design choice with a consequence. A local database is fast and needs no service, but it is not a portable feed list, and a subscription set that lives only inside the application is harder to move to another reader. The OPML import is the escape hatch in one direction, and the export story is not described in the README.

On upgrades, the project is honest in a way most are not. docs/migration-guides.md is titled Breaking Changes and Migration Guide, described as covering how to migrate to new versions if updates broke something. The CHANGELOG.md at the repository root and release.toml for automating releases point to a release process with real user-visible churn. The release history shows 1.9.0 on 2026-09-23, 1.8.2 on 2026-09-18 and 1.8.1 on 2026-09-02, and the last push was on 2026-10-18, so the project is being worked on.

The licence is GPL-3.0-or-later, confirmed in Cargo.toml as GPL-3.0-or-later and in the LICENSE file. For a personal tool that is not a consideration. For anyone who intends to modify eilmeldung and ship the result inside a commercial product, the copyleft terms are the thing to read before writing code, and that reading is a legal question rather than a technical one.

## Conclusion

eilmeldung suits someone who lives in a terminal, wants RSS across many providers, and needs filtering and search beyond what a feed reader with folders offers, especially if a query language and offline tagging matter to your reading workflow. It is the wrong tool if you need a graphical reader, if your terminal cannot render a Nerd Font and you do not want to switch to the ASCII icon preset, or if you expect a stable file format, since the project publishes breaking change and migration guides and a local database is not a portable feed list. Before you commit, install a Nerd Font, run the Local provider path in the guided setup, and read docs/migration-guides.md to see how much churn a version bump can bring.

## FAQ

### How do I install eilmeldung?

The README lists quick install commands for Homebrew, Arch through paru or yay, NixOS through nix run or the home-manager module, Scoop on Windows, and cargo install eilmeldung --locked, which requires build dependencies to be installed first.

### Why do the icons in eilmeldung not display correctly?

A Nerd Font compatible font and terminal are required for the icons to render. The README points to the Icon Set section of the configuration guide, where an ASCII-compatible icon preset is available.

### How do I import my existing RSS subscriptions into eilmeldung?

Use the :importopml command with the path to an OPML file, for example :importopml path/to/file.opml. Feeds can also be added one at a time with the c f command.

### What can I do with the eilmeldung article query language?

The queries documentation describes a powerful search and filter syntax, and the README showreel demonstrates filtering and searching the article list by article queries and tagging multiple articles at once with a query.

### Which key opens images linked in an eilmeldung article?

The showreel demonstrates opening an image link using feh, and the Cargo.toml includes ratatui-image and the news-flash image-downloader feature for rendering images within the terminal.

## Sources

- [christo-auer/eilmeldung on GitHub](https://github.com/christo-auer/eilmeldung)
- [Issues](https://github.com/christo-auer/eilmeldung/issues)
- [License: GPL-3.0](https://github.com/christo-auer/eilmeldung/blob/main/LICENSE)
- [README](https://github.com/christo-auer/eilmeldung/blob/main/README.md)
- [Releases](https://github.com/christo-auer/eilmeldung/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/christo-auer-eilmeldung
