blogtato 0.1.4

A CLI RSS/Atom feed reader inspired by Taskwarrior
blogtato-0.1.4 is not a library.

blogtato

A CLI RSS/Atom feed reader inspired by Taskwarrior.

demo

Install

cargo install --path .

Usage

# Subscribe to a feed
blog feed add https://news.ycombinator.com/rss

# Fetch new posts
blog sync

# Read posts
blog show

# Group by date, week, or feed
blog show /d
blog show /w
blog show /f

# Combine groupings
blog show /d /f

# Filter by feed shorthand
blog show @hn

# Filter by date
blog since:1w
blog 3m..1m
blog /d since:2w until:1w

# Open a post in the default browser
blog open abc

# Print a post URL (useful with CLI browsers)
blog read abc
w3m $(blog read abc)

# List subscriptions
blog feed ls

# Remove a feed
blog feed rm https://news.ycombinator.com/rss

Git sync

Why sync using git

blogtato is built around the idea of subscription detox. You shouldn't need to create yet another account or pay for yet another service just to read some blogs. If you're comfortable with the command line, you almost certainly already have access to a git host - GitHub, GitLab, a self-hosted Forgejo - where you can store a private repo for free.

Is git the ideal database for an RSS reader? No - but it is a pragmatic one for these design goals. Your feeds and posts live as simple JSONL files in a repo, and when two machines diverge, blogtato merges them automatically based on timestamps. You never have to resolve conflicts or touch git yourself - blog sync handles everything. There's no additional server to run, no account to create, no continuous network dependency.

Even though git was not design to store databases, to anyone who uses blogtato as intended (a personal RSS client) the repo stays small and syncs are fast. It is not scalable to large archives at not technically optimal - but the trad-off is worth it.

How to enable git based sync

To set it up, create a private repo on your git host, then:

# On your first machine
blog clone user/repo

# From now on, sync fetches feeds and pushes/pulls from the remote
blog sync

On another machine, run the same blog clone to pull down your feeds and posts.