Skip to main content

Twitter suite for Weechat.

Project description

Daniël Franke (@ainmosni) <daniel[at]ams-sec[dot]org>

Welcome to the wonderful world of weetwit, a plugin that will transform weechat to a (soon-to-be) fully-featured twitter client.


  • Realtime streaming timeline.
  • Realtime search.
  • Trending support.
  • Tweet length counter.
  • Favourite support.
  • Updating, replying and retweeting according to Twitter standards.
  • Aware of twitter URL shortening.
  • Tools to query users and status updates.
  • Able to (un-)follow directly from weechat.
  • Report spammers directly from weechat.
  • Share updates with IRC.
  • Conversation support


Before you can use it, you have to “create” a new application at twitter, the reason for this is that I can’t include the application keys without them becoming public knowledge. You can create the application at Twitter. The application needs read/write access.

First we need to install the module:

Installation through pip, note that you must get the plugin seperately.:

# pip install weetwit
$ Copy the plugin to ~/.weechat/python

Installation from source:

# cd /path/to/source/files
# pip install tweepy
# python install
$ cp plugin/ ~/.weechat/python

Configuration of weechat:

] /python load
] /set plugins.var.python.weetwit.access_token access_token_goes_here
] /set plugins.var.python.weetwit.access_token_secret access_token_secret_goes_here
] /set plugins.var.python.weetwit.consumer_key consumer_key_goes_here
] /set plugins.var.python.weetwit.consumer_secret consumer_secret_goes_here
] /python reload weetwit

You should now have a running weetwit.

Configuration parameters

There are multiple configuration parameters you can alter, here is a short description of them.

  • plugins.var.python.weetwit.show_in_current: Show the timeline in the current window.
  • plugins.var.python.weetwit.current_while_away: Show the timeline in the current window while away.
  • plugins.var.python.weetwit.current_while_detached: Show the timeline in the current window while screen/tmux detached.
  • plugins.var.python.weetwit.current_color: The color of the tweets in the current buffer.
  • plugins.var.python.weetwit.storage_dir: The location of where all the weetwit related files will be kept.
  • plugins.var.python.weetwit.timelined_location: The location of the timelined monitoring daemon.
  • plugins.var.python.weetwit.trend_woeid: The woeid you want to see trends for, defaults to worldwide.
  • plugins.var.python.weetwit.nick_color: The color of @names. Use ‘nick_color’ if you want people colored uniquely.
  • plugins.var.python.weetwit.hash_color: The color of #hashtags.
  • plugins.var.python.weetwit.mention_color: The color that @people mentioned in tweets should have.
  • rt_style: How RTs are displayed. ‘postfix’ will show the retweeter after the tweet like this (RT by @username) ‘prefix’ will show the retweeter before the tweet.
  • expand_urls: Expand URLs, when this is on, it will show a preview of the URL before the URL, if off it will only show the url.

Bar items

  • tweet_counter Shows the amount of characters that are typed into the timeline buffer, it’s aware of URL shortening.

Weechat commands

Many commands take <status identification> as argument, this can either be the ID of the status or a screen_name. In case of the screen_name, we will use the ID of last status by screen_name. (Note: if screen_name hasn’t showed up in your timeline, this won’t work.)

  • /tweet <status>
    • Update your status, this can be 140 characters long. URLs will be shortened using by twitter. You don’t need this command on the dedicated timeline buffer.
  • /tinfo <status identification>
    • Shows more detailed information about a status update.
  • /treply [.]<status identification> <message>
    • Replies to the relevant status update, this will always start with the @screen_name of the person the status belonged to, if the identification is prefixed with a dot, a dot will be prepended to the message so that your other followers will see it as well.
  • /tconversation <status identification>
    • Displays the conversation leading up this status update.
  • /tfavorite <status identification>
    • Favourites a status update.
  • /tunfavorite <status identification>
    • Removes a tweet from your favourites.
  • /tfavorites
    • Shows your favourited tweets.
  • /retweet <status identification> [message]
    • Retweets the relevant status update, if [message] is present this will prepended to the retweet.
  • /tsearch <keywords>
    • Opens a new buffer with a realtime search of <keywords>, you can only have a limited amount open of these at one time, opening more might stop already existing searches.
  • /tshare <status identification>
    • Shares the relevant status update with the current IRC channel.
  • /twhois <screen_name>
    • Displays information about screen_name.
  • /tfollow <screen_name>
    • Follows screen_name.
  • /tunfollow <screen_name>
    • Unfollows screen_name.
  • /trending [woeid]
    • Displays what’s trending in the location represented by [woeid]. If no woeid present it uses the woeid set at plugins.var.python.weetwit.trend_woeid.
  • /travail
    • Displays woeids of available trend locations.
  • /treport [–yes] <screen_name>
    • Reports <screen_name> for spam. If –yes isn’t added, the user won’t be reported for spam.


Q:Why does your script spawn an extra python process?
A:Because weechat doesn’t support background threads, and blocks on long running operations, this process is what monitors your timeline.
Q:I don’t want those ugly STATUSIDs in my weetwit buffer.
A:Add a filter like this: “/filter add statusid python.timeline * \[#STATUSID:” now you can toggle between them hidden and visible, depending on your needs.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for weetwit, version 0.10.2
Filename, size File type Python version Upload date Hashes
Filename, size weetwit-0.10.2.tar.gz (19.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page