This project has been discontinued

Sorry about that I didn’t update Hotot (version 1) for a long time. Some of my friends know that during the last several months, a new generation of Hotot (called version 3, you can find it here) was still in development. But now, for some reasons, I don’t have enough time and energy to develop Hotot, both version 1 and version 3 will be stopped for now.

I began Hotot because there was no twitter client at Linux platform satisfy me at that time. I want to make a better one and I did it (In certain aspects, some of you will agree).

I am not a coder. In the past three years, I acted as a main developer and a designer. It’s a really memorable experience for me, but it also costs a lot. Time and energy are always limited. I don’t satisfy my life so much at present. I have to make a living.

Because the maintenance is finished too, I won’t respond for any bug report or suggestion. I recommend all Hotot users to switch to other twitter clients. There are a lot choices right now, on every platform, with different designs. Some of them are better than Hotot.

I have released all code of Hotot 3 in GPLv3. You can check it out from the bottom of the article. I construct it with Angular.JS and rewrite it in CoffeeScript. I will be happy if someone continues it. If you hate every twitter client except Hotot and want to continue it, I recommend you to switch to Ember.JS because using Angular.JS in large WebApp like Hotot would meet some serious performance problems.

So apologises and thank you, all fans of Hotot.

source code of Hotot 1 at github:

source code of Hotot 3 at github:

BTW: if you need the API of Hotot or this Domain, please contact me: @lyricwai

Hotot v0.9.8.5 released

Sorry that I didn’t commit to Hotot for half a month. Thank to other developers, hotot still gets some new stuffs in this release.

Socks Proxy

I know there are so many fans of Stand-alone Hotot. Well, a good news for you: thank to @xnreformer and @CSSlayer, we bring socks proxy back.

Redesigned Dialogs

To make UI clean and intuitive, I just simply redesign the preferences dialog and the compose box. A new widget set has been introduced, hope you like the changes. Service

Do you think 140 chars limit of twitter is too harsh for some cases? Never mind, Hotot have own service to handle long tweet. Thank @ben2k1690 for coding work.

App Mask Extension

If you don’t like the default source name “Hotot” or “Hotot for Chrome”, this extension will help you.
A custom source name is a good way to promote your site or product.

For more details about the enhancements, please check out the change log


For Linux Users

Our official PPA has been updated, visit it for more information.

For Chrome Users

It will be updated to latest version automatically soon, please just be patient. :)

Hotot for Mac and Windows is upcoming

Thanks for the hard work of @Kee_Kun, we will get the REAL Hotot for Mac. I am sure this one will have native support for OS X, such as Growl notification system and picture preview with Quick Look.

Hotot for Mac

Another good news is that @CSSlayer brings us the QT port of Hotot. It’s more friendly for KDE users and Windows users in deed. With the power of QT, it’s possible to bring about a Windows version of Hotot.

Hotot for Windows

I am sure these two versions will meet you soon.

BTW, please allow me to inform you that Hotot has moved the code repository to github(Hotot@github), for the mascot of github, octocat, is sooooo MOE. I love it, so i did it.


Hotot v0.9.8 released many updaes involved

I think 6 months are enough long for the first beta version. Thanks for 4 active developers, 2 designers, dozens of translators and thousands of users. HOTOT 0.9.8 COMES!

0.9.8 is the first beta release of Hotot, brings many exciting features to you.

New features

  • New Welcome Page
  • Color Label.
  • Draft.
  • Kismet Firewall.
  • Speech Input for Chrome edition.
  • Universal image uploader.
  • Detachable Search
  • Support to rearrange columns.

New Welcome Page

Inspired by the new login screen of Ubuntu, I design this one. Hope you like it.

New Welcome Page

Color Label.

Marguerite: What is Color Label? it’s colored bars ahead of tweets visually, but grants users possibility to redistribute concentrations between followings and distinguish key roles you eagerly care about from ordinary crowd.

For more details about color label, please read the previous post.

Color Label


Wanna compose something but feel not very clear about your idea? Just save it as a draft.


Kismet Firewall

In the design, it’s not only a simple firewall, but also a powerful tool to help people have better control to their information flow. Now, you can try the prototype to feel its power.


