NEWSBEUTER(1)

๐Ÿ“ฆ version 2.9, in fedora 43

โœจ NEWSBEUTER(1) โ€” the manual, but make it a group chat โœจ

okay bestie, sit down, hydrate, because we're reading the manual for newsbeuter โ€” the NEWSBEUTER(1) page, part one of five ๐Ÿ’–. It's an RSS/Atom feed reader for text terminals. Yes, terminals. Yes, it's iconic. Let's go ๐Ÿฆ‹


๐ŸŒธ NAME ๐ŸŒธ

newsbeuter โ€” an RSS/Atom feed reader for text terminals ๐Ÿ’…


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

newsbeuter [-r] [-e] [-i opmlfile] [-u urlfile] [-c cachefile] [-C
configfile] [-X] [-o] [-x <command> ...] [-h]

literally the whole vibe in one line, no cap โœจ


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

newsbeuter is an RSS/Atom feed reader for text terminals. RSS and Atom are a number of widely-used XML formats to transmit, publish and syndicate articles, for example news or blog articles. Newsbeuter is designed to be used on text terminals on Unix or Unix-like systems such as Linux, BSD or Mac OS X. ๐Ÿ‘‘

so like. it's a feed reader that lives in your terminal. it eats XML, it spits out articles. it runs on Linux, BSD, Mac OS X โ€” the Unix-y girlies ๐Ÿซถ


๐Ÿ’… OPTIONS ๐Ÿ’…

the flags. the little letters. the main characters of the command line ๐ŸŒˆ

  • -h โ€” Display help ๐Ÿ™‹
  • -r โ€” Refresh feeds on start ๐Ÿ”„
  • -e โ€” Export feeds as OPML to stdout ๐Ÿ“ค
  • -X โ€” Clean up cache thoroughly (i.e. reduce it in size if possible) ๐Ÿงน
  • -v, -V โ€” Get version information about newsbeuter and the libraries it uses ๐Ÿ“‹
  • -i opmlfile โ€” Import an OPML file ๐Ÿ“ฅ
  • -u urlfile โ€” Use an alternative URL file ๐Ÿ”—
  • -c cachefile โ€” Use an alternative cache file ๐Ÿ—„๏ธ
  • -C configfile โ€” Use an alternative configuration file โš™๏ธ
  • -x command ... โ€” Execute one or more commands to run newsbeuter unattended. Currently available commands are "reload" and "print-unread". ๐Ÿค–
  • -o โ€” Active offline reading mode. When Google Reader synchronization mode is configured, then the list of feeds will not be loaded from Google Reader, but instead from the local cache. This makes it possible to read locally cached articles even without internet connection to connect to Google Reader. โœˆ๏ธ
  • -l loglevel โ€” Generate a loglevel with a certain loglevel. Valid loglevels are 1 to 6. An actual logfile will only be written when you provide a logfile name. ๐Ÿ“
  • -d logfile โ€” Use this logfile as output when logging debug messages. Please note that this only works when providing a loglevel. ๐Ÿ›
  • -E file โ€” Export a list of read articles (resp. their GUIDs). This can be used to transfer information about read articles between different computers. ๐Ÿ’พ
  • -I file โ€” Import a list of read articles and mark them as read if they are held in the cache. This is to be used in conjunction with the -E commandline parameter. ๐Ÿ“‚

๐ŸŒŸ FIRST STEPS ๐ŸŒŸ

After you've installed newsbeuter, you can run it for the first time by typing "newsbeuter" on your command prompt. This will bring you the following message:

Error: no URLs configured. Please fill the file /home/ak/.newsbeuter/urls with RSS feed URLs or import an OPML file.

newsbeuter 2.4
usage: ./newsbeuter [-i <file>|-e] [-u <urlfile>] [-c <cachefile>] [-x <command> ...] [-h]
                -e              export OPML feed to stdout
                -r              refresh feeds on start
                -i <file>       import OPML file
                -u <urlfile>    read RSS feed URLs from <urlfile>
                -c <cachefile>  use <cachefile> as cache file
                -C <configfile> read configuration from <configfile>
                -X              clean up cache thoroughly
                -x <command>... execute list of commands
                -o              activate offline mode (only applies to Google Reader synchronization mode)
                -q              quiet startup
                -v              get version information
                -l <loglevel>   write a log with a certain loglevel (valid values: 1 to 6)
                -d <logfile>    use <logfile> as output log file
                -E <file>       export list of read articles to <file>
                -I <file>       import list of read articles from <file>
                -h              this help

This means that newsbeuter can't start without any configured feeds. To add feeds to newsbeuter, you can either add URLs to the configuration file $HOME/.newsbeuter/urls or you can import an OPML file by running "newsbeuter -i blogroll.opml". To manually add URLs, open the file with your favorite text editor and add the URLs, one per line:

http://rss.cnn.com/rss/cnn_topstories.rss
http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml

If you need to add URLs that have restricted access via username/password, simply provide the username/password in the following way:

http://username:password@hostname.domain.tld/feed.rss

In order to protect username and password, make sure that $HOME/.newsbeuter/urls has the appropriate permissions. Newsbeuter also makes sure that usernames and passwords within URLs aren't displayed in its user interface. In case there is a @ in the username, you need to write it as %40 instead so that it can be distinguished from the @ that separates the username/password part from the hostname part. ๐Ÿ”

bestie. pls. chmod that urls file. your password is sitting there in plain text and it's giving exposed ๐Ÿ˜ญ

