imm: Execute arbitrary actions for each unread element of RSS/Atom feeds

[ library, program, public-domain, web ] [ Propose Tags ]

Cf README file

[Skip to Readme]
Dependencies aeson, ansi-wl-pprint, atom-conduit (>=0.4), base (==4.*), blaze-html, blaze-markup, bytestring, case-insensitive, chunked-data (>=0.3.0), comonad, conduit, conduit-combinators, connection, containers, directory (>=, dyre, fast-logger, filepath, free, hashable, HaskellNet, HaskellNet-SSL (>=, http-client (>=0.4.30), http-client-tls, http-types, imm, mime-mail, mono-traversable (>=1.0.0), monoid-subclasses, network, opml-conduit (>=0.6), optparse-applicative, rainbow, rainbox, rss-conduit (==0.3.*), safe-exceptions, tagged, text, time, timerep (>=, tls, transformers, uri-bytestring, xml, xml-conduit [details]
License LicenseRef-OtherLicense
Author kamaradclimber, koral
Maintainer koral <>
Revised Revision 1 made by koral at Tue Aug 7 21:43:27 UTC 2018
Category Web
Home page
Source repo head: git clone git://
Uploaded by koral at Mon Oct 24 21:36:08 UTC 2016
Distributions NixOS:
Executables imm
Downloads 6740 total (64 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-10-29 [all 1 reports]
Hackage Matrix CI




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Readme for imm-

[back to package description]


imm is a tool to execute arbitrary actions for each new element from RSS/Atom feeds (e.g. sending a mail, or writing a file).

imm is written and configured in Haskell.

Technical documentation is available at hackage.

To get started, please consult documentation of Imm.Boot module.

Example workflows

Online feed reader

For the sake of I-want-the-mutt-of-feed-readers zealots, it is possible to turn any mail reader into a feed reader, by having imm send an e-mail with unread elements to an arbitrary address. You can then browse your feeds through your favourite mail reader, and leverage any mail-related tool on your feeds. Bonus points if your mail reader is online as you can now access your feeds from anywhere in the internet.

Check out Imm.Hooks.SendMail module.

Offline read-it-later

imm is able to store a local copy of unread elements, to read them later while offline for example. External links won't work offline though.

Check out Imm.Hooks.WriteFile module.

Example usage

  • Subscribe to a feed:

    imm subscribe
  • Import feeds from an OPML file:

    cat feeds.opml | imm import
  • List subscribed feeds:

    imm show
  • Unsubscribe from a feed:

    imm unsubscribe
  • Check for new elements without executing any action:

    imm check
  • Execute configured actions for each new element from subscribed feeds:

    imm run