Devo is officially dead. Use Ubiquity.
Updated: Devo should now work on Windows & Linux in addition to OS X. Also, added some new actions and allowed the changing of shortcut key.
Inspired by Enso and Quicksilver, I blogged about a keyboard command launcher for Firefox nearly a year ago. After writing a very lousy first extension back then, about a month ago, I started coding an all-new extension. The result was fairly neat (if I may say so myself).
You can download Devo here or at the Mozilla Addons site (requires login as it is still experimental).
It’s pretty easy to use. After installing it, use SHIFT+X to open up the UI. Just type the action keyword followed by the parameters (if there are any). So, if you want to search for “devo” on Wikipedia, type “wikipedia” followed by “devo”. Devo is an interesting 80s band. Now, if you want to watch their videos you can just type “youtube devo”. If you ever need help using Devo, type “help” on Devo.
Unless your name is Xavier, SHIFT+X should be a nice enough shortcut key but if you need to, you can change your shortcut key by going to the Help page (devo “help”).
Motivations

I often get distracted from my work and end up procrastinating thanks to sudden impulses, impluses that make me switch windows for trivial things like skipping a song. And once my train of thought is disturbed, it is tough to get back on track. The power of Devo is that if you are focused on something, you can simply hit the hotkey and get want you want without switching windows or even moving your mouse. You don’t ever have to divert your attention or lose your focus.
Of course, you could use Quicksilver or Enso for the same purpose. In fact, I use Quicksilver all the time. But spending a lot of my time in Firefox these days, I needed another command/action launcher more specific to Firefox. A launcher that is capable of performing more web-centric actions. Also, a launcher for which the barriers of entry to creating new actions are low. Quicksilver actions are tough to write for someone who doesn’t code in Objective C but on the other hand, everyone knows a modicum of Javascript these days (and Devo makes it very simple to write).
Actions
Actions run with the same privileges as extensions. Hence, you can write a very wide array of actions. Broadly speaking, we can classify all actions into three types.
Web
Pretty straightforward Web-centric actions that could range from simple keyword searches various site (like “youtube [keyword]”) to running useful bookmarklets (like “annotate”). To look at the whole list of built-in actions, you can devo “manage.actions”.
Browser
A small number of actions that will help you control your browser. It could be a simple action like bookmarking a webpage or searching your history. Or you can also have more complicated actions like “close all tabs containing [keyword]”.
Extensions
Extension-related actions truly showcase the power of Devo. You can even control your iTunes from your Devo. The way it works is that Devo will hook up with an extension like Foxytunes and enable you to control that extension from Devo itself. So, if you have foxytunes installed, you can get lyrics of the song that is currently being played in your iTunes by just typing “lyrics” in Devo.
Thanks to all extensions in Firefox being open source, the great thing is that extension developers need not write actions for their extensions. Anyone can. You can simply go look at the code of that extension and start writing Devo actions for specific features of the extension.
Besides being powerful as well as easy to write, operating extensions using Devo means you don’t need all that toolbars where you actually only use one button. You can hide all the toolbars, buttons and statusbar icons and instead, use the extensions from Devo without all that distracting clutter.
Now, look at my toolbar after running Devo (despite having StumbleUpon, FoxyTunes, Del.icio.us, GoogleTB installed).
Extensibility
There’s only a small number of built-in commands but of course, Devo’s extensible! It is extremely simple to add and manage your actions. Devo “add.actions” to see how to extend.
If you are lost, you can always devo “help”. Or if you are really lost (thanks to annoying bugs), you can email me at chimneydials@gmail.com .






10 Comments
July 16, 2008 at 4:05 pm
Wonderful!
July 16, 2008 at 4:24 pm
Cool stuff!
July 16, 2008 at 11:48 pm
love the “annotate” command i must say
very cool!
July 23, 2008 at 6:57 am
[...] found another program called Devo that solves this problem. Well, sort of… I’ll get to that later. It’s [...]
August 1, 2008 at 5:02 pm
[...] Jump to Comments NOTE: Catalog has now been re-done as Devo. Check out Devo (works on Firefox [...]
August 22, 2008 at 12:42 pm
[...] see the Devo Firefox addon from chimney came in as a runner up in the extend Firefox 3 contest (one of the winners if I had my say!). Wow, [...]
August 25, 2008 at 10:38 pm
[...] ** first, download the Devo Firefox extension from here. You might have to sign up for an account though, coz Devo is an experimental plugin and downloading experimental plugins require users to login. It’s a free account though, and it’s worth it if it’s just to get hands on this. Or, of course, if you really don’t want to, you can download it straight from their site, click here. [...]
August 27, 2008 at 2:34 am
Aw I was using this but I’ve uninstalled it for Ubiquity
http://labs.mozilla.com/2008/08/introducing-ubiquity/
Good work though.
August 27, 2008 at 2:39 am
@jamie Awesome. I’m one of the contributors to Ubiquity. =)
May 8, 2009 at 8:59 am
[...] Devo was very inspired by quicksilver. Having just bought a Mac (and loved quicksilver), I desperately wanted something like quicksilver in the browser. This meant that Devo had to be more like a catalog of everything in the browser. In fact, it was initially named Catalog (yeah, I suck at picking names). So, it had to import your browser history and bookmarks which was such a pain before Places came along. I also wanted it to know the extensions installed on the user’s Firefox, etc., etc. It was going to be one huge catalog. Obviously, it failed. It was too complex. A few months later, I decided to start afresh (my idea of it had changed from a catalog to a command launcher by then) and this time, I had a real deadline — the Extend Firefox contest. The time-boxing forced me to work on only the core features (mind you, this does not happen naturally as an effect of time-boxing. I think I picked the right core features). Hence, the success of Devo was inevitable. These days, Ubiquity keeps adding features and growing broader so much so that I doubt even Atul understands all the code in Ubiquity. But what does something like Ubiquity or Devo really need to work? It doesn’t need a natural language interface. It doesn’t need an API or a mechanism for command subscriptions. Skins are like diamonds on your teeth (read: just bling bling). It doesn’t even need to support multiple arguments! The only things it needs to be useful is a straightforward command executor (just the Google and Wikipedia commands alone would do). And that’s simple. And that works. In my other projects (Things.webapp and “Open Digg”), I’ve made the same mistake. I didn’t focus on the simple core and choose instead to attempt the complex and unnecessary. [...]