You can also configure local files as feeds, by prefixing the local path with "file://" and adding it to the $HOME/.newsbeuter/urls file:

file:///var/log/rss_eventlog.xml

Now you can run newsbeuter again, and it will present you with a controllable list of the URLs that you configured previously. You can now start downloading the feeds, either by pressing "R" to download all feeds, or by pressing "r" to download the currently selected feed. You can then select a feed you want to read, and by pressing "Enter", you can go to the article list for this feed. This works even while the downloading is still in progress. You can now see the list of available articles by their title. A "N" on the left indicates that an article wasn't read yet. Pressing Enter brings you to the content of the article. You can scroll through this text, and also run a browser (default: lynx) to view the complete article if the content is empty or just an abstract or a short description. Pressing "q" brings you back to the article list, and pressing "q" again brings you back to the feed list. Pressing "q" a third time then closes newsbeuter. ๐ŸŽฎ

Newsbeuter caches the article that it downloads. This means that when you start newsbeuter again and reload a feed, the old articles can still be read even if they aren't in the current RSS feeds anymore. Optionally you can configure how many articles shall be preserved by feed so that the article backlog doesn't grow endlessly (see "max-items" below). ๐Ÿ—ƒ๏ธ

Newsbeuter also uses a number of measures to preserve the users' and feed providers' bandwidth, by trying to avoid unnecessary feed downloads through the use of conditional HTTP downloading. It saves every feed's "Last-Modified" and "ETag" response header values (if present) and advises the feed's HTTP server to only send data if the feed has been updated by modification date/time or "ETag" header. This doesn't only make feed downloads for RSS feeds with no new updates faster, it also reduces the amount of transferred data per request. Conditional HTTP downloading can be optionally disabled per feed by using the "always-download" configuration command. ๐ŸŒ

