There are many native Twitter clients available on Linux platforms, be it a GUI-based client (e.g., Birdie, Choqok, Gwibber, Turpial) or a terminal-based counterpart (e.g., t or TTYtter client). In the world of open-source software, such diversity is the norm, and the freedom of choice is what we all cherish in Linux.
For those Linux CLI lovers, here is a yet another terminal based Twitter client to add to the list. Rainbow Stream is an open-source Twitter CLI client written in Python. As its colorful name suggests, Rainbow Stream features the ability to display your Twitter feed in a fancy colorful console, which makes browsing your Twitter timeline a more pleasant experience. You can even view images embedded in a tweet directly within a terminal.
In this tutorial, I will describe how to set up and customize Rainbow Stream, as well as demonstrate its commands.
Install Rainbow Stream on Linux
First, make sure that your system has Python v2.7+ or 3.x. A quick installation method is using pip with sudo permission. Install pip on your system if it is not available.
Then use the command below to install Rainbow Stream.
For Python 3 users:
If you are familiar with virtualenv, there is a safer way to install it:
$ source venv/bin/activate
$ pip install rainbowstream
If you are a Python3 user, replace the first command above with 'virtualenv -p /usr/bin/python3 venv'
Authorize Rainbow Stream
When Rainbow Stream is installed correctly, the rainbowstream command will be available. To initiate a one-time authorization process, simply run this command, which will automatically pop up a web browser window for authorization.
On the browser window, log in to your Twitter account, and you will be asked to authorize Rainbow Stream to access your Twitter account. Click on "Authorize app" button.
In the next page, you will see a PIN number generated for Rainbow Stream.
Enter the PIN in the terminal where you are running rainbowstream.
Now you are ready to use Rainbow Stream inside a terminal.
If you are trying to authorize Rainbow Stream on a remote headless server, you can copy and paste the authorization URL to a web browser running on a separate computer.
Theme and Configuration
If you type 'h' at the RainbowStream prompt, it will show you a quick help screen which introduces a set of available commands. Reading this quick help will assist you understand a full list of supported commands. Among them are the global theme and config commands.
The theme command allows you to quickly switch your Twitter timeline color theme among four built-in beautiful themes. Typing "theme" followed by a theme name (available via tab-autocomplete) will change your theme immediately.
To switch to a theme called solarized:
The config command will list all available configuration values. You can change any configuration vale by using config command, or by editing configuration manually in ‘~/.rainbow_config.json’ file.
To see all available configuration options:
To set "HIDE_PROMPT" configuration to "true":
View Tiwtter Images on a Terminal
The most interesting feature of Rainbow Stream is the ability to view tweet-embedded images directly in a terminal. Launching rainbowstream with parameter "-iot", or changing the config key "IMAGE_ON_TERM" to "true" will enable that feature.
As you can see above, Twitter messages in Rainbow Stream are organized as "threads", which makes it look like a messenger app. To print images to a terminal window, Rainbow Stream uses Pillow as an image processing engine, and fabulous as a display algorithm.
To conclude, Rainbow Stream is a convenient Twitter CLI client which is designed with usability in mind. With an easy enough one-time authentication, you are good to go with this cute little Twitter app. For those interested, go and check out its full documentation. Any bug report or feature request is welcome.
Subscribe to Xmodulo
Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.
Did you find this tutorial helpful? Then please be generous and support Xmodulo!