Screenshot in alacritty:
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
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.
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
.
To get your profile, simply type:
bash
$ tw user
To view a user's profile, type e.g.
bash
$ tw user pinepapplesmear
If you have any problems along the way:
bash
$ tw help
bash
$ tw send "YOUR_TWEET_TEXT"
You can also use
bash
$ tw view
to view your own timeline.
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.
| 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 | |
These aren't 100% great benchmarks since twitter's load varies, but tw does come in first consistently. This is done with haskell's bench tool.
tw-rs respects the CLICOLOR behavior defined here. If you wish to disable colorization,
bash
$ export CLICOLOR=0
To make tw use standard unicode in place of symbol fonts, simply set
bash
$ export DISABLE_EMOJI
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.
There is a haskell version of this, with a binary and a library, available here. The haskell library is more complete.