Sfeed: simple RSS and Atom parser

Last modification on

Sfeed is a RSS and Atom parser (and some format programs).

It converts RSS or Atom feeds from XML to a TAB-separated file. There are formatting programs included to convert this TAB-separated format to various other formats. There are also some programs and scripts included to import and export OPML and to fetch, filter, merge and order feed items.

For the most (up-to-date) information see the README.


git clone git://git.codemadness.org/sfeed


You can browse the source-code at:

Download releases

Releases are available at:

Build and install

$ make
# make install

Screenshot and examples

Screenshot of sfeed piped to sfeed_plain using dmenu in vertical-list mode

The above screenshot uses the sfeed_plain format program with dmenu. This program outputs the feed items in a compact way per line as plain-text to stdout. The dmenu program reads these lines from stdin and displays them as a X11 list menu. When an item is selected in dmenu it prints this item to stdout. A simple written script can then filter for the URL in this output and do some action, like opening it in some browser or open a podcast in your music player.

For example:

url=$(sfeed_plain "$HOME/.sfeed/feeds/"* | dmenu -l 35 -i | \
	sed -n 's@^.* \([a-zA-Z]*://\)\(.*\)$@\1\2@p')
test -n "${url}" && $BROWSER "${url}"

However this is just one way to format and interact with feed items. See also the README for other practical examples.

Below are some examples of output that are supported by the included format programs:

There is also a curses UI front-end, see the page sfeed_curses. It is now part of sfeed.


Here are some videos of other people showcasing some of the functionalities of sfeed, sfeed_plain and sfeed_curses. To the creators: thanks for making these!