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 rtvOr clone the repository
$ git clone https://github.com/michael-lazar/rtv.git
$ cd rtv
$ sudo python setup.py installThe installation will place a script in the system path
$ rtv
$ rtv --helpIf you're having issues running RTV with Python 2, run RTV as module :
$ cd /path/to/rtv
$ python2 -m rtvRTV 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
uwhile 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+linuxsupports multireddits/r/frontwill redirect to the front page/r/mewill 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=geditIf 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=w3mRTV 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=TrueOAuth 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=falsePlease see CHANGELOG.rst.
Please see CONTRIBUTORS.rst.
Please see LICENSE.
