RTV is an application that allows you to view and interact with reddit from your terminal. It is compatible with most terminal emulators on Linux and OSX.
RTV is built in python using the curses library.
Install using pip
$ sudo pip install rtv
Or clone the repository
$ git clone https://github.com/michael-lazar/rtv.git
$ cd rtv
$ sudo python setup.py install
The installation will place a script in the system path
$ rtv
$ rtv --help
If you're having issues running RTV with Python 2, run RTV as module :
$ cd /path/to/rtv
$ python2 -m rtv
RTV supports browsing both subreddits and submission comments.
Navigating is simple and intuitive. Move the cursor using either the arrow keys or Vim style movement. Move up and down to scroll through the page. Move right to view the selected submission, and left to exit the submission.
j /k or ▲ /▼ : | Move the cursor up/down |
---|---|
m /n or PgUp /PgDn : | Jump to the previous/next page |
1-5 : | Toggle post order (hot, top, rising, new, controversial) |
r or F5 : | Refresh page content |
u : | Log in or switch accounts |
? : | Show the help screen |
q : | Quit |
Some actions require that you be logged in to your reddit account. To log in you can either:
- provide your username as a command line argument
-u
(your password will be securely prompted), or - press
u
while inside of the program
Once you are logged in your username will appear in the top-right corner of the screen.
a /z : | Upvote/downvote |
---|---|
c : | Compose a new post or comment |
e : | Edit an existing post or comment |
d : | Delete an existing post or comment |
i : | Display new messages prompt |
s : | View a list of subscribed subreddits |
In subreddit mode you can browse through the top submissions on either the front page or a specific subreddit.
l or ► : | Enter the selected submission |
---|---|
o or ENTER : | Open the submission link with your web browser |
/ : | Open a prompt to switch subreddits |
f : | Open a prompt to search the current subreddit |
The /
prompt accepts subreddits in the following formats
/r/python
/r/python/new
/r/python+linux
supports multireddits/r/front
will redirect to the front page/r/me
will display your submissions
In submission mode you can view the self text for a submission and browse comments.
h or ◄ : | Return to the subreddit |
---|---|
o or ENTER : | Open the comment permalink with your web browser |
SPACE : | Fold the selected comment, or load additional comments |
RTV allows users to compose comments and replies using their preferred text editor (vi, nano, gedit, etc).
You can specify which text editor you would like to use by setting the $RTV_EDITOR
environment variable.
$ export RTV_EDITOR=gedit
If no editor is specified, RTV will fallback to the system's default $EDITOR
, and finally to nano
.
RTV has the capability to open links inside of your web browser.
By default RTV will use the system's browser.
On most systems this corresponds to a graphical browser such as Firefox or Chrome.
If you prefer to stay in the terminal, use $BROWSER
to specify a console-based web browser.
w3m, lynx, and elinks are all good choices.
$ export BROWSER=w3m
RTV will read a configuration placed at ~/.config/rtv/rtv.cfg
(or $XDG_CONFIG_HOME
).
Each line in the files will replace the corresponding default argument in the launch script.
This can be used to avoid having to re-enter login credentials every time the program is launched.
Example initial config:
rtv.cfg
[rtv]
# Log file location
log=/tmp/rtv.log
# Default subreddit
subreddit=CollegeBasketball
# Default submission link - will be opened every time the program starts
# link=http://www.reddit.com/r/CollegeBasketball/comments/31irjq
# Turn on ascii-only mode and disable all unicode characters
# This may be necessary for compatibility with some terminal browsers
# ascii=True
OAuth is an authentication standard, that replaces authentication with login and password.
RTV implements OAuth. It stores OAuth configuration at ~/.config/rtv/oauth.cfg``(or ``$XDG_CONFIG_HOME
).
The OAuth configuration file must be writable, and is created automatically if it doesn't exist.
It contains a boolean to trigger auto-login (defaults to false).
When authenticated, an additional field is written : refresh_token.
This acts as a replacement to username and password : it is used to authenticate you on Reddit servers.
Example oauth.cfg:
[oauth]
auto_login=false
Please see CHANGELOG.rst.
Please see CONTRIBUTORS.rst.
Please see LICENSE.