tweet-hs: Command-line tool for twitter

[ bsd3, library, web ] [ Propose Tags ]

a Command Line Interface Tweeter

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Dependencies ansi-wl-pprint, authenticate-oauth, base (>=4.11 && <5), bytestring, composition-prelude (>=, containers (>=, directory, extra, htoml-megaparsec (>=, http-client, http-client-tls, http-types, megaparsec (>=7.0), microlens, optparse-applicative, split, text, tweet-hs, unordered-containers [details]
License BSD-3-Clause
Copyright 2016-2020 Vanessa McHale
Author Vanessa McHale
Category Web
Source repo head: git clone
Uploaded by vmchale at 2020-11-29T02:44:57Z
Distributions NixOS:
Executables tweet
Downloads 25036 total (61 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]



Enable build with llvm backend


Don't build an executable


Enable -Werror


Use parallel garbage collector


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for tweet-hs-

[back to package description]

Command Line Interface Tweeter

Windows build status Build Status Hackage

Displaying a user timeline in a terminal.

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:

  • Faster than other tools (t, oysttyer)
  • Support for colored output.
  • Can be used in scripts
  • You know haskell and like being able to extend your tools.
  • You want something that can be called from vim
  • You want a twitter library for haskell.
  • BSD3 licensed

Reasons not to use tweet-hs:

  • You want "twitter in a terminal" that rainbowtools or oysttyer provides.
  • You want to be able to easily tweet emoji

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 | |


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"


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- | sh

Then type stack install tweet-hs it will put an executable called tweet on your path.


View Profiles and timelines

To get your timeline, simply type:

tweet view

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

tweet user NateSilver538 --color

Sending tweets

To send a tweet:

tweet send "This is my tweet"

Input from stdin

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

Viewing your timeline

You can also use

tweet view


tweet view --color

to view your own timeline.

GHCi integration

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.