When I read that you could use Quicksilver with Twitter, I felt as excited as Jack Bauer in an interrogation room full of terror suspects. It all started with Twitter Fan Wiki. And then I lost myself in hours of troubleshooting as I tried to force hack after hack to work the way I wanted them to. As these things are, it wasn’t nearly as hard in the end as all the work that led up to the final result.
The first AppleScript I found for the job was here. But as best as I can tell, the Keychain Access was a major bottleneck. Then I found an option that uses the Twitter Rubygem, but you’ve got to be pretty serious to install Rubygems on your Mac. I couldn’t make it happen. I’m not that serious. Then I found another way to avoid Keychain scripting, but it was still too geeky for me to get working with my limited know-how. I even found iChat support and word count with Growl notification.
I was about to give up. But I said I would give myself the length of the entire Purple Rain album to make it happen. (I hadn’t listened to it in a long time and it was my favorite album as a dirty minded pubescent teen. He said “masturbating!”) About an hour of pop/funk later, this is what I had hacked together.
Features:
- Counts characters and notifies you by Growl if you exceed 140.
- Notifies you by Growl when your tweet is sent.
- Twitter username/password is hard coded to avoid Keychain Access and reduce delays.
- Checks to see if iChat is running and then sets your status message as the current tweet.
- Checks to see if Skype is running and then sets your mood text message as the current tweet. Note: If you want to integrate Skype mood text updates, open the script in Script Editor and uncomment (remove “–”) the Skype tell.
- Growl will use the icon of Twitterific if installed.
- Need to manage multiple Twitter accounts? Just create a copy of the script in your Quicksilver Actions folder, change the username/password, and you can tweet from two accounts.
How to install:
- Download the script, unzip, and put it here:
~/Library/Application Support/Quicksilver/Actions - Using Script Editor, modify these lines of the script to your Twitter username and password:
set twitter_key_account to "your@email.com"
set twitter_key_pass to "your_password" - Restart Quicksilver.
How to use:
- Invoke Quicksilver.
- Enter text mode (hit period) and type your message.
- Tab to the Action Pane and type “Tweet” (or as much of the word as you need).
- Enter.
I hope you find this script useful. I’m no programmer, so I can’t support it. If you have addons or variations, please post them. Don’t forget to add me to your Twitter friends list. And thanks to all the coders that came before me and made this possible.
Update 4-21-07: Integrated Skype mood text updates as an option. See instructions for details.
Update 8-11-07: Integrated Facebook updates as an option. See this post: Update Twitter, Facebook, iChat, Adium, And Skype With Quicksilver
Update 5-24-09: I made a change to the curl script which should solve any previous problems.
If you want to be notified the next time I post something, sign up for email alerts or subscribe to my RSS feed. Thanks for visiting!





