Command-line interface
reader comes with a command-line interface that exposes basic management functionality.
Warning
The CLI is is not fully stable, see the roadmap for details.
Note
The command-line interface is optional, use the cli
extra to install
its dependencies.
Most commands need a database to work. The following are equivalent:
python -m reader --db /path/to/db some-command
READER_DB=/path/to/db python -m reader some-command
If no database path is given, ~/.config/reader/db.sqlite
is used
(at least on Linux).
Add a feed:
python -m reader add http://www.example.com/atom.xml
Update all feeds:
python -m reader update
Serve the web application locally (at http://localhost:8080/):
python -m reader serve
Updating feeds
For reader to actually be useful as a feed reader, feeds need to get updated and, if full-text search is enabled, the search index needs to be updated.
You can run the update
command regularly to update feeds (e.g. every
hour). Note that reader uses the ETag and Last-Modified headers, so, if
supported by the the server, feeds will only be downloaded if they changed.
To avoid waiting too much for a new feed to be updated, you can run
update --new
more often (e.g. every minute); this will update
only newly-added feeds. This is also a good time to update the search index.
You can achieve this using cron:
42 * * * * reader update -v 2>&1 >>"/tmp/$LOGNAME.reader.update.hourly.log"
* * * * * reader update -v --new 2>&1 >>"/tmp/$LOGNAME.reader.update.new.log"; reader search update 2>&1 >>"/tmp/$LOGNAME.reader.search.update.log"
If you are running reader on a personal computer, it might also be convenient
to run update
once immediately after boot:
@reboot sleep 60; reader update -v 2>&1 >>"/tmp/$LOGNAME.reader.update.boot.log"
Reference
reader
reader [OPTIONS] COMMAND [ARGS]...
Options
- --db <db>
Path to the reader database. [default: /home/docs/.config/reader/db.sqlite]
- --plugin <plugin>
Import path to a reader plug-in. Can be passed multiple times.
- --cli-plugin <cli_plugin>
Import path to a CLI plug-in. Can be passed multiple times.
- --config <config>
Path to the reader config. [default: /home/docs/.config/reader/config.yaml]
- --feed-root <feed_root>
Directory local feeds are relative to. ‘’ (empty string) means full filesystem access. If not provided, don’t open local feeds.
- --version
Show the version and exit.
Environment variables
- READER_DB
Provide a default for
--db
- READER_PLUGIN
Provide a default for
--plugin
- READER_CLI_PLUGIN
Provide a default for
--cli-plugin
- READER_CONFIG
Provide a default for
--config
add
Add a new feed.
reader add [OPTIONS] URL
Options
- --update, --no-update
Update the feed after adding it.
- -v, --verbose
Arguments
- URL
Required argument
config
Do various things related to config.
reader config [OPTIONS] COMMAND [ARGS]...
dump
reader config dump [OPTIONS]
Options
- --merge, --no-merge
list
List feeds or entries.
reader list [OPTIONS] COMMAND [ARGS]...
entries
List all the entries.
Outputs one line per entry in the following format:
<feed URL> <entry link or id>
reader list entries [OPTIONS]
feeds
List all the feeds.
reader list feeds [OPTIONS]
remove
Remove an existing feed.
reader remove [OPTIONS] URL
Options
- -v, --verbose
Arguments
- URL
Required argument
search
Do various things related to search.
reader search [OPTIONS] COMMAND [ARGS]...
disable
Disable search.
reader search disable [OPTIONS]
enable
Enable search.
reader search enable [OPTIONS]
entries
Search entries.
Outputs one line per entry in the following format:
<feed URL> <entry link or id>
reader search entries [OPTIONS] QUERY
Arguments
- QUERY
Required argument
status
Check search status.
reader search status [OPTIONS]
update
Update the search index.
reader search update [OPTIONS]
Options
- -v, --verbose
serve
Start a local HTTP reader server.
reader serve [OPTIONS]
Options
- -h, --host <host>
The interface to bind to.
- -p, --port <port>
The port to bind to.
- --plugin <plugin>
Import path to a web app plug-in. Can be passed multiple times.
- -v, --verbose
Environment variables
- READER_APP_PLUGIN
Provide a default for
--plugin
update
Update one or all feeds.
If URL is not given, update all the feeds.
Verbosity works like this:
reader update [OPTIONS] [URL]
Options
- --new, --new-only, --no-new
Only update new (never updated before) feeds.
- --scheduled, --no-scheduled
Only update feeds scheduled to be updated.
- --workers <workers>
Number of threads to use when getting the feeds.
- Default:
1
- -v, --verbose
Arguments
- URL
Optional argument