About | Buy Stuff | Industry Watch | Learning Curve | Products | Search | Twitter
Home » Products » Reviews

Twitter Clients

Four of the best and most used.

Buy It

Try It

Unless you've been living under a rock of late you've become aware of Twitter. Everybody's using it. Google have dozens of feeds there. And Twitter is eminently easy to use. With a 140 byte post limit no one can fault you for bad grammar or spelling or anything. It's perfect for both corporations wanting to push new product, celebrities who have to know everyone in the world is watching them, and your garden variety illiterates.

But it's fun too. Just go to the website and sign up. You don't even have to use a real mail address (but you're in trouble if you forget your password and want them to mail it to you).

The ecosystem around Twitter is developing fast and is already huge. There are hundreds of ancillary sites and a bushel load of desktop clients. This article looks at four of the most popular for the OS X platform - some of which are also available for the iPhone.


Canary is an open source effort - so if you're interested in making the best possible client on your own then this might be a good place to start. Download the code and have a go at it.

Canary likes to come up in the lower left corner of your desktop. It has a pleasant enough appearance - perhaps not as fancy as the others but still and all. The input field for tweets comes with the curious default text 'formulate an opinion'.

Each tweet comes with a popup button at the top with a username in it. But do you really need to be reminded in each incoming tweet what account it's on when you already see the icon in the left margin? Far better to save window real estate and put a little button in the upper right like Twitterrific to get at that all important menu.

The far left on the toolbar has another popup button with some good stuff.

But instead of telling how many bytes you've got left it uses a tiny green-yellow progress meter. This is one case where the visual lags far behind the statistical.

Like all good Twitter clients Canary can shorten URLs to keep you under that 140 byte limit. You can select from any number of alternatives in your preferences - Adjix, Bit.ly, the default Cli.gs, ls.gd, SnipURL, TinyURL, tr.im,, and urlBorg. Good move.

Canary has a toolbar configuration sheet which is nice and the odd menu item not found elsewhere. This can be a good starting point if you want to help create the all-time Twitter client killer app. Because it hasn't been written yet.


TweetDeck is by far the most popular Twitter client if only for the fact it's platform independent. When Windows lusers unfortunately pollute the Internet to ~90% any application that runs anywhere is going to have a better chance at the lead.

TweetDeck has a far better icon than any of the others. Tweetie's is horrible; Canary's looks like open source; Twitterrific is just too 'Apple' - like having one too many helpings of meringue pie.

Eminently suitable for a mobile device with one column showing, TweetDeck on a desktop can expand to show as many columns as you want all at once. You can have columns for All Friends, Mentions, and Direct Messages. And TweetDeck will always find a way to add a column of its own called TweetDeck Recommends.

Moving columns around isn't as intuitive as you'd like. You can't just drag them to new locations. You have to ferret out the small arrow buttons at the bottom of each column.

There are a lot of other features built in here you won't find in any of the others. Such as TwitScoop, StockTwits, and 12seconds. And you also get to see how many API calls you have remaining until the next period begins.

For that's the drawback with any of these clients: working from Twitter's web pages you can do as much as you want at any time you want. But working from a client you're only allowed 150 API points per hour.

TweetDeck reports your status in the upper right. You see how many remaining API points you can use out of the total number and when you get your next reset.

The settings tabs are where TweetDeck really excels. You've got so much you can do there it'll remind you of the first time you manned a rocket to Mars. Seriously: there's a lot of integration with Twitter and other services and a lot of ways you can customise the look and feel of your TweetDeck client. TweetDeck is not #1 only because it works on inferior operating systems.

The one drawback TweetDeck has lies in its method of achieving OS independence: Adobe's AIR. AIR gives developers a platform independent way to develop applications and this is only for the good. But there seem to be any number of people out there who simply don't like AIR for a number of reasons. And it does add bulk to your hard drive.

The TweetDeck interface is also going to be consistent across all platforms, meaning it looks only like itself or other AIR apps. It won't look like Windows on Windows (which is only for the good) but it won't look like Cocoa on Mac OS X either (which isn't necessarily for the good).


This is by far the favourite - at least for OS X and definitely for iPhone OS. It's lickable. It comes up at a suitable size at the upper left on a desktop.

<key>NSWindow Frame TweetieMainWindowFrame</key>
<string>48 206 435 672 0 0 1440 878 </string>

But the keyboard shortcuts might annoy and the menu layout might not seem ideal.

And there are a lot of things you can't do with Tweetie. As with all the clients there's a zeal to promote one's own product - and so instead of linking what you're replying to these clients will put in a link to their own product pages. Which makes it nigh on impossible to follow a thread of conversation.

What Tweetie does however is promise you can follow conversations. And the author says that's one of the reasons he created the app. And yet the feature is nowhere to be seen.

Some of the Tweetie diagnostics are less than helpful.

As will be seen with all these clients, you can do some things from your desktop - and some things the web interface doesn't even let on about - but at the end of the day you'll have to log in through the web interface anyway.

Tweetie's got a lot of good press and it'll most likely become your favourite but like all the clients it needs a lot more work - if only to cover all the missing features.


By Craig Hockenbery of IconFactory. A cute little thing resembling an ICQ window and it starts instantaneously because by default you have to submit your login after launch. [This is configurable and that's a good touch.]

Twitterriffic (yes it has two 'r's and that does seem wrong - unless you see the two words in there: 'twit' and 'terrific') has no menu and doesn't even need a dock icon. Closing the app without the menu bar means you have to go into preferences to do it. Like Tweetie it has an icon in the status area of the menu bar and this is convenient. But Tweetie's status area icon lights up when there's incoming data and Twitterrific's doesn't.

Twitterrific has an unexplained propensity for feeding you with spam or at least tweets that don't belong to your feed. This may happen because the program sees your account mentioned elsewhere - in other words that it doesn't use the correct API. Getting this 'spam' can be particularly aggravating. The settings give you the choice between downloading tweets either from those who follow you or the public timeline but the filter here is not up to snuff.

The graphics are good and follow Apple's 'HUD' style. Lots of tiny little things to click on.

Judging from the log file there are still a few issues with this program.

2009-07-19 2:36:05 PM Twitterrific[4661] IFTweetController: connection:didFailWithError:
2009-07-19 2:36:05 PM Twitterrific[4661] IFTweetController: connection:didFailWithError:
2009-07-19 2:36:05 PM Twitterrific[4661] IFTweetController: connection:didFailWithError:
2009-07-19 2:36:05 PM Twitterrific[4661] IFTweetController: connection:didFailWithError:

And it's not too cool the app can't be hidden if it has its configuration sheet out. This is definitely not HIG.

Your options for doing stuff aren't as great as even Tweetie. You've got a button to open your preferences (wow). You've got a button for refreshes. But you've only got one panel so everything gets mixed together.

The most powerful option is the first button on any incoming tweet - 'show actions for this tweet'. This opens a menu worthy of a Mars shuttle. It's just a shame you have to select a tweet to get this menu.

When you look to the bottom of the Twitterrific window you're going to wonder how you're expected to type your already minimal 140 byte tweets into that little single line control. But you can find an area right below the feed where your cursor changes and lets you expand this area. Thank goodness for that!

Twitterrific can run either as opaque or transparent and this is a cool touch. It's a good app but it takes time to get used to.

Another minus is all the 'beige box cruft' in this one. You don't really need AppleScript in a Twitter client. And so forth. You'd think developers would be past this today and embrace the openness of the web more intelligently. But this stuff can simply be removed from the application bundle without deleterious effects.

Watch out for sound effects. There's one in there called 'twoosh' that's going to totally not bedazzle you.

Disk Footprints

Canary is quite bulky. It can be trimmed but you have a lot to start with.

226 items, 3120799 bytes, 7112 blocks, 0 bytes in extended attributes.

Twitterrific is the leanest - not out of the box but after trimming. Out of the box it looks like this - 2.2 MB.

79 items, 2222497 bytes, 4688 blocks, 0 bytes in extended attributes.

After trimming Twitterrific looks like this - half a meg for a classy app.

41 items, 541031 bytes, 1232 blocks, 0 bytes in extended attributes.

Tweetie takes but a meg and a half (after trimming).

99 items, 1478877 bytes, 3344 blocks, 0 bytes in extended attributes.

TweetDeck is by far the most extravagant. Start with the actual application bundle itself - over 5 MB.

61 items, 5315622 bytes, 10640 blocks, 0 bytes in extended attributes.

But those 5 MB belie the presence of two 'dictionary' files for over 3 MB all by themselves. These files are used to 'compress' your tweets down to the 140 byte limit by using 'web speak'.

Where TweetDeck really suffers is from its Adobe AIR framework. The verdict is out on this API, some people saying it's simply not a good idea, others claiming HTML 5 will supersede it, and others just not liking Adobe the company.

Whatever: the Adobe AIR framework takes a walloping 60 MB on disk. And if you look to the last file in the list you'll see something with a suspect name. Drop it on a strings application and you'll see further it's a platform dependent module.

66 items, 60401886 bytes, 118160 blocks, 0 bytes in extended attributes.

/Library/Frameworks/Adobe AIR.framework/Adobe AIR
/Library/Frameworks/Adobe AIR.framework/Resources
/Library/Frameworks/Adobe AIR.framework/Versions
/Library/Frameworks/Adobe AIR.framework/Versions/1.0
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/MacOS
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/MacOS/Adobe AIR Application Installer
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/PkgInfo
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/Resources
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/Resources/Adobe AIR Application Installer.swf
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/Resources/Adobe AIR Installer Package.icns
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer.app/Contents/Resources/Adobe AIR.icns
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/MacOS
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/MacOS/Adobe AIR Installer
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/PkgInfo
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/Resources
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/Resources/Adobe AIR Installer.icns
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR Updater.app/Contents/Resources/setup.swf
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe AIR.rsrc
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Adobe Root Certificate.cer
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP.plugin
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP.plugin/Contents
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP.plugin/Contents/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP.plugin/Contents/MacOS
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/AdobeCP.plugin/Contents/MacOS/AdobeCP
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/airappinstaller
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/airappinstaller.rsrc
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/digest.s
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/AuthDialog.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/AuthDialog.nib/keyedobjects.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/ContentUIText.xml
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/FlashPromptDialog.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/FlashPromptDialog.nib/keyedobjects.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/Localizable.strings
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/Localized.rsrc
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/MainMenu.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/en.lproj/MainMenu.nib/keyedobjects.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/MacOS
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/MacOS/Flash Player
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/Resources
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/Resources/English.lproj
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/Resources/English.lproj/Localized.rsrc
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Flash Player.plugin/Contents/Resources/Flash Player.rsrc
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/FlashExceptionDialog.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/FlashExceptionDialog.nib/keyedobjects.nib
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app/Contents
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app/Contents/Info.plist
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app/Contents/MacOS
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app/Contents/MacOS/Template
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Template.app/Contents/PkgInfo
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/Thawte Root Certificate.cer
/Library/Frameworks/Adobe AIR.framework/Versions/1.0/Resources/WebKit.dylib
/Library/Frameworks/Adobe AIR.framework/Versions/Current

You'll find further evidence of the presence of AIR in Application Support.

15 items, 57870 bytes, 144 blocks, 0 bytes in extended attributes.

~Library/Application Support/Adobe/AIR/CRLCache
~Library/Application Support/Adobe/AIR/CRLCache/*.crl
~Library/Application Support/Adobe/AIR/ELS
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1/.fl89CB8354
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1/PrivateEncryptedData
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1/PrivateEncryptedDatai
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1/PrivateEncryptedDatak
~Library/Application Support/Adobe/AIR/ELS/TweetDeckFast.*.1/PrivateEncryptedDatav
~Library/Application Support/Adobe/AIR/eulaAccepted
~Library/Application Support/Adobe/AIR/Updater
~Library/Application Support/Adobe/AIR/Updater/Background
~Library/Application Support/Adobe/AIR/Updater/Background/1.0
~Library/Application Support/Adobe/AIR/Updater/Background/full
~Library/Application Support/Adobe/AIR/Updater/lastUpdateCheck

Those 'PrivateEncryptedData' files might throw you - TweetDeck isn't using your keychain and you'll have to decide whether you trust yet another method for protecting your passwords and other data.

Twitterrific comes in first place, Tweetie a close second, the open source Canary a somewhat distant third, and market leader TweetDeck has difficulties crossing the finish line.

So which to choose? They're all good in their own ways. Try them all. Just keep track of what ends up where. At the end of the day you'll still be using the web interface anyway.

Postscript: TwitterTool

TwitterTool is a coming ACP application from Rixstep. It's not a Twitter client but a Twitter 'tool': it digs into the full Twitter API and plucks out everything available.

TwitterTool will be available to ACP users in September 2009.

About | Buy Stuff | Industry Watch | Learning Curve | Products | Search | Twitter
Copyright © Rixstep. All rights reserved.