I’m standing on the shoulders of giants here.
A while back, I became aware of [Twitter](http://twitter.com/). I didn’t think much of it, but I registered for an account because it was free. I didn’t use it very much, but liked the idea of being able to easily update this sort of online “mini-blog.” When I discovered that you could update you Twitter via iChat, I thought that was very cool.
Then I discovered all the stuff that users had created and posted on the [Twitter Fan Wiki](http://twitter.pbwiki.com/) and eventually stumbled on to [Chitter](http://www.roflsoftware.com/), which auto-posts your iChat status (Away, Available, Out to lunch, etc) to your Twitter stream.
After a couple of days, I recognized that, for me, Chitter works backwards. I don’t want to put my status in to iChat, I want *my iChat status to show whatever I’m Twittering at the moment*. Now, this doesn’t make sense if you use Twitter to [carry on conversations](http://www.jangro.com/a/2007/01/18/why-i-hate-twitter/) with your pals. But, if you use it the way I do (and the way I think it was intended to be used), Twitter is like a real-time Status Message for your life.
So, I posted my request to the Twitter Wiki and was eventually pointed over to [TikiTwit](http://tikirobot.net/wp/2007/01/29/update-twitter-via-ichat-status-message-part-ii/) which wasn’t what I wanted but did lead me, via a helpful comment from [rajbot](http://tikirobot.net/) to [Twittereeze](http://code.google.com/p/twittereeze/) which does *almost exactly* what I wanted.
You see, Twittereeze requires a SIMBL plugin and the use of [Twitterrific](http://iconfactory.com/software/twitterrific), the first of which frightened me and the second of which annoyed me. Twitterrific is cool, but it’s an ugly applicaiton and it gets in the way. Plus, if you’re like me and all you want to do is send things to your own Twitter stream (without reading other ones), it’s waaay overkill.
So, I headed over to the blog written by Sören, the guy who wrote Twittereeze and, via iChat, asked him if what I wanted to do was possible. What I wanted, I said, was to:
* Update my Twitter status via Quicksilver
* Then have my Twitter update auto-populate my iChat Status
Could it be done? Well, despite the fact that Sören doesn’t use Quicksilver and had never thought about the problem, he IM’d me a solution in about 45 seconds (!!). Here it is:
using terms from application "Quicksilver"
on process text tweet
tell application "Keychain Scripting"
set twitter_key to first Internet key of current keychain whose server is "twitter.com"
set twitter_login to quoted form of (account of twitter_key & ":" & password of twitter_key)
end tell
set twitter_status to quoted form of ("status=" & tweet)
set results to do shell script "curl --user " & twitter_login & " --data-binary " &
twitter_status & " http://twitter.com statuses/update.json"
-- display dialog results
tell application "iChat" to set status message to tweet
return nothing
end process text
end using terms from
Just paste that into Script Editor and save it, as iTwitStatus.scrpt into ~/Library/Application Support/Quicksilver/Actions.
Then restart Quicksilver. You can setup a trigger if you want, but I just use “itw Tab Tab” and start typing whatever I want my iChat Status to be.
I want to reiterate that I didn’t do anything to create this script. All I did was chase down the people smart enough to put it together. I love it; maybe you will enjoy it, too.