Skip to content

Getting Started

We recommend that you install Elfeed via ‘M-x package-install’. You may want to define a a global binding for the main entry point command ‘elfeed’.

emacs-lisp
(keymap-global-set "C-x w" #'elfeed)

Running the interactive function ‘elfeed’ will pop up the ‘*elfeed-search*’ buffer, which will display feed items.

  • g’: refresh view of the feed listing
  • G’: fetch feed updates from the servers
  • s’: update the search filter (see tags)
  • S’: update the search filter statically
  • c’: clear the search filter
  • @’: add current date to the filter
  • =: only include current feed
  • ~’: exclude current feed

This buffer will be empty until you add your feeds to the ‘elfeed-feeds’ list and initiate an update with ‘M-x elfeed-update’ (or press ‘G’ in the Elfeed buffer). This will populate the Elfeed database with entries.

emacs-lisp
;; Somewhere in your .emacs file
(setq elfeed-feeds
      '("https://nullprogram.com/feed/"
        "https://planet.emacslife.com/atom.xml"))

Another option for providing a feed list is with an OPML file. Running ‘M-x elfeed-load-opml’ will fill ‘elfeed-feeds’ with feeds listed in an OPML file. When ‘elfeed-load-opml’ is called interactively, it will automatically save the feedlist to your customization file, so you will only need to do this once.

If there are a lot of feeds, the initial update will take noticeably longer than normal operation because of the large amount of information being written the database. Future updates will only need to write new or changed data. If updating feeds slows down Emacs too much for you, reduce the number of concurrent fetches via ‘elfeed-set-max-connections’.

If you’re getting many "Queue timeout exceeded" errors, increase the fetch timeout via ‘elfeed-set-timeout’.

emacs-lisp
(setf url-queue-timeout 30)

From the search buffer there are a number of ways to interact with entries. Entries are selected by placing the point over an entry. Multiple entries are selected at once by using an active region.

  • RET’: view selected entry in a buffer
  • b’: open selected entries in your browser
  • B’: open selected entries in your secondary browser
  • y’: copy selected entries URL to the clipboard
  • r’: tag selected entries as read (‘C-u r’ to tag all)
  • u’: tag selected entries as unread (‘C-u u’ to tag all)
  • +’: add a specific tag to selected entries
  • -’: remove a specific tag from selected entries
  • m’: mark candidate
  • M’: unmark candidate (‘C-u M’ to unmark all)
  • t’: set title of selected entry
  • T’: set title of selected feed