blogtato
A CLI RSS/Atom feed reader inspired by Taskwarrior.

Features
- Subscribe to RSS and Atom feeds
- Simple query language for filtering by feed, read status, and date, with grouping and export
- Git-based sync across machines with conflict-free merge (why git?)
- No accounts, no servers, no continuous network dependency
- Mark content as read
- Designed to be distraction free, minimalistic and work out of the box
Install
Git sync
git based synchronization is entire optional. blogtato can work entirely
offline on a single device.
To set up git synchronization, create a private repo on your git host, then:
# On your first machine
# From now on, sync fetches feeds and pushes/pulls from the remote
# with no remote repository, `blog sync` just pulls the latest posts from
# all feeds
On your device(s), run the same blog clone to pull down your feeds and posts.
Don't worry about setting git sync up if you are just trying blogtato out:
you can run blog clone user/repo later and your existing feeds will be merged
with the remote automatically.
Quick start
Once you set up your git-based sync, or if you decided to skip it, subscribe
to your favorite feeds using blog feed add:
You can import your subscriptions from other RSS readers (Feedly, Inoreader, NetNewsWire, FreshRSS, Feeder, Tiny Tiny RSS, Outlook, and others) using an OPML file:
Fetch and list latest posts:
Read whatever you found interesting by referring to its shorthand
You can subscribe to blogtato releases to know when new features or fixes are
available:
Usage examples
# Subscribe to a feed
# Fetch new posts and sync with git remote
# Show posts (defaults to unread posts from the last 3 months, grouped by week)
# Group by date, week, or feed
# Combine groupings
# Filter by feed shorthand
# Filter by read status
# Filter by date
# Combine filters - list unread posts form HackerNews grouped by date
# Open a post in the default browser
# Print a post URL (useful with CLI browsers)
# Mark a post as unread
# Export matching posts as JSONL
# List subscriptions
# Remove a feed
Design philosophy
I built blogtato around the idea of subscription detox and simplicity. I just
wanted to use a simple and RSS reader that is not distracting, but can be
synced between different devices seamlessly without having to set up another
user account and paying another monthly subscription fee.
blogtato uses a simple database that stores data in JSONL files and syncs
them using git. From a performance standpoint, this is admittedly
sub-optimal, and an quite esoteric design. At the same time, if you are
comfortable with CLI tools you likely have access to a remote git host such
as GitHub, GitLab or a Forgejo instance: and that's all blogtato needs to be
able to keep data up to date on all of your devices. From a user perspective,
this just works with effectively zero configuration.
blogtato's database uses a conflict-free design: even if you have diverging
changes between different devices, you will never have to manually resolve
conflicts. You can forget about git being there.
Network operations are always initiated by the user. There is no need for a continuously running server. And all operations that don't strictly need network access work offline.
It is my goal to keep the feature-set and the complexity of this project down, so that it can be maintained with minimal effort and can be considered to be "done".
Naming
The naming is meant to symbolize simplicity and pragmatic silliness: I just mashed the word "blog" together with the first word I could think of: potato.
Comparison with alternatives
blogtato is relatively new and there are several good, and more mature
alternatives. This section attempts to summarize how they differ from
blogtato and why some users might still prefer to use blogtato instead.
Newsboat
Newsboat is a very mature TUI RSS client with a wide range of features that
blogtato does not have. Just like blogtato, it supports local-only
workflows.
It can also act as a client to remote servers, so if you are ok with having to
self-host a server or signing up to a hosted server, then blogtato's git
sync feature is not a relevant differentiator for you.
Another reason why blogtato might be relevant to you is that it has a
Taskwarrior-like interface that is even more minimalistic than Newsboat.
Newsraft
Newsraft is a more minimalistic alternative to Newsboat. The Newsboat breakdown mostly applies.
FreshRSS, Miniflux & Tiny Tiny RSS
These are mature, self-hostable web-based RSS readers/aggregators. What
blogtato offers in comparison is a minimalistic CLI interface and effectively
zero-setup sync between different machines using git, without the need for an
additional, continuously running server.
Feedly, Inoreader
These are full-featured web-based services. If you are a heavy RSS-user and like the user interfaces and features they offer (such as GUI apps for iOS and Android, content recommendations) you will likely prefer one of these options.
You could find blogtato interesting if you'd prefer a more minimalistic,
distraction-free CLI interface and do not need their advanced features.