
With the release of Quicksilver v1.0, I sat with Quicksilver’s lead developers (at our respective far-flung computers) to gather their thoughts on this historic occasion, and to find out a bit more about Quicksilver behind the scenes.

Rob and Patrick have been at the forefront of the machine that’s driven this 1.0 release, so let’s hear what they have to say:
LoveQuicksilver: What makes Quicksilver worthy of a 1.0 status?
Patrick: Now that users can upload their crash reports to us, we’ve fixed tons of lingering bugs that we would never have known about otherwise. Stability is what v1.0 boasts, but accessibility should not be forgotten. We’ve worked to simplify Quicksilver and add great documentation (a new manual is coming out!), meaning Quicksilver can be picked up by anyone much more easily than before.
Rob: All the major known bugs are OS X bugs, not Quicksilver bugs. :-)
LoveQuicksilver: What’s next for Quicksilver?
Rob: When Quicksilver asks a plugin for objects to add to the catalog, there’s an assumption the plugin can create those objects instantly. Sometimes that isn’t the case. We need to be able to ask the plugin for objects, but let it send the results back whenever it wants. Sort-of related, plugins need a way to recreate objects on-the-fly when they’re not in the catalog. Anything not in the catalog is currently lost after a restart, so they can’t be used with triggers, synonyms, etc.
Interfaces are too hard to customise, and the way the results are displayed in a separate panel creates a dated appearance in my opinion. But, you know, hard to customise.
Patrick: We need to make it as easy as possible for developers and users to create plugins and AppleScript extensions for Quicksilver. The true power of Quicksilver comes from our plugin developers, so I’ll be happy once we have a strong dev community back on our side creating great plugins, and over the coming months I’m going to be working hard to try and achieve this – we can always make things simpler for new developers!
Rob: Proxy objects can’t be used in the third pane. They should be there. Pretty self-explanatory, I think. The reason they aren’t is because the simple act of including them in the results causes them to be “resolved” (the process that figures out what they refer to at any given moment). For some, this is fairly slow. Doing several at once compounds the problem and introduces delays we find unacceptable.
LoveQuicksilver: It’d be great to use folder synonyms in the third pane as well as the first. Any other practical examples of functionality that improvements to proxy objects could bring?
Rob:
File ⇥ Move To… ⇥ Finder Selection
Text ⇥ Find With… ⇥ Current Website (Safari)

LoveQuicksilver: Now for a question close to your hearts – why did you start developing QS?
Rob: I learned Objective-C because I didn’t want Quicksilver to stop working – it’s as simple as that. I continue to spend time on Quicksilver because I want it to work well for me on my machine.
Patrick: I started to help save the project, but now it’s also fun to work with our inspiring community around the globe. A community that really appreciates what we do and shows their support in so many ways – translations for Quicksilver, donations or just kind words of thanks.
LoveQuicksilver: It’s great to hear how passionate you are about the project! Something I’m sure many users are keen to know is: What is the state of Quicksilver Development?
Rob: I don’t know what it was like at the height of the Blacktree days, but, as far as I know, it’s better now than ever. Enormous changes and improvements are being made every couple of months. It could always be better. We could use more people, or better yet, the same people with more time. :-)

LoveQuicksilver: Historically, I believe, Quicksilver was difficult to code for due to its unstructured nature, out-of-date code and lack of documentation. What changes have you made to make it easier for potential contributors to get involved?
Patrick: When I joined the project five years ago, it was almost impossible to start developing. One of my own personal ambitions has been to make it really easy for new developers to dive straight into the code. This meant moving over to GitHub (arguably the best version control site around), and much better documentation. Developing for Quicksilver has never been easier.
Rob: Yeah! There’s now detailed a reference for creating plugins, which is great for new developers. The core application is still mostly undocumented, but the code is much cleaner now. If it’s difficult finding your way around the code, there are always a few of us who know our way around and can answer questions for new developers. Not many people are asking, though!
LoveQuicksilver: What would you like to see developed in Quicksilver?
Rob: The ultimate interface for me would be one based on WebKit. Every part of the interface would be an HTML <div> or whatever, and any user would be able to customise the appearance using CSS (including animations and 3D transformations). I don’t know how realistic that would be, but I would be much happier tweaking CSS than spending an hour and a half in Xcode just trying to figure out where a box even comes from! And of course this would open up interface customisation to a ton more people.

