tweet-hs
is a command-line tool for twitter. It has more features than
its rust counterpart and it's a bit
slower.
Reasons to use tweeth-hs:
Reasons not to use tweet-hs:
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 |
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 ~/.cred.toml
, as in the
following example:
api-key = "API_KEY_HERE"
api-sec = "API_SECRET_HERE"
tok = "OAUTH_TOKEN_HERE"
tok-sec = "TOKEN_SECRET_HERE"
If you're on Linux/Windows the best way is probably to download the binaries from the releases page here.
To build from source, install haskell stack; on unix systems this is as simple as
wget -qO- https://get.haskellstack.org/ | sh
Then type stack install tweet-hs
it will put an executable called tweet
on your path.
To get your timeline, simply type:
tweet view
To view a user's profile, type e.g.
tweet user NateSilver538 --color
To send a tweet:
tweet send "This is my tweet"
To tweet from stderr, run a command that pipes stderr to stdin, i.e.
stack build &>/dev/null | tweet input
The tweet
executable reads from stdin only, but you can view the options (replies, number of tweets to thread, etc.) with
tweet --help
This script powers the twitter account @my_build_errors for instance. There's an example bash script for in bash/example
You can also use
tweet view
or
tweet view --color
to view your own timeline.
You can define the following in your ~/.ghci
:def tweet (\str -> pure $ ":! tweet send \"" ++ str ++ "\"")
The directory bash/
has a mkCompletions
script to allow command completions for your convenience.
A haskell package is included. It's fairly easy to use once you have the credentials set up, with two main functions: thread
and basicTweet
: the first for threading your own tweets or replying to someone else's and the second for just tweeting.