drivel is a Twitter command line interface.

You can find releases on releases.gutmet.org or build it yourself.


Checkout the repository and compile with

go build -o drivel


To get up to the last 200 tweets of your home timeline:

drivel home

To get up to the last 200 tweets of your mention timeline:

drivel mentions

To get up to the last 200 tweets of @USER:

drivel timeline USER

To like a tweet with a specific ID:

drivel like TWEET_ID

To retweet a tweet with a specific ID:

drivel retweet TWEET_ID

To lookup tweets with specific IDs:

drivel lookup TWEET_ID1 [TWEET_ID2 TWEET_ID3 ...]

To get a list of the people you follow:

drivel following

To wipe your timeline and likes (keepDays defaults to 10, can only reach back as far as the result of the timeline):

drivel wipe

To update your status with optional media upload:

drivel status STATUS [FILE1 FILE2 ...]

To reply to a tweet with a specific ID:

drivel reply TWEET_ID MESSAGE [FILE1 FILE2 ...]

To quote a tweet with a specific ID:

drivel quote TWEET_ID MESSAGE [FILE1 FILE2 ...]

with any number of files, as long as they are .jpg, .png, .gif or .mp4 and smaller than 50 MB each. On first use, drivel will ask you to go to https://apps.twitter.com/app/new, register a new app and create an access token. Those values will be stored in HOME/.drivel/ for later use.

drivel will automatically split large status messages and multiple files into separate tweets belonging to the same thread.

The results of the 'home' and 'mentions' commands can be filtered to only include certain user names. Create text files 'AllowlistHome' and 'AllowlistMentions' in HOME/.drivel and list allowed users line by line.

Each command (other than wipe) can use a go text template to format the printed results - pass a file name to '--template'. The template is executed with a slice of []Status. See types.go for available data fields and example.template for a minimalist example.

For more options consult 'drivel help COMMAND'.

final note

drivel does not sanitize/validate user input for now.

final final note

You can buy me a beer here.