LoveQuicksilver: Lots of people in the Quicksilver userbase are asking questions like “Why isn’t there a Sparrow/Twitter/Textmate 2/Duke Nukem/[insert app name] plugin?” What do you have to say to them?
Rob: Some people (probably a vocal minority) seem confused about why we aren’t working on a plugin for Sparrow, or Google Chrome before that, because surely so many user requests have gotten our attention, right? Unfortunately it doesn’t work like that. I don’t use those apps, so I have no need for those plugins. End of decision tree.
I’ve said something like this before, but for almost any open source project, you need someone that knows how to do it and someone who wants it done before something will happen – and of course they need to be the same person! It’s pretty common for the people who want it done to appeal to the people that know what to do. I think it’s only fair to make the opposite appeal. If you want something done, don’t tell me it’s important to you. Show me. I will spend hours and hours answering your programming questions on the mailing list, or looking over your code, but I’m not going to spend 20 minutes on a feature or plugin if I don’t need it. I’m not losing any sleep if that hurts some feelings. After all, I’m not asking anyone to do anything I didn’t do myself, and the barriers to entry are considerably lower now. :-)
LoveQuicksilver: Wow! I expect you’ll be seeing more plugin developers jumping on board now right?! What have you learned while working on QS?
Patrick: Put simply – how to code. It may seem crazy, but I was driven to help keep Quicksilver functioning, and to do so I had to learn how to code. Another important thing has to be working internationally. The current development team spans 12 timezones (from Japan to the US East Coast) which makes discussion and collaboration difficult, but we make it work with the great tools we have – git, GitHub, IRC and good old mailing lists.
Rob: A little Cocoa and a lot of Git. Or at least that’s how it feels sometimes. I wouldn’t have guessed how much time goes into the work surrounding the work. That is, you probably spend 10% of the time programming and the other 90% reviewing issues reported by users, discussing changes with other devs, reviewing code from others, branching/merging/rebasing/committing stuff with Git, etc. Then there’s a web site and an update system to think about, documentation, and accounts to maintain. You get the idea.
I’ve also learned that when someone forks the project on GitHub, it doesn’t mean they’re interested in helping out. And I have no idea what it does mean. There are 112 forks and only a handful of people actually doing something with them.
LoveQuicksilver: It all sounds intriguing! Let’s cap things off with one more personal question for you: What’s your favourite thing about Quicksilver?
Rob: This will probably seem like such a stupid little thing to be excited about, but it’s what I immediately thought of when you asked the question, so it’s probably true. It has to be the way searching works; the fact that I can find “peanut butter” by typing “pb”, or “nbtr”, or whatever makes sense at the time. It doesn’t force me to start at the beginning of the term, nor does it force me to enter all letters in sequence, like “peanu”. That’s a huge part of the general theme in Quicksilver of not having to think. You just call it up and start smacking keys, and the right thing happens. Someone should write a Chinese proverb about that.

Maybe that general “wei wu wei” theme should be my answer, but I think there are two reasons the search behavior specifically stands out.
As a result, Quicksilver remains special.
Patrick: The simple things are always the best, right? So for me it has to be the speed and huge scope of what Quicksilver can find. There’s nothing else out there that will find your Dad’s phone number, Bob Marley’s “Three Little Birds”, my Safari bookmarks… all these different things as quickly as Quicksilver. It’s partly to do with what Quicksilver concentrates on, and, as Rob says, Quicksilver’s awesome searching algorithm. This doesn’t mean I’m happy with the speed though – I’m still looking for ways to make it faster!
LoveQuicksilver: Great, thanks for your time Patrick and Rob!
And finally, I got in touch with Quicksilver’s creator Nicholas Jitkoff (né Alcor) to see what he had to say about this historic v1.0 release of Quicksilver:
“I’m amazed at what the Quicksilver team has accomplished since they took over the project a few years ago. They’ve created something truly worthy of a 1.0, taking Quicksilver from a flight of fancy to a fast, reliable productivity app. It has been a pleasure to use thanks to their frequent updates, countless refinements, and tireless effort.”
For those of you who remember, LifeHacker interviewed Nicholas all of 5 years ago on the state of Quicksilver. It’s amazing to see the turnaround in Quicksilver’s stability and development state since then.

There’s nothing more to say except that I hope you’re as happy with Quicksilver v1.0 as the development team and I are. Don’t forget to spread the word and share the love!

Quicksilver 1.0
After almost 10 years of testing, Quicksilver lays the beta tag to rest. (If the lack of an eszett brings a tear to your eye, you can always reminisce by hitting ⌥S on your keyboard). What does this release mean? It means more than just a change in the version numbering system - it signifies a maturity of Quicksilver and a sign of what’s to come.
For more info on this historic release day, you can read an interview with the lead developers where they discuss their thoughts on Quicksilver, but now it’s time to dive right in and see what Quicksilver’s getting on its release birthday.



The AppleScript action at the end of this post uses Sparrow to send an attachment to a specified email address. It will only appear for text objects in pane 1, and provides only files in pane 3.

