๐ Hello! goread is an RSS/Atom feed reader for the terminal. It allows you to categorize and follow feeds and read articles right in the commandline! It's accompanied by a beautiful TUI made with bubble tea. Features include:
- Categorizing feeds
- Downloading articles for later use
- Offline mode
- Customizable colorschemes
- OPML file support
- A nice and simple TUI
โค๏ธ Getting started
Installing with go install
You can install goread using the go
internal package manager
$ go install github.com/TypicalAM/goread@latest
Installing with homebrew
If you use Homebrew, you can install goread via:
$ brew install goread
Installing from AUR
If you use the AUR, you can install goread via:
$ yay -S goread
$ yay -S goread-bin # Release binary
๐ธ What does it look like?
Here is a gif of some basic usage:
You can use a colorscheme from pywal
to create a goread colorscheme!
โ๏ธ Configuration
๐ The urls file
The urls file contains the categories and feeds that you are subscribed to! This file is generated by the program in the config directory (usually ~/.config/goread/urls.yml
) and looks similar to this:
categories:
- name: News
desc: News from around the world
subscriptions:
- name: BBC
desc: News from the BBC
url: http://feeds.bbci.co.uk/news/rss.xml
- name: Tech
desc: Tech news
subscriptions:
- name: Wired
desc: News from the wired team
url: https://www.wired.com/feed/rss
- name: Chris Titus Tech (virtualization)
desc: Chris Titus Tech on virtualization
url: https://christitus.com/categories/virtualization/index.xml
You can edit this file to change the app's contents in an automated manner (remember that you can also edit entries in the TUI!).
๐ The colorscheme file
The colorscheme file contains the colorscheme of your application! It can be generated by hand or using
the --dump_colors
flag. The colorscheme file is usually at ~/.config/goread/colorscheme.json
- here is how it looks like!
{
"bg_dark": "#161622",
"bg_darker": "#11111a",
"text": "#FFFFFF",
"text_dark": "#47485b",
"color1": "#c29fec",
"color2": "#ddbec0",
"color3": "#89b4fa",
"color4": "#e06c75",
"color5": "#98c379",
"color6": "#fab387",
"color7": "#f1c1e4"
}
You can use the --get_colors
flag to generate a colorscheme from pywal. For that you have to supply it with the
pywal colors.json
file which is usually located at ~/.cache/wal/colors.json
. To generate the colors.json
file you can run wal -stni ~/wallpapers/example.png
.
โจ Contributing
If you have an idea or something doesn't work feel free to create an issue. If it is a bug remember to:
- Update using
go install github.com/TypicalAM/goread@latest
or homebrew upgrade
- Include output of
goread --version
- Include logs which are usually located at
/tmp/goread.log
on linux and %TMP%\goread.log
on Windows
When running tests (for example when packaging) you can disable online tests by setting the env var TEST_OFFLINE_ONLY
to a truthy value (for example "YES").
๐ Credit where credit is due
Libraries
The demo was made using vhs, which is an amazing tool, and you should definitely check it out. Other libraries included are:
Fonts & logo
The font in use for the logo is sen-regular designed by "Philatype" and licensed under Open Font License. The icon was designed by throwaway icons.
=======
License
Copyright (C) 2023 Adam Piaseczny
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.