Skip to content
RSS-to-maildir converter.
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


About imm

In a nutshell

Technically, imm is a little tool that retrieves a list of RSS/Atom feeds and fills a maildir with new items.

Functionally, imm makes it possible to use mail readers for feeds, for the sake of I-want-the-mutt-of-feed-readers zealots.

imm is written and configured in Haskell.

Informations about versions, dependencies, source repositories and contacts can be found in hackage.

Need & purpose

Following numerous RSS/Atom feeds needs organization and aggregation. Such needs are usually met by feed readers. Although there are a lot of those, some people still feel unsatisfied with the existing implementations.

The expected features of a feed reader could be defined as follows:

  • it retrieves items with the following attributes: an author, a date/time, a (possibly enriched) body;
  • items can be sorted, categorized, marked as read/unread, tagged, shared/forwarded;
  • items must be available from anywhere on the internet.

Luckily, there's already a widespread solution that provides such features: mail readers. Considering that, imm aims at projecting the RSS/Atom paradigm onto the mail one; this way, all the existing tools that work on mails can be leveraged to work on RSS/Atom feeds as well, no wheel reinventing.


imm does only one thing and does it well: it downloads an RSS/Atom feeds list, and for each new item it writes a file in a local maildir. How and where to write mail files is setup in imm's configuration file.

No SMTP sending, no IMAP serving, no aggregating: those should be performed by external tools.

Example usage

It is possible to setup a Google Reader-like on a server using the following steps:

  • schedule imm to check feeds regularly and write new items into a local maildir;
  • setup an IMAP server to publish the aforementioned maildir;
  • setup a webmail, bound to the IMAP server above, to read feeds from any computer connected to the internet.

Getting started

To get started, please fill the configuration file at ~/.config/imm/imm.hs with your feeds list and settings. An example configuration file is provided with the package. Configuring imm requires basic knowledge of Haskell language.

Something went wrong with that request. Please try again.