Several aspects of newsbeuter's behaviour can be configured via a configuration file, by default $HOME/.newsbeuter/config. This configuration file contains lines in the form "<config-command> <arg1> ...". The configuration file can also contain comments, which start with the # character and go as far as the end of line. If you need to enter a configuration argument that contains spaces, use quotes (") around the whole argument. It's even possible to integrate the output of external commands into the configuration. The text between two backticks (""`) is evaluated as shell command, and its output is put on its place instead. This works like backtick evaluation in Bourne-compatible shells and allows users to use external information from the system within the configuration. ๐Ÿง™

Searching for articles is possible in newsbeuter, too. Just press the "/" key, enter your search phrase, and the title and content of all articles are searched for it. When you do a search from the list of feeds, all articles of all feeds will be searched. When you do a search from the article list of a feed, only the articles of the currently viewed feed are searched. When opening an article from a search result dialog, the search phrase is highlighted. ๐Ÿ”

The history of all your searches is saved to the filesystem, to ~/.newsbeuter/history.search. By default, the last 100 search phrases are stored, but this limited can be influenced through the "history-limit" configuration variable. To disable search history saving, simply set the history-limit to 0. ๐Ÿ•ฐ๏ธ


โš™๏ธ CONFIGURATION COMMANDS โš™๏ธ

this is where you customize your whole little world. every command, every default, every example โ€” all of it, no skipping ๐Ÿ’œ

  • always-display-description (parameters: [true/false]; default value: false) โ€” If true, then the description will always displayed even if e.g. a content:encoded tag has been found. (example: always-display-description true) ๐Ÿ‘€
  • always-download (parameters: <rssurl> [<rssurl>]; default value: n/a) โ€” The parameters of this configuration command are one or more RSS URLs. These URLs will always get downloaded, regardless of their Last-Modified timestamp and ETag header. (example: always-download "http://www.n-tv.de/23.rss") โฌ‡๏ธ
  • article-sort-order (parameters: <sortfield>[-<direction>]; default value: date) โ€” The sortfield specifies which article property shall be used for sorting (currently available: date, title, flags, author, link, guid). The optional direction specifies the sort direction ("asc" specifies ascending sorting, "desc" specifies descending sorting. for date, "desc" is default, for all others, "asc" is default). (example: article-sort-order author-desc) ๐Ÿ”€
  • articlelist-format (parameters: <format>; default value: "%4i %f %D %6L %?T?;%-17T; ?%t") โ€” This variable defines the format of entries in the article list. See the respective section in the documentation for more information on format strings (note that the semicolon should actually be a vertical bar; this is a limitation in AsciiDoc). (example: articlelist-format "%4i %f %D %?T?;%-17T; ?%t") ๐ŸŽจ
  • auto-reload (parameters: [yes/no]; default value: no) โ€” If enabled, all feeds will be automatically reloaded at start up and then continuously after a certain time has passed (see reload-time). (example: auto-reload yes) โ™ป๏ธ

okay that's part one, and there's more coming so don't go anywhere bestie ๐Ÿ’–

bind-key

parameters: <key> <operation> [<dialog>] ยท default value: n/a

Okay so this one is THE vibe-setter of the whole config file bestie. You bind <key> to <operation>, meaning literally whenever you press <key>, the <operation> runs (as long as it makes sense in the dialog you're in rn). The full list of available operations is down below ๐Ÿ‘‡

And plot twist โ€” you can optionally specify a dialog. If you do, the keybinding only gets added to that one dialog. The dialogs you can pick from are "all" (which is the default if you don't name one), "feedlist", "filebrowser", "help", "articlelist", "article", "tagselection", "filterselection", "urlview" and "podbeuter". โœจ

bind-key ^R reload-all

bookmark-cmd

parameters: <bookmark-command> ยท default value: ""

Set this and <bookmark-command> becomes your bookmarking plugin ๐ŸŽ€. The documentation on bookmarking has the whole lore if you want it.

bookmark-cmd "~/bin/delicious-bookmark.sh"

bookmark-interactive

parameters: [yes/no] ยท default value: no

Set it to yes and newsbeuter knows your configured bookmark command is an interactive program ๐Ÿ’ฌ.

bookmark-interactive yes

bookmark-autopilot

parameters: [yes/no] ยท default value: no

Set to yes and your bookmark command just goes, no further input asked from the user โ€” unless the url or the title can't be found or guessed ๐Ÿ™ˆ.

bookmark-autopilot yes

browser

parameters: <browser-command> ยท default value: lynx

The browser command used when you open an article in the browser ๐ŸŒ. If <browser-command> contains %u, then it's used as the complete commandline and %u gets swapped out for the URL that shall be opened.

browser "w3m %u"

cache-file

parameters: <path> ยท default value: "~/.newsbeuter/cache.db"

Sets the cache file ๐Ÿ“. Highkey useful if your home directory's filesystem doesn't support proper locking (looking at you, NFS ๐Ÿ‘€).

cache-file "/tmp/testcache.db"

cleanup-on-quit

parameters: [yes/no] ยท default value: yes

If yes, then on quit the cache gets locked and superfluous feeds and items get removed โ€” like feeds that can't be found in the urls configuration file anymore ๐Ÿงนโœจ.

cleanup-on-quit no

color

parameters: <element> <fgcolor> <bgcolor> [<attr> ...] ยท default value: n/a

Sets the foreground color, background color and the optional attributes for a certain element ๐ŸŽจ.

color background white black

confirm-exit

parameters: [yes/no] ยท default value: no

If yes, newsbeuter will ask you whether you really wanna quit newsbeuter ๐Ÿฅบ.

confirm-exit yes

parameters: <file> ยท default value: ""

Set a cookie cache ๐Ÿช. If set, cookies get cached โ€” meaning read from and written to โ€” in this file.

cookie-cache "~/.newsbeuter/cookies.txt"

datetime-format

parameters: <date/time format> ยท default value: %b %d

This format decides the date/time format shown in the article list ๐Ÿ“…. For the detailed documentation on allowed formats, go consult the manpage of strftime(3).

datetime-format "%D, %R"

define-filter

parameters: <name> <filter> ยท default value: n/a

With this you can predefine filters ๐Ÿ”, which you can later pick from a list, and which then get applied after selection. Chef's kiss for filters you need constantly and you're not about to retype them every single time.

define-filter "all feeds with fun tag" "tags # \\"fun\\""

delete-read-articles-on-quit

parameters: [yes/no] ยท default value: "no"

If set to "yes", then all read articles get deleted when you quit newsbeuter ๐Ÿ’€.

delete-read-articles-on-quit yes

display-article-progress

parameters: [yes/no] ยท default value: yes

If yes, a read progress (in percent) is displayed in the article view ๐Ÿ“Š. Otherwise, no read progress is displayed.

display-article-progress no

download-retries

parameters: <number retries> ยท default value: 1

How many times newsbeuter shall try to successfully download a feed before giving up ๐Ÿ”. This one's here to improve download success on slow and shaky connections, like via a TOR proxy.

download-retries 4

download-full-page

parameters: [yes/no] ยท default value: no

If yes, then for all feed items with no content but with a link, the link gets downloaded and the result is used as content instead ๐Ÿ”—. Heads up bestie, this may significantly increase the download times of "empty" feeds.

download-full-page yes

download-timeout

parameters: <seconds> ยท default value: 30

The number of seconds newsbeuter shall wait when downloading a feed before giving up โณ. Again, this exists to improve download success on slow and shaky connections such as via a TOR proxy.

download-timeout 60

error-log

parameters: <path> ยท default value: ""

If set, then user errors (e.g. errors regarding defunct RSS feeds) get logged to this file ๐Ÿ“.

error-log "~/.newsbeuter/error.log"

external-url-viewer

parameters: <command> ยท default value: ""

If set, then "show-urls" will pipe the current article to a specific external tool instead of using the internal URL viewer ๐Ÿ”ญ. Perfect for integrating tools such as urlview.

external-url-viewer "urlview"

feed-sort-order

parameters: <sortorder> ยท default value: none

If set to "firsttag", the feeds in the feed list get sorted by their first tag in the urls file ๐Ÿท๏ธ.

feed-sort-order firsttag

feedlist-format

parameters: <format> ยท default value: "%4i %n %11u %t"

This variable defines the format of entries in the feed list ๐Ÿ“‹. See the respective section in the documentation for more info on format strings.

feedlist-format " %n %4i - %11u -%> %t"

oldreader-flag-share

parameters: <flag> ยท default value: ""

If this is set and The Old Reader support is used, then all articles flagged with the specified flag are being "shared" in The Old Reader, so the people who follow you can see it ๐Ÿ‘€.

oldreader-flag-share "a"

oldreader-flag-star

parameters: <flag> ยท default value: ""

If this is set and The Old Reader support is used, then all articles flagged with the specified flag are being "starred" in The Old Reader and show up in the list of "Starred items" โญ.

oldreader-flag-star "b"

oldreader-login

parameters: <login> ยท default value: ""

This variable sets your The Old Reader login for The Older Reader support ๐Ÿ”‘.

oldreader-login "your-login"

oldreader-min-items

parameters: <number> ยท default value: 20

This variable sets the number of articles that are loaded from The Old Reader per feed ๐Ÿ“š.

oldreader-min-items 100

oldreader-password

parameters: <password> ยท default value: ""

This variable sets your The Old Reader password for The Old Reader support ๐Ÿคซ.

oldreader-password "your-password"

oldreader-passwordfile

parameters: <path-to-file ยท default value: ""

A more secure alternative to the above, by storing your password elsewhere in your system ๐Ÿ›ก๏ธ.

oldreader-passwordfile "path-to-file"

oldreader-show-special-feeds

parameters: [yes/no] ยท default value: yes

If this is set, then "special feeds" like "People you follow" (articles shared by people you follow), "Starred items" (your starred articles) and "Shared items" (your shared articles) appear in your subscription list ๐Ÿ’ซ.

oldreader-show-special-feeds "no"

feedhq-flag-share

parameters: <flag> ยท default value: ""

If this is set and FeedHQ support is used, then all articles flagged with the specified flag are being "shared" in FeedHQ so the people who follow you can see it ๐Ÿ‘€.

feedhq-flag-share "a"

feedhq-flag-star

parameters: <flag> ยท default value: ""

If this is set and FeedHQ support is used, then all articles flagged with the specified flag are being "starred" in FeedHQ and show up in the list of "Starred items" โญ.

feedhq-flag-star "b"

feedhq-login

parameters: <login> ยท default value: ""

This variable sets your FeedHQ login for FeedHQ support ๐Ÿ”‘.

feedhq-login "your-login"

feedhq-min-items

parameters: <number> ยท default value: 20

This variable sets the number of articles that are loaded from FeedHQ per feed ๐Ÿ“š.

feedhq-min-items 100

feedhq-password

parameters: <password> ยท default value: ""

This variable sets your FeedHQ password for FeedHQ support ๐Ÿคซ.

feedhq-password "your-password"

feedhq-passwordfile

parameters: <path-to-file ยท default value: ""

A more secure alternative to the above, by storing your password elsewhere in your system ๐Ÿ›ก๏ธ.

feedhq-passwordfile "path-to-file"

feedhq-show-special-feeds

parameters: [yes/no] ยท default value: yes

If this is set, then "special feeds" like "People you follow" (articles shared by people you follow), "Starred items" (your starred articles) and "Shared items" (your shared articles) appear in your subscription list ๐Ÿ’ซ.

feedhq-show-special-feeds "no"

goto-first-unread

parameters: [yes/no] ยท default value: yes

If set to yes (which, bestie, is the default), then the first unread article gets selected whenever a feed is entered ๐ŸŽฏ.

goto-first-unread no

goto-next-feed

parameters: [yes/no] ยท default value: yes

If set to yes, then the next-unread and prev-unread keys will go search other feeds for unread articles once everything in the current feed is read. If set to no, then those next-unread and prev-unread keys stop in the current feed ๐Ÿ›‘.

goto-next-feed no

highlight

parameters: <target> <regex> <fgcolor> [<bgcolor> [<attribute> ...]] ยท default value: n/a

With this command you can highlight text parts in the feed list, the article list and the article view โœจ๐Ÿ–๏ธ. For the detailed documentation, see the chapter on highlighting.

highlight all "newsbeuter" red

highlight-article

parameters: <filterexpr> <fgcolor> <bgcolor> [<attribute> ...] ยท default value: n/a

With this command you can highlight articles in the article list if they match a filter expression ๐Ÿ’…. For the detailed documentation, see the chapter on highlighting.

highlight-article "author =~ \\"Andreas Krennmair\\"" white red bold

history-limit

parameters: <number> ยท default value: 100

Defines the maximum number of entries of commandline resp. search history to be saved ๐Ÿ•ฐ๏ธ. Wanna disable history saving entirely? Set history-limit to 0.

history-limit 0
  • html-renderer โ€” parameters: <path>; default: internal. Set this to "internal" and bestie, the built-in HTML renderer handles everything, no cap ๐Ÿ’…. Set it to literally anything else and that command gets run instead โ€” the HTML that needs rendering gets piped straight into the command's stdin, and whatever the program spits out is what you see. That's the whole reason you can flex with external renderers like w3m, links or lynx. (example: html-renderer "w3m -dump -T text/html")
  • http-auth-method โ€” parameters: <method>; default: any. Picks the HTTP authentication method, periodt. The allowed values are: any, basic, digest, digest_ie (only available with libcurl 7.19.3 and newer, iykyk), gssnegotiate, ntlm, anysafe. (example: http-auth-method digest)
  • ignore-article โ€” parameters: <feed> <filterexpr>; default: n/a. If a downloaded article from <feed> matches <filterexpr>, it gets straight-up ignored and never presented to you ๐Ÿ™ˆ. There's a whole "kill file" section below that explains this more, so go read it. (example: ignore-article "*" "title =~ \"Windows\"")
  • ignore-mode โ€” parameters: [download/display]; default: download. This one decides how an article gets ignored (see ignore-article, it's giving tag team energy). Set it to "download" and it's ignored during the download/parsing phase โ€” which is the default โ€” so it literally never gets written to the cache. Set it to "display" and it's ignored when you're looking at articles, but it's still kept in the cache. (example: ignore-mode "display")
  • include โ€” parameters: <path>; default: n/a. Lets you pull other files in and have them read as config files too ๐Ÿซถ. This is so useful for splitting your config into separate little files โ€” like a key config, a color config, etc. Keep it organized, main character energy. (example: include "~/.newsbeuter/colors")
  • keep-articles-days โ€” parameters: <days>; default: 0. Set this to a number greater than 0 and only articles published within the last <n> days get kept โ€” everything older gets deleted โœจ. Leave it at 0 (the default) and this option is just not active at all. (example: keep-articles-days 30)
  • macro โ€” parameters: <macro key> <command list>; default: n/a. Defines a macro key plus a list of commands to run when the macro prefix and the macro key get pressed. One keypress, whole routine slayed ๐Ÿ”ฅ. (example: macro k open ; reload ; quit)
  • mark-as-read-on-hover โ€” parameters: [yes/no]; default: no. Set it to yes and every article you select in the article list gets marked as read. (example: mark-as-read-on-hover yes)
  • max-download-speed โ€” parameters: <number>; default: 0. Set it to a number greater than 0 and the download speed per download is capped at that limit, in kB. (example: max-download-speed 50)
  • max-items โ€” parameters: <number>; default: 0. Sets the max number of articles to keep per feed. Set it to 0 and literally all articles are kept, no limit bestie. (example: max-items 100)
  • notify-format โ€” parameters: <string>; default: "newsbeuter: finished reload, %f unread feeds (%n unread articles total)". The format string used for formatting notifications. Peep the chapter on format strings for the deets. (example: notify-format "%d new articles (%n unread articles, %f unread feeds)")
  • notify-program โ€” parameters: <path>; default: "". If you set this, that program gets executed whenever new articles arrive (through a reload) or whenever notify-always is true. The first parameter passed to the program is the notification message. (example: notify-program "~/bin/my-notifier")
  • notify-always โ€” parameters: [yes/no]; default: no. Set it to no and notifications only happen when there are actually new feeds or articles. Set it to yes and you get notified regardless. (example: notify-always yes)
  • notify-screen โ€” parameters: [yes/no]; default: no. Set it to yes and a "privacy message" gets sent to the terminal with a notification about new articles ๐Ÿ’Œ. This is especially useful if you're running terminal emulations like GNU screen that implement privacy messages. (example: notify-screen yes)
  • notify-xterm โ€” parameters: [yes/no]; default: no. Set it to yes and the xterm window title becomes your notification message about new articles. (example: notify-xterm yes)
  • notify-beep โ€” parameters: [yes/no]; default: no. Set it to yes and the speaker beeps when there are new articles ๐Ÿ”Š. (example: notify-beep yes)
  • opml-url โ€” parameters: <url> ...; default: "". If the OPML online subscription mode is enabled, then your feed list gets pulled from the OPML file sitting at this location. And bestie, you can optionally drop more than one URL in here โ€” all the OPML URLs you list get taken into account when loading the feed list ๐ŸŒˆ. (example: opml-url "http://host.domain.tld/blogroll.opml" "http://example.com/anotheropmlfile.opml")
  • pager โ€” parameters: [<path>/internal]; default: internal. Set it to "internal" and you get the built-in pager. Otherwise the article gets rendered into a temporary file and then shown with the pager you configured. If the pager path is an empty string, the content of the "PAGER" environment variable gets used instead. And if the pager path contains the placeholder "%f", that placeholder gets swapped out for the temporary filename ๐Ÿ‘‘. (example: less %f)
  • podcast-auto-enqueue โ€” parameters: [yes/no]; default: no. Set it to yes and every podcast URL found in your articles gets added to the podcast download queue. There's a whole section in the documentation about podcast support in newsbeuter if you wanna go deeper. (example: podcast-auto-enqueue yes)
  • prepopulate-query-feeds โ€” parameters: [yes/no]; default: no. Set it to yes and all query feeds get prepopulated with articles on startup, so they're already loaded when you roll in ๐Ÿ’…. (example: prepopulate-query-feeds yes)
  • proxy โ€” parameters: <server:port>; default: n/a. Sets the proxy used for downloading RSS feeds. (example: proxy localhost:3128)
  • proxy-auth โ€” parameters: <auth>; default: n/a. Sets the proxy authentication string. (example: proxy-auth user:password)
  • proxy-auth-method โ€” parameters: <method>; default: any. Sets the proxy authentication method. Allowed values: any, basic, digest, digest_ie (only available with libcurl 7.19.3 and newer), gssnegotiate, ntlm, anysafe. (example: proxy-auth-method ntlm)
  • proxy-type โ€” parameters: <type>; default: http. Sets the proxy type. Allowed values: http, socks4, socks4a, socks5. (example: proxy-type socks5)
  • refresh-on-startup โ€” parameters: [yes/no]; default: no. Set it to yes and all feeds get reloaded the moment newsbeuter starts up ๐Ÿ”„. This is equivalent to the -r commandline option. (example: refresh-on-startup yes)
  • reload-only-visible-feeds โ€” parameters: [yes/no]; default: no. Set it to yes and manually reloading all feeds only reloads the feeds that are currently visible โ€” like if a filter or a tag is set. (example: reload-only-visible-feeds yes)
  • reload-time โ€” parameters: <number>; default: 60. The number of minutes between automatic reloads โฐ. (example: reload-time 120)
  • reload-threads โ€” parameters: <number>; default: 1. How many parallel reload threads get started when all feeds are reloaded. (example: reload-threads 3)
  • reset-unread-on-update โ€” parameters: <url> ...; default: n/a. With this you hand over a list of RSS feed URLs where, for their articles, the unread flag gets reset if an article has been updated โ€” meaning its content changed. This is especially useful for RSS feeds where single articles get updated after publication and you wanna be notified about those updates ๐Ÿ””. (example: reset-unread-on-update "http://blog.fefe.de/rss.xml?html")
  • save-path โ€” parameters: <path>; default: ~/. The default path where articles get saved to. If you specify an invalid path, the current directory gets used instead. (example: save-path "~/Saved Articles")
  • search-highlight-colors โ€” parameters: <fgcolor> <bgcolor> [<attribute> ...]; default: black yellow bold. This one sets the highlight colors used when you're searching for text from the article view โœจ. (example: search-highlight-colors white black bold)
  • show-keymap-hint โ€” parameters: [yes/no]; default: yes. Set it to no and the keymap hints at the bottom of the screen won't be displayed. (example: show-keymap-hint no)
  • show-read-feeds โ€” parameters: [yes/no]; default: yes. Set it to yes and all feeds get listed, including the ones with no unread articles. Set it to no and only feeds with one or more unread articles are listed. (example: show-read-feeds no)
  • show-read-articles โ€” parameters: [yes/no]; default: yes. Set it to yes and all articles of a feed are listed in the article list. Set it to no and only unread articles are listed. (example: show-read-articles no)
  • suppress-first-reload โ€” parameters: [yes/no]; default: no. Set it to yes and the first automatic reload gets suppressed โ€” but only if auto-reload is set to yes. (example: suppress-first-reload yes)
  • swap-title-and-hints โ€” parameters: [yes/no]; default: no. Set it to yes and the title at the top of the screen and the keymap hints at the bottom of the screen get swapped ๐Ÿ”ƒ. (example: swap-title-and-hints yes)
  • text-width โ€” parameters: <number>; default: 0. Set it to a number greater than 0 and all HTML gets rendered to that maximum line length. Set it to 0 and the terminal width is used instead. (example: text-width 72)
  • ttrss-flag-publish โ€” parameters: <character>; default: "". If this is set and Tiny Tiny RSS support is being used, then all articles flagged with the flag you specify get marked as "published" in Tiny Tiny RSS. (example: ttrss-flag-publish "b")
  • ttrss-flag-star โ€” parameters: <character>; default: "". If this is set and Tiny Tiny RSS support is being used, then all articles flagged with the flag you specify get "starred" in Tiny Tiny RSS โญ. (example: ttrss-flag-star "a")
  • ttrss-login โ€” parameters: <username>; default: "". Sets the username for use with Tiny Tiny RSS. (example: ttrss-login "admin")
  • ttrss-mode โ€” parameters: [multi/single]; default: multi. Configures the mode Tiny Tiny RSS is used in. In single-user mode, login and password are used for HTTP authentication โ€” while in multi-user mode, they're used for authenticating with Tiny Tiny RSS itself. (example: ttrss-mode "single")
  • ttrss-password (parameters: <password>; default value: "") โ€” sets the password for Tiny Tiny RSS, bestie. (example: ttrss-password "mypassword")
  • ttrss-passwordfile (parameters: <path-to-file; default value: "") โ€” the glow-up version of the one above: stash your password somewhere else on your system instead so it's not sitting right there in the config. (example: ttrss-passwordfile "path-to-file")
  • ttrss-url (parameters: <url>; default value: "") โ€” where does your Tiny Tiny RSS live? Drop that URL here. (example: ttrss-url "http://example.com/ttrss/")
  • unbind-key (parameters: <key> [<dialog>]; default value: n/a) โ€” yeets a key binding into the void, so pressing <key> does โœจabsolutely nothingโœจ. You can name a dialog (the full list lives up in bind-key, mwah) and if you do, the unbinding only applies to that one dialog. (example: unbind-key R)
  • urls-source (parameters: <source>; default value: "local") โ€” tells newsbeuter where to go fetch your URLs from. Default vibe is ~/.newsbeuter/urls. Other options, no cap: "opml" flips on OPML online subscription mode, "ttrss" turns on Tiny Tiny RSS support, "oldreader" is The Old Reader, "newsblur" is NewsBlur, and "feedhq" is FeedHQ. (example: urls-source "oldreader")
  • use-proxy (parameters: [yes/no]; default value: no) โ€” say yes and all your RSS downloads ride through the proxy you configured. (example: use-proxy yes)
  • user-agent (parameters: <user agent string>; default value: "") โ€” set this to any non-zero-length string and it becomes the HTTP User-Agent header on every single HTTP request. (example: user-agent "Lynx/2.8.5rel.1 libwww-FM/2.14")

๐ŸŽฎ AVAILABLE OPERATIONS ๐ŸŽฎ

Every little thing newsbeuter can do, plus the key it's bound to out of the box. This is the lore. ๐Ÿ’…

  • open (default key: ENTER) โ€” opens whatever feed or article you're currently sitting on.
  • quit (default key: q) โ€” bails out of the program, or just backs up to the previous dialog, depending on the context you're in.
  • reload (default key: r) โ€” refreshes the feed you've got selected.
  • reload-all (default key: R) โ€” refreshes every feed. all of them. go off.
  • mark-feed-read (default key: A) โ€” marks every article in the currently selected feed as read.
  • mark-all-feeds-read (default key: C) โ€” marks articles in all feeds as read. the whole inbox, gone.
  • save (default key: s) โ€” saves the currently selected article to a file.
  • next-unread (default key: n) โ€” hops to the next unread article.
  • prev-unread (default key: p) โ€” hops back to the previous unread article.
  • next (default key: J) โ€” jumps to the next article.
  • prev (default key: K) โ€” jumps to the previous article.
  • random-unread (default key: ^K) โ€” jumps to a random unread article. chaos mode, lowkey iconic.
  • open-in-browser (default key: o) โ€” opens the URL tied to the current article.
  • open-in-browser-and-mark-read (default key: O) โ€” opens the current article's URL and flags the article as read.
  • help (default key: ?) โ€” runs the help screen.
  • toggle-source-view (default key: ^U) โ€” flips between the HTML view and the source view while you're in the article view.
  • toggle-article-read (default key: N) โ€” toggles the read flag on the currently selected article.
  • toggle-show-read-feeds (default key: l) โ€” toggles whether read feeds show up in your feed list at all.
  • show-urls (default key: u) โ€” shows every URL in the article as a list (kinda like urlview).
  • clear-tag (default key: ^T) โ€” clears the current tag.
  • set-tag (default key: t) โ€” selects a tag.
  • open-search (default key: /) โ€” opens the search dialog. Pro tip from the manpage itself: if you search from the article list, the search only covers the articles of the current feed โ€” otherwise it covers all articles.
  • goto-url (default key: #) โ€” opens the URL dialog, then opens whatever URL you typed in.
  • enqueue (default key: e) โ€” grabs the podcast download URL of the current article (if there even is one) and drops it in the podcast download queue. (more podcast tea is in the relevant section of the documentation, iykyk)
  • edit-urls (default key: E) โ€” lets you edit the list of subscribed URLs. newsbeuter launches whatever editor is in the $VISUAL environment variable; if that's unset it uses $EDITOR; and if that's unset too, fallback is "vi". Once you're done editing, newsbeuter reloads the URLs file.
  • reload-urls (default key: ^R) โ€” reloads the URLs configuration file.
  • redraw (default key: ^L) โ€” redraws the screen.
  • cmdline (default key: <colon>) โ€” opens the command line.
  • set-filter (default key: F) โ€” sets a filter.
  • select-filter (default key: f) โ€” picks one of your predefined filters.
  • clear-filter (default key: ^F) โ€” clears the filter you currently have set.
  • bookmark (default key: ^B) โ€” bookmarks the currently selected article or URL.
  • edit-flags (default key: ^E) โ€” edits the flags on the currently selected article.
  • next-unread-feed (default key: ^N) โ€” goes to the next feed that has unread articles. โš ๏ธ this only works from the article list.
  • prev-unread-feed (default key: ^P) โ€” goes to the previous feed with unread articles. again, only works from the article list.
  • next-feed (default key: j) โ€” goes to the next feed. only from the article list, bestie.
  • prev-feed (default key: k) โ€” goes to the previous feed. article list only.
  • delete-article (default key: D) โ€” deletes the currently selected article.
  • purge-deleted (default key: $) โ€” purges all the articles marked as deleted out of the article list.
  • view-dialogs (default key: v) โ€” shows you the list of open dialogs.
  • close-dialog (default key: ^X) โ€” closes the currently selected dialog.
  • next-dialog (default key: ^V) โ€” goes to the next dialog.
  • prev-dialog (default key: ^G) โ€” goes to the previous dialog.
  • pipe-to (default key: |) โ€” pipes the article into a command.
  • sort (default key: g) โ€” sorts feeds/articles by interactively picking the sort method.
  • revsort (default key: G) โ€” same thing but reversed, you pick the method interactively.
  • up (default key: UP) โ€” goes up one item in the list.
  • down (default key: DOWN) โ€” goes down one item in the list.
  • pageup (default key: PPAGE) โ€” goes up one page in the list.
  • pagedown (default key: NPAGE) โ€” goes down one page in the list.

๐Ÿท๏ธ TAGGING ๐Ÿท๏ธ

Newsbeuter lets you categorize โ€” or "tag", as we call it โ€” your RSS feeds. ๐Ÿ’– Every RSS feed can carry 0 or more tags. Once they're tagged, you can tell newsbeuter to only show the feeds that match a certain tag. It's a flexible, powerful way to organize your feeds, fr fr.

Normally your ~/.newsbeuter/urls file is just one RSS feed URL per line. To tag a feed, just stick the tag on the end as a single word, separated by blanks โ€” a space or a tab, whatever. If a tag needs to contain spaces, you must wrap it in quotes (") (peep the example below). A ~/.newsbeuter/urls file might look like:

http://blog.fefe.de/rss.xml?html interesting conspiracy news "cool stuff"
http://rss.orf.at/news.xml news orf
http://www.heise.de/newsticker/heise.rdf news interesting

So now when you start newsbeuter with this config, you can hit "t" to select a tag. Select "news" and boom, all three RSS feeds show up. Hit "t" again and pick the "conspiracy" tag and you'll only see the http://blog.fefe.de/rss.xml?html RSS feed. Press "^T" and the current tag gets cleared, showing all your RSS feeds again no matter what tags they're carrying.

Now, a special type of tag: ones that start with the tilde character ("~"). When newsbeuter finds one of these, the feed title gets set to the tag name (minus the ~ character). Which means you can give a feed literally any title you want in your feed list:

http://rss.orf.at/news.xml "~ORF News"

And another special type: tags starting with the exclamation mark. When one of these shows up, the feed gets hidden from the regular feed list, and its content can only be reached through a query feed:

http://rss.orf.at/news.xml "!ORF News (hidden)"

๐Ÿ“œ SCRIPTS AND FILTERS ๐Ÿ“œ

From version 0.4 on, newsbeuter has support for Snownews extensions. ๐Ÿงš The RSS readers Snownews and Liferea share a common way of extending themselves with custom scripts, and there are two mechanisms newsbeuter supports: "execurl" type scripts and "filter" type scripts.

An "execurl" script is any program that gets run, whose output then gets interpreted as an RSS feed. A "filter" script, meanwhile, gets fed the content of a URL you configured, and its output gets interpreted as an RSS feed.

Configuring this is simple and straight-forward, no stress. Just add lines like these to your ~/.newsbeuter/urls file:

exec:~/bin/execurl-script
filter:~/bin/filter-script:http://some.test/url

That first line is how you add an execurl script: start the line with "exec:" and then immediately append the path of the script that should be executed. If your script needs extra parameters, just quote the whole thing:

"exec:~/bin/execurl-script param1 param2"

The second line is how you add a filter script: start with "filter:", immediately append the script's path, then a colon (":"), then the URL of the file that should be fed to the script. And yep โ€” if the script needs parameters, quote it:

"filter:~/bin/filter-script param1 param2:http://url/foobar"

In both cases, the tagging feature from up above is still very much available:

exec:~/bin/execurl-script tag1 tag2 "quoted tag"
filter:~/bin/filter-script:http://some.test/url tag3 tag4 tag5

A whole collection of these extension scripts lives at: http://kiza.kcore.de/software/snownews/snowscripts/extensions

And if you wanna write your own extensions, go here for further instructions: http://kiza.kcore.de/software/snownews/snowscripts/writing

๐Ÿ’ฌ COMMAND LINE ๐Ÿ’ฌ

ok so listen bestie, newsbeuter is like every other text-oriented software ever and it has an internal commandline where you can โœจ change configuration variables on the fly โœจ and run your own little commands. it's giving flexible access to the functionality of newsbeuter, and it's especially useful if you're an advanced user. periodt.

to open the commandline, just type :. a : prompt pops up at the bottom of your screen, exactly like vi(m) or mutt do it (iykyk). then you type your command. hit the return key and boom โ€” the command runs (maybe it gives you feedback, maybe it doesn't, whatever) and the commandline closes. wanna bail? press the ESC key and pretend you never even opened it ๐Ÿ™ˆ.

the history of everything you type gets saved to ~/.newsbeuter/history.cmdline. by default the backlog holds 100 entries, but you can change that with the history-limit configuration variable. and if you want no history at all? set history-limit to 0 and it's gone, no cap, deleted, bye ๐Ÿ’….

starting with newsbeuter 2.0, the commandline has your back when you can't remember the full names of commands. press the TAB key and newsbeuter will try to auto-complete your command. if there's more than one possible completion, just keep pressing TAB to cycle through all of them ๐Ÿ”. if there's no match at all, nothing gets inserted โ€” sorry babe, it's not a mind reader. and for the set command, completion also works for configuration variable names, which is iconic honestly.

oh and there are some extra key combos for you:

  • Ctrl-G โ€” cancel input
  • Ctrl-K โ€” delete text from the cursor position to the end of line
  • Ctrl-U โ€” clear the whole line
  • Ctrl-W โ€” delete the word before the current cursor position
โš ๏ธ heads up bestie, the input history of both the command line and the search functions gets written to your filesystem โ€” to ~/.newsbeuter/history.cmdline and ~/.newsbeuter/history.search respectively. by default the last 100 entries are saved, but this is configurable (that same history-limit configuration variable) and it can be totally disabled by setting that variable to 0. your business, your call ๐Ÿซถ

๐ŸŽ€ currently, the following command line commands are available

  • quit โ€” quit newsbeuter. that's it. that's the command. goodbye ๐Ÿ’–
  • save <filename> โ€” save the current article to <filename>
  • set <variable>[=<value>|&|!] โ€” set (or get) a configuration variable value. putting a ! after the name of a boolean configuration variable toggles its value. putting a & directly after the name of a configuration variable of any type resets its value to the documented default value. yes, both. no, you don't have to remember it, it's right here โœจ
  • tag <tagname> โ€” select a certain tag
  • goto <case-insensitive substring> โ€” go to the next feed whose name contains the case-insensitive substring
  • source <filename> [...] โ€” load the specified configuration files. this lets you load alternative configuration files, or reload already-loaded configuration files on-the-fly from the filesystem ๐Ÿ”ฅ
  • dumpconfig <filename> โ€” save the current internal state of the configuration to a file, so it can be instantly reused as a configuration file. it's giving save-scumming but for configs ๐Ÿ’…
  • <number> โ€” jump to the <number>th entry in the current dialog

๐Ÿ“ FILES ๐Ÿ“

$HOME/.newsbeuter/config
$HOME/.newsbeuter/urls

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

podbeuter(1). also, the documentation that comes with newsbeuter is a good source about the general use and configuration of newsbeuter. go read it, bestie, it's right there ๐Ÿ“–


๐ŸŒธ AUTHORS ๐ŸŒธ

Andreas Krennmair <ak@newsbeuter.org>, for contributors see the AUTHORS file.


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Andreas Krennmair <ak@newsbeuter.org>

  • Author.

ok that's the whole page, we did it, we ate and left no crumbs ๐Ÿ“ and real quick, the little footer on this thing says it's from 02/19/2015 and it's version/edition NEWSBEUTER(1) โ€” so yeah, vintage but still slaying โœจ๐Ÿ’– bye bestie, go read your feeds ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from