So there’s a rundown of the latest and greatest things you can find in this version of Quicksilver, to finish off, here’s a quick word from lead developer Patrick:
Quicksilver 1.0 doesn’t just mean stability, it means the whole package: localisations for all our users; easy to use APIs for plugin and AppleScript extension developers; and a reliable, responsive support system.
It’s easier than ever for newcomers to contribute localizations, create plugins, add to the code base, or simply ask for help. Why not join the party or donate to the cause?
What next? Find out more in the interview with the developers. In the meantime, let us know your thoughts on this release, spread the word and above all - enjoy using Quicksilver!
using terms from application "Quicksilver"
on get direct types
return {"NSStringPboardType"}
end get direct types
on get indirect types
return {"NSFilenamesPboardType"}
end get indirect types
on process text _emailAddress with _attachment
try
-- Put your email address between the following quotes:
set _myAddress to "johndoe@emailprovider.com"
tell me to set _body to (current date) as text
set _attachmentText to _attachment as text
set _path to POSIX path of _attachmentText
tell application "Sparrow"
set _outgoingMessage to make new outgoing message with properties ¬
{subject:_attachmentText, content:_body, sender:_myAddress}
tell _outgoingMessage to make new to recipient with properties ¬
{address:_emailAddress}
tell _outgoingMessage to make new mail attachment with properties ¬
{filename:_path}
sendmessage _outgoingMessage with to recipient and mail attachment
end tell
on error a number b
activate
display dialog a with title "Sparrow Attachment"
end try
end process text
on get argument count
return 2
end get argument count
end using terms from
Do you have notes that you are use every single day? Sure, you can add them to the sidebar of the Mac Evernote client but there some notes should be in closer reach. Many times a day I make calls to coworkers throughout our office. I never seem to be able to remember people’s extensions so…
Over the years, Quicksilver’s arsenal of available actions has grown as more and more plugins have been created. At last count, Quicksilver has over 400 different actions from various sources for you to play with. That’s a lot!
So what if you don’t want to have all of these actions enabled? They may make searching for your most useful actions more laborious or difficult, or just clutter up your really neat and tidy results list:

Alternate actions have been around for a while, but have been one of the many features that’s been hidden from prying eyes.
With the release of ß71, we’ve made this feature much more accessible and intuitive.
Alternate actions are a set of paired actions; a primary and an alternate action. We all know that with an action selected in Quicksilver’s 2nd pane, you can run this (the primary action) by hitting the enter key (↩).

Now if a primary action has an alternate action, you can run this alternate action by hitting command enter (⌘↩). With ß71, you’ll see if an action has a paired action by holding the command key (⌘). For example, the alternate action for ‘Open’ is ‘Reveal’. Hold ⌘ with the ‘Open’ action in the 2nd pane to see it, then ⌘↩ to use it!

So now you know about alternate actions, where can you use them, and what are the benefits? With alternate actions, it means many more actions are available at the tips of your fingers. If ‘Open’ is the default action for files, you can now run the ‘Reveal’ action directly - without having to search for it. ‘Move To…’ and ‘Copy To…’ actions are alternates, so if you’re set up to move a file from A to B, but decide you only want to copy it, just press ⌘↩.
The great thing about alternate actions is that they work regardless of whether or not the alternate action is enabled in the Actions Preferences. You can disable all your alternates (Reveal, Copy To… etc.) and access them through the primary action with ⌘↩.
You can see which actions have alternates in the Actions Preferences in Quicksilver. We’ll be looking to add more as time goes on, but if you have any suggestions, then just let us know via @LoveQuicksilver or on the dedicated GitHub Issue

Happy Quicksilvering!

Quicksilver ß71 lands with a thud like a Sunday newspaper’s anniversary edition. Where to begin? As well as the headliners, new features include Mountain Lion notifications, more translations, the Large Type action for text files, multiple objects for triggers, and all apps being available for the ‘Open With…’ action.
Read the full changelog here. Now, let’s peruse the big features.

~/Library/Mobile Documents/com~apple~Numbers/Documents/Blank.numbers-tef
Quicksilver does away with this problem by providing a catalog entry for all iCloud documents. Start typing a name in the first pane, select an iCloud doc from the list, and pretty soon it’ll be the top hit for your preferred abbreviation. Also, → into an app to show all its iCloud docs, not just the recents. Or even → into the catalog entry to see every single iCloud document, ready to be opened in any application you wish!
Your iCloud documents, back under your control.








The interest shown in Quicksilver’s appearance has been great (metaphor switch warning), but that’s one cog in the large number of real improvements made to Quicksilver’s works. So (warning end), for the sake of balance, which new features do you think are newsworthy?