tw-rs 0.1.20

Command line tool allow you to access twitter
Documentation

Command Line Interface Tweeter (rust version)

Build Status

Screenshot in alacritty:

Displaying a user's timeline in a terminal.

The rust version of this tool is somewhat faster than its haskell counterpart, but the haskell one has a couple more features.

Reasons to use tw-rs:

  • Faster than other tools (t, tweet-hs, oysttyer)
  • Lightweight (5MB, low CPU/memory usage)
  • Unobtrusive
  • Support for colored output.
  • Can be used in scripts
  • You know rust and like being able to extend your tools.
  • You want something that can be called from vim
  • You want a twitter library for rust.
  • BSD3 licensed

Reasons not to use tw-rs:

  • Several features are still in development
  • Fewer features than rainbowstream, t, or oysttyer
  • You want to extend your tools in haskell
  • You want "twitter in a terminal" that rainbowtools or oysttyer provides.
  • You want to be able to easily tweet emoji

Config

Generate a token to authorize access to your twitter account by following the guide here

Then place your API keys and OAuth tokens in a file (default is $HOME/.cred), separated by a line break:

api-key: API_KEY_HERE
api-sec: API_SECRET_HERE
tok: OAUTH_TOKEN_HERE
tok-sec: TOKEN_SECRET_HERE

Note that the labels must in the correct order, and separated from the keys with whitespace.

Installation

If you're on Linux/Windows the best way is probably to download the binaries from the releases page here.

Otherwise, you'll have to build from source. To build from source, install cargo via rustup; on unix systems this is as simple as

curl https://sh.rustup.rs -sSf | sh

Then type cargo install tw-rs.

Use

View Profiles

To get your profile, simply type:

$ tw user

To view a user's profile, type e.g.

$ tw user pinepapplesmear

If you have any problems along the way:

$ tw help

Sending tweets

$ tw send "YOUR_TWEET_TEXT"

Viewing your timeline

You can also use

$ tw view

to view your own timeline.

Features

  • tweet
  • view timeline
  • view user profiles
  • output with id of tweet
  • delete tweet
  • retweet
  • reply to tweet
  • fav/unfav tweets
  • follow/unfollow users
  • fetch mentions
  • block accounts
  • tweet an image
  • display quoted tweets alongside

Speed

In the bash directory you will find a script that times tw-rs, tweet-hs, oysttyer, and t fetching tweets. On linux, it consistently places tw as the fastest.

Comparison to other command-line clients

Tool Language Color output Interactive Vim plugin support Scriptable Send emoji
tw Rust x x x
rainbowstream Python x x x
oysttyer Perl x ½
tweet-hs Haskell x x x
t Ruby ½ x

Screenshots (alacritty + solarized dark)

tw

Displaying a user's timeline in a terminal.

t

Displaying a user's timeline in a terminal.

rainbowstream

Displaying a user's timeline in a terminal.

tweet

Displaying a user's timeline in a terminal.

oysttyer

Displaying a user's timeline in a terminal.

Some results

These aren't 100% great benchmarks since twitter's load varies, but tw does come in first consistently. This is the time to get, parse, and display 20 tweets in color (50 times)

Timed results.

Coloring

tw-rs respects the CLICOLOR behavior defined here. If you wish to disable colorization,

 $ export CLICOLOR=0

Emoji

To make tw use standard unicode in place of symbol fonts, simply set

 $ export DISABLE_EMOJI

Library

A library is included. It's fairly easy to use once you have the credentials set up, with three functions: one to post a status, one to get your timeline, and one to get a user profile.

Haskell

There is a haskell version of this, with a binary and a library, available here. The haskell library is more complete.