Please read this post if you want to explore the power of Kismet.

Speech input(Chrome only)

Speech Input for Chrome edition

Universal image uploader.

4 image service providers are supported, including the official one of Twitter!

Universal image uploader

It would be a handy tool to monitor what people are talking about.

Detachable Search

Support to rearrange columns

Don’t like the default order of columns? Now it’s possible to rearrange them by draging and droping the column icon simply.

Support to rearrange columns

And of course every column can be closed.

Support to rearrange columns

Minor Enhancements

  • Update Google Translate Extension.
  • Support HTTP Proxy with Authentication.
  • New Extension: Read It Later.
  • Support to change profile avatar.
  • Support to search people.
  • YOURLS url shorten service.
  • Minimize to tray.
  • Support STAP API proxy.
  • Support to close to exit.
  • Loose API limit from 350/hour to 1000/hour.
  • Trending Topics.
  • Minor Style & CSS Fixes.
  • More keyboard shortcuts
  • Refactored twitter API, OAuth and network code to prepare for multi-signin
  • Use account avatar as profile avatar.
  • Auto arrange the order of profiles.
  • Starts minimized (GTK and Qt).
  • Auto sign in (GTK and Qt).
  • Allow to sort columns manually (issue #113, #97).
  • Allow to add/close all columns.
  • Rearrange preferences dialog.
  • Update translation scanner script.
  • Allow to change language in welcome page.
  • Inline picture preview.
  • Update loading hint in welcome page.
  • Support to preview .jpe, .jpeg files (issue #186).
  • Open columns in background (issue #182).
  • Improve database performance.
  • Remove util.console.
  • New scrollbar.
  • New hotkey mechanism
  • Support Twitter official picture service.
  • Universal image uploader for gtk/chrome edition. Extension “imageuploader” is officially dropped.
  • “Deleted tweet” style.

Notable Bug Fixes (since

  • Fix: Only send one request to load more contents.
  • Fix: Cannot load more faved tweets.
  • Fix: character count, postion after closing tabs.
  • Fix: DM box now show recipient
  • Fix: Quote tweet calculate remaining chars correctly now
  • Fix: keyboard shortcut for retweet.
  • Fix: DM recipient changed to undefined when clicking Reply or Reply All.
  • Fix: UnicodeEncode error.
  • Fix: Qt desktop categories.
  • Fix: Qt text hover bubble effect.
  • Fix: Image uploader for gtk/qt.
  • Fix: Chrome fix (correct layout in Chrome 19.0.1068.1).
  • Fix: name not highlighted if it’s following a char (issue #119).
  • Fix: keep track conversations (issue #48).
  • Fix: Change the keybinding to invoke finder (form ‘/‘ to ‘ff’) (issue #42).
  • Fix something about keysyms (Gir).
  • Fix some icons problem in Qt version.
  • Fix unconsidered copy-n-paste (Gtk/Gir).
  • Fix: keyboard focus not working properly (issue #131).
  • Workaround for libsoup runtime (Gtk/Gir).
  • Fix: Changing font size without restart (issue #193).
  • Fix: XSS in drafts (issue #188).
  • Fix: Custom font doesn’t apply.
  • Fix: Wrong default font settings in Windows.
  • Fix: Incorrect scrollbar behaviors. (Issue #196, #197).
  • Fix: Windows version cannot load settings.
  • Fix: Window size saving (Qt)
  • Fix Issue #198
  • Fix scrolling problem when using trackpad on OS X
  • Fix: Horizontal slide
  • Fix: cannot open link(Gtk)
  • Chrome integration: Share with Hotot
  • Workaround: hook link event to prevent scrolling to top (Chrome)
  • Fix Issue #201
  • And many minor fixes.


The following people directly contributed to this release:

@shellex, @csslayer, @shellexy, @xnreformer, @doublechou, @sarim, @lb1a, @hfiguiere, @darkraven, @ereslibre, @easisee, @alick9188, @Etrnls, @Simounet

The following people contributed updated translations to this release:

@fanfolet, @rfsbsb, @csuarez, @wangxxx, @alexsandrisimus, @Blogofrais, @arvislacis, @xsoul, @Poapfel, @vinzv, @bassslave, @vinzv, @atilacamurca, @csuarez, @vasensio

The following people sponsored Hotot during to this release. I am really grateful for their donations!

Yichao Yu, Neo Lee, Difan Zhang, Shaoju Chen, YuFeng Guo

If you encounter any improper behavior in this release, please do not hesitate to file bugs!

Kismet firewall 2 in Hotot

Today, as I promised, I would like to share my experience on Hotot’s brand-new Kismet.

Briefly, it’s click & go for daily use and intelligent for advanced purposes.

Simply click on the little bunny on the top left corner, select “Kismet Firewall”, you could see what a nomal end-user firewall usually does, like this:

Mute Page

And we even provide this funny feature: “Filter like This”. If you’re not furious enough to intentionally open the Mute Page, or just too lazy to, this feature may help a lot. Just right click on a tweet, select “filter like this”:

Filter Like This

By selecting an action you wanna do to a specific part of the tweet, you create a filter rule automatically. All you need to do is verify and confirm the rule.

Verify and Confirm Filter Rule

Now comes to the most amazing but complicated part of Kismet: the Rule Based Filter:

Rule Based Filter

We divide our syntax to two pieces: Match Rule and Action begins with “do:”.

At first have some short-time memories of these full references.

namematch author. eg: “name:aiww”
mentionmatch receiver. eg: “mention:aiww”
keywordmatch a “keyword” in tweet’s text body. eg: “Bro” will eliminate that thing, YOU KNOW, laa-laa~
viamatch source. eg: “via:foursquare” will annihilate the annoying checkin guy.
tagmatch hashtag. eg: “tag:happyfriday” will clear your timeline up from #happyfriday.
has:geo/urlmatch location or link. eg: “has:geo” will remove any tweet contains geography information. we don’t even know where Mexico is, so why endure tweets keep questioning our IQ with a small town in Guadalcanal? “has:url” will keep you away from most robots, oversharing guys, and newspaper stuff.

Supported actions, at present:

do:dropit’ll annihilate the matched
do:maskit’ll overlay that text with mosaics. eg: *
do:notifyit’ll remind you through notification system (chrome or native).
do:archiveit’ll open and place that tweet in a new column.
do:reply()it’ll automatically reply the author with texts in brackets.
do:quote()it’ll automatically retweet that tweet with comments in brackets.

Next, we’ll explain how to combine them to create magic filters.

-Rule Name-

Keep me away from Bad News on Woodstock


drug OR sex OR gun OR rock'n'roll OR police tag:/woodstock/i has:url do:mask /* do:drop */

(Unluckily the OR function does not support yet. But it’s under development and nearly release state.)


Tweets contains “drug”/“sex”/“gun”/“rock’n’rool”/“police” with hashtag “woodstock” (use Regex to ignore Caps) , and represent himself as twibots by including a link (most of the times Human tells story instead of posting links) will be masked or droped.

You can equip yourself with the power of Regex in any of the Five match areas: name, mention, keyword, via, tag.

The rule in my snapshot : /^RT /g do:drop
is an example of using Regex in “keyword” area. it will search through the whole tweet text body by using suffix”/g”, if found with “RT” as empty head, it will be droped. because this should be done in Official New Retweet.

The First rule: tag:/woodstock/i do:mask
is another example of using Regex in “tag” area. it will ignore Cap error by using suffix”/i”. because you don’t know in what way tweeters write that.

Hotot’s not only prevent you from things uncomfortable, but also enables you to do things comfort you:

-Rule Name-

Notify me where my Nightclub Queen is


name:tixiang via:foursquare club do:notify do:archive do:reply("Wait for me my lord! Huge Hug you!")


Tweets contains “club” and sent by “@tixiang” from source “foursquare” will be notified to you even Chrome is minimized and aggregated into a new column. if you add the do:reply, you can even interact with her.

See how’s Hotot’s Kismet like? if you contribute further to our code base, it may even do tasks like take a habit-collection note to Evernote, assign your calendar on Google Calendar, and further, book a table automatically at the restaurant your wife named on twitter, send SMS to her by Google Voice, calculate drive route for her on Google Maps, and do it regularly with help of a Timer or Remember the Milk…so how’s it?