Newsboat [![Cirrus CI Build Status](https://api.cirrus-ci.com/github/newsboat/newsboat.svg)](https://cirrus-ci.com/github/newsboat/newsboat) [![GitHub Actions: Coveralls status](https://github.com/newsboat/newsboat/workflows/Coveralls/badge.svg)](https://github.com/newsboat/newsboat/actions?query=workflow%3ACoveralls) [![Coverage Status](https://coveralls.io/repos/github/newsboat/newsboat/badge.svg?branch=master)](https://coveralls.io/github/newsboat/newsboat?branch=master) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3328/badge)](https://bestpractices.coreinfrastructure.org/projects/3328)
========
Newsboat is an RSS/Atom feed reader for the text console. It's an actively
maintained fork of Newsbeuter.
A feed reader pulls updates directly from sites like blogs and news agencies,
and lets you review them in a single interface. Many times, the feed includes
the full text of the update, so you don't even need to start a web browser! You
can learn more about feed readers [on
Wikipedia](https://en.wikipedia.org/wiki/News_aggregator).
Notable features
----------------
* Powerful built-in HTML renderer — no need to start the web browser to view
text-only entries
* Send links and whole articles to third-party services using [bookmarking
scripts](https://newsboat.org/releases/2.37/docs/newsboat.html#_bookmarking)
* [Filter articles out](https://newsboat.org/releases/2.37/docs/newsboat.html#_killfiles)
based on title, author, contents etc.
* [Aggregate articles](https://newsboat.org/releases/2.37/docs/newsboat.html#_query_feeds)
into meta-feeds by arbitrary criteria
* [Apply transformations](https://newsboat.org/releases/2.37/docs/newsboat.html#_scripts_and_filters_snownews_extensions)
to feeds before passing them into Newsboat
* Integrates with services like The Old Reader, NewsBlur, FeedHQ
and [many more](https://newsboat.org/releases/2.37/docs/newsboat.html#_newsboat_as_a_client_for_newsreading_services)
* [Macros](https://newsboat.org/releases/2.37/docs/newsboat.html#_macro_support)
to execute sequences of actions with just two keystrokes
* Rudimentary [podcast support](https://newsboat.org/releases/2.37/docs/newsboat.html#_podcast_support)
Downloading
-----------
You can download the latest version of Newsboat from the official site:
https://newsboat.org/
Alternatively, you can check out the latest version from the Git repository:
$ git clone https://github.com/newsboat/newsboat.git
Dependencies
------------
Newsboat depends on a number of libraries, which need to be installed before
Newsboat can be compiled.
- GNU Make 4.0 or newer
- GCC 5.0 or newer, or Clang 3.6 or newer
- Stable [Rust](https://www.rust-lang.org/en-US/) and Cargo (Rust's package
manager) (1.79.0 or newer; might work with older versions, but we don't
check that)
- [STFL (version 0.21 or newer)](https://github.com/newsboat/stfl) (the link
points to our own fork because [the upstream](http://www.clifford.at/stfl/)
is dead)
- [SQLite3 (version 3.5 or newer)](https://www.sqlite.org/download.html)
- [libcurl (version 7.32.0 or newer)](https://curl.haxx.se/download.html)
- Header files for the SSL library that libcurl uses. You can find out which
library that is from the output of `curl --version`; most often that's
OpenSSL, sometimes GnuTLS, or maybe something else.
- GNU gettext (on systems that don't provide gettext in the libc):
ftp://ftp.gnu.org/gnu/gettext/
- [pkg-config](https://pkg-config.freedesktop.org/wiki/)
- [libxml2](http://xmlsoft.org/downloads.html)
- [json-c (version 0.11 or newer)](https://github.com/json-c/json-c/wiki)
- [Asciidoctor](https://asciidoctor.org/) (1.5.3 or newer)
- Some implementation of AWK like [GNU AWK](https://www.gnu.org/software/gawk) or [NAWK](https://github.com/onetrueawk/awk).
Developers will also need:
- [xtr (version 0.1.4 or newer)](https://github.com/woboq/tr) (can be installed
with `cargo install xtr`)
- [Coco/R for C++](http://www.ssw.uni-linz.ac.at/coco/), needed to re-generate
filter language parser using `regenerate-parser` target.
Installation
------------
There are numerous ways:
- install from your distribution's repository ([a lot of distros have
a package](https://repology.org/project/newsboat));
- install via [Snap](https://snapcraft.io/docs/installing-snapd):
$ sudo snap install newsboat
Our snap [only supports `xdg-open` as the browser][snap-browser], and you
can't run arbitrary scripts for rendering and bookmarking. The reason is
strict confinement; if we disabled it, the snap would be no better than
a distribution's package;
[snap-browser]: https://newsboat.org/releases/2.37/docs/faq.html#_with_snap_i_cant_start_browserbookmarking_scriptexecfilterrun_program_from_macro
- [build from source with Docker](doc/docker.md). Note that the resulting binary
might not run outside of that same Docker container if your system doesn't
have all the necessary libraries, or if their versions are too old;
- build from source in a chroot: to avoid polluting your system with developer
packages, or to avoid upgrading, you might use a tool like
[`debootstrap`](https://wiki.debian.org/Debootstrap) to create an isolated
environment. Once that's done, just build from source as outlined in the
next item;
- build from source.
Install everything that's listed in the "Dependencies" section above. Make
sure to install the header files as well (on Debian and derivatives, headers
are in `-dev` packages, e.g. `libsqlite3-dev`.)
Cross-compilers need to set `CARGO_BUILD_TARGET`; see [cargo
documentation](https://doc.rust-lang.org/cargo/reference/config.html#environment-variables).
Then compile and install with:
$ make # pass -jN to use N CPU cores, e.g. -j8
$ sudo make install # install everything under /usr/local
To install to a different directory, pass `prefix` like so: `sudo make
prefix=/opt/newsboat install`.
To uninstall, run `sudo make uninstall`.
Support
-------
* Check out our
[documentation](https://newsboat.org/releases/2.37/docs/newsboat.html) and
[FAQ](https://newsboat.org/releases/2.37/docs/faq.html)
* Report security vulnerabilities to security@newsboat.org. Please encrypt your emails to
[OpenPGP key 4ED6CD61932B9EBE](https://newsboat.org/newsboat.pgp) if you can.
* Report bugs and ask questions on
[the issue tracker](https://github.com/newsboat/newsboat/issues) and
[the mailing list](https://groups.google.com/group/newsboat)
(newsboat@googlegroups.com)
* Chat with developers and fellow users on #newsboat at
[irc.libera.chat](https://libera.chat) (also accessible [via
webchat](https://web.libera.chat/) and [via
Matrix](https://matrix.to/#/#newsboat:libera.chat)). We *do not* have
a channel on Freenode anymore.
Contributing
------------
See [CONTRIBUTING.md](CONTRIBUTING.md)
License
-------
Newsboat is licensed under [the MIT
license](https://opensource.org/licenses/MIT); see the LICENSE file. Logo [by
noobilanderi](https://groups.google.com/forum/#!topic/newsboat/Xm5pTsbeMEk),
licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).