Killer. Thanks for this.
You’re welcome, Chris. Happy Twittering.
[...] iQuickTwitter – My Quicksilver + Twitter + iChat + Growl Hack » Graham English’s Integral Con… (tags: quicksilver twitter osx mac applescript software growl) [...]
I love you.
I was looking for this exact thing. I used Twitterrific before and that was a huge distraction. I was constantly being distracted by people updating theirs and I didn’t want to close it because it meant I couldn’t update mine whenever I wanted.
I only jumped on the Twitter bandwagon yesterday and I’m already addicted.
Thanks for the comment, Guarev.
[...] If you are a Quicksilver user and a Twitter-er you really need to give iQuickTwitter a test drive. [...]
[...] second most popular post was iQuickTwitter – My Quicksilver + Twitter + iChat + Growl Hack. This little app got some serious link love from TUAW, Ars Technica, and many other fantastic [...]
Well, it works, as long as you don’t use an @ as the first character of the tweet (as in @username). Doing so results in no growl report whatsoever, but I do have Console logs of the failure.
I can send you a more detailed report if you’re interested, but mainly what I’m seeing is “curl: (26) failed creating formpost data” along with a bunch of transfer times and rates.
Maybe this is a Quicksilver issue and not with your script, but I figured it was worth posting here in case someone else is having this problem…
Hmmm. It’s working for me. I made a change at some point to allow the @ so I’m not sure why it wouldn’t be working unless Twitter recently made some changes. If I find out anything, I’ll let you know.
I think that I’ve figured out the recent issue with Twitter and using messages that begin with “@”. The script works but it sends the message to your “Archive” tab on twitter and not the “Recent” tab. Also, it seems that Twitter is interpreting the message as a reply to another user, e.g. “@ home: watching tv” is interpreted as a Twitter reply to user “home”.
I’ve been working nonstop for the past week trying to find a way to workaround this issue. However, this seems like something that can’t be solved with better AppleScript. This may be an issue with Twitter.
Let me know if you all find a way around this.
The fact that tweets are showing up in your archive but not recent is definitely a Twitter issue and not with the script. Same with putting @ in front of any word. Twitter interprets that as a reply to a user. I’ve had issues with Twitter not updating my recent page properly at times. Growing pains.
[...] This Tid Byte goes out for only a few of us brave soles…. But if your using Quicksilver for OS X and twitter.com. this little script will let you update your twitter status via quicksilver, very cool, very fast.http://i.grahamenglish.net/540/iquicktwitter-my-quicksilver-twitter-ichat-growl-hack/ [...]
Awesome script! Thanks, man.
Working great here in Leopard 10.5.2 and QS 3815 ! Thanks
You’re welcome, Rob.
Glad to hear it’s working for you, Ed. Cheers.
Hey Graham, I just found your quicksilver / twitter hack while looking for a fix for my keychain, multi key update script … I am able to access the keychain and get hold of the keys I want to update, but the it changes the new password to only the first character of whatever I try to set. Anyways, I think I could help add keychain based password management to this
Hey Graham, I just found your quicksilver / twitter hack while looking for a fix for my keychain, multi key update script … I am able to access the keychain and get hold of the keys I want to update, but the it changes the new password to only the first character of whatever I try to set. Anyways, I think I could help add keychain based password management to this (if it doesn’t also misbehave like trying to change the password). Although I haven’t tried your script yet and have exams this week, but I am following you on twitter, so tweet away and we’ll catch up after exams … =)
@grahamenglish … this should do it:
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
Thanks for sharing your code, Ankit. I originally used Keychain scripting but took it out because it caused delays and frankly, the Keychain can really suck sometimes. But when it works, hooray!
Using your script – thanks a lot!
From the original site, the guy made a small change which allows @replies :
use “–data-binary” instead of “-F” on the line where you sent the data to twitter over the web.
Hope this helps.
One strange thing I noticed: you say that /if/ ichat is running, it will update the status. for me, it always opens ichat even if not running, so i had to comment the lines out. other than that, excellent job!
PS – Your comment form is a little broken in Safari 3.1.1 – click on the message field and it will jump to the website field – kinda disorientating.
That is strange. It doesn’t open iChat for me, unless I’m editing the script. Whenever you’re editing a script, all apps referenced will open unless they’re commented out. But if used as a Quicksilver action, it shouldn’t open iChat. Hmmm.
Thanks for the comment form heads up. Haven’t seen that happen myself.
Hey Graham… for some reason the script isn’t updating my status. I’ve triple checked my login info in the script and I get the growl notice just fine… but no update. Any clue what else could be going wrong?
It isn’t updating your Twitter status? Or one of the other apps? Also, are you using your email as login or your username? I use my email. Another thing that could be wrong is if your password has special characters like & # @ etc.
Thanks for the script, works great!
Thanks for this script! Works flawlessly!
[...] – bookmarked by 6 members originally found by qing1979 on 2008-09-30 iQuickTwitter – My Quicksilver + Twitter + iChat + Growl Hack by… http://i.grahamenglish.net/540/iquicktwitter-my-quicksilver-twitter-ichat-growl-hack/ – bookmarked [...]
This script is really amazing. Really helps me out everyday. Thanks so much. You rock
thanks for this!
FYI, change the line that sets ‘twitter_status’ to:
set twitter_status to quoted form of (”source=qucs&status=” & tweet)
and you’ll also see “from Quıcĸsıɩⅴεʀ” show up in your tweets.
Peter, you hooked it up big time! Thanks!
I should give credit where credit is due. I originally found this tidbit from Mike Keen here: http://blog.codahale.com/2007/01/15/tweet-twitter-quicksilver/
Cheers!
[...] wasn’t difficult. I just added a couple lines of code to iQuickTwitter and now I can update Twitter, Facebook, iChat, and Skype with a single command. If you dig it, be [...]
great job, thanks !
I tried Rob Record’s workaround by switching out the “-F” for “–data-binary” but the @ problem persists. However, now it growls a success at me, even though the tweet wasn’t actually sent. Otherwise, nice work. I use it constantly.
Must be the idiosyncrasies of your system. I wonder if Quicksilver could have anything to do with it?
[...] iQuickTwitter is more for the tech savvy people. It is My QuickSilver + Twitter + iChat + Growl Hack in one. You have to modify some the code with Script Editor to make it work, however it has gotten some good comments. [...]
[...] twtbase- Source grahamenglish [...]
[...] iQuickTwitter is more for the tech savvy people. It is My QuickSilver + Twitter + iChat + Growl Hack in one. You have to modify some the code with Script Editor to make it work, however it has gotten some good comments. It is made for Mac OSX. [...]
can´t work for me
i do it all, and grow shows me the message but not updates at twitter .
How can i do??
user and pass are ok .
Thanks
Try using your email address instead of your username.
i do it :/
You know, it just stopped working for me and I had to change my login from my email to my username. I think Twitter’s been tweaking the API.
So tasty, but either way i set up username or email, i see the growl notification but no actual Tweet. A shame, as it is obviously worked on and an elegent solution. I will keep an eye out… thanks for sharing.
Strange that it’s not working for some people. I wonder if it has anything to do with Quicksilver versions. If you shoot me an email with your script, maybe I could test it on my machine.
[...] built from previous scripts at http://blog.codahale.com/2007/01/15/tweet-twitter-quicksilver/ and http://i.grahamenglish.net/540/iquicktwitter-my-quicksilver-twitter-ichat-growl-hack/ and [...]
This script is extremely exciting. Unfortunately I’m having the same issue as laurindel: Growl notifies me that the tweet has been sent, but my Twitter feed is not updated.
I’m using OS X 10.5.6 and Quicksilver 3815.
I will be thrilled if anyone is able to get to the bottom of this problem.
Twitter has tightened up what http headers it will accept, so you need to modify the headers that curl sends. Bottom line, replace the twitter curl line in the script with the following:
set results to do shell script "curl --user " & twitter_login & " -H \"Expect:\" -F " & twitter_status & " http://twitter.com/statuses/update.json"I’m really, really excited about this script, but I’m having the same problems other people have been having. Growl pops up correctly, and my iChat status is updated, but nothing budges on Twitter itself. I tried editing the curl line in the script like the last comment suggests, but I’m still having the same problem. Any chance this can be fixed? The idea is tremendously awesome.
Quicksilver version 3815
Mac OS X 10.4.11
Just made some changes that should solve any problems. Download it again and have fun!
Fantastic work, Graham! Everything’s working beautifully now. Thanks so much for the update.
hi, i cant get the facebook part to work, in the script, i dont even see anything that ask for the facebook credentials, how is this working?
There is no Facebook integration in this version. See this post and read my last comment.