There are two Quicksilver plug-ins that allow you to tag files: Spotlight and OpenMeta. What's the difference? Which one should you choose? The goal of this post is to answer the first question and help you answer the latter for yourself.
I didn't write either plug-in originally, but I've contributed a great deal to both.
Both plug-ins allow you to select one or more files in Quicksilver, then add or remove one or more tags to those files. You can also show existing tags for the selected file(s).
All the tags you use will (eventually) be added to Quicksilver's catalog by default. You can search for a tag in Quicksilver, then hit → or / to show all files matching that tag.
Tags can also be used when searching via the normal OS X Spotlight interface.
Both plug-ins provide a new type of catalog entry that can be used to add files to the catalog based on assigned tags1.
When you use the Spotlight plug-in, tags are stored as text in the file's Spotlight Comments field. The advantage is that you can view and edit tags via Finder's "Get Info" panel, in addition to using Quicksilver.
To distinguish tags from normal words in the comments, tags will be prefixed with a character of your choice. (The default is
#. Previous versions of the plug-in used
@.) When adding tags to the catalog, the prefix is removed and only the tag's name is shown (for cosmetic reasons).
Tags are separated by spaces in the comments, so unfortunately, they can't contain spaces.
The actions that manipulate tags should correctly preserve other (non-tag) text in the comments, and the plug-in's "Set Comment…" action should correctly preserve tags.
The OpenMeta plug-in stores tags in extended attributes. The advantage is that tags aren't mixed with any other type of metadata, so they don't require any special prefix and they won't interfere with other data like comments. This means they're "hidden" from the standard interfaces like Finder2, but there are several third party applications that work with OpenMeta tags. You can also use the
openmeta command-line tool, but it's not required as it was with previous versions of the plug-in.
Since tags are stored in a dedicated attribute, they can contain spaces and just about anything else. The only real limitation is that, when entering multiple tags by hand in Quicksilver, it separates them with comma, so you can't include a comma in the tag via Quicksilver. I assume you could get around this using another interface if it's really important to you.
In Quicksilver, when you right-arrow into an OpenMeta tag, in addition to a list of files matching that tag, you will see other tags assigned to those files. If you select one of those tags and right-arrow again, you'll be shown a list of all files matching both tags, and any additional tags they have. You can repeat this for any number of tags. This is a powerful feature3 and a quick way to narrow down a long list of tagged files.
One last advantage that the OpenMeta plug-in offers is quicker access to new tags. Whenever you change the tags for a file in any way, the plug-in rescans your system to see if there are any new tags and adds them to the catalog almost immediately. Tags assigned outside of Quicksilver will not be detected until the next scheduled catalog scan.
If you just want something basic that doesn't rely on any third-party voodoo and lets you see tags outside Quicksilver in a more obvious way, use the Spotlight plug-in for tagging.
If you want something more powerful and dedicated to the task, or if you've already started tagging files using other OpenMeta-compatible applications, the OpenMeta plug-in is the best choice.
The Spotlight catalog source is actually more general purpose and not meant for tags specifically. So to do this is far less straightforward, as it requires you to type complicated search syntax by hand, but it is possible. ↩
OpenMeta tags can be used in any Spotlight search, including those in Finder. You just can't view and manipulate tags. ↩
The Yojimbo plug-in also treats tags this way. There's no technical reason why the Spotlight plug-in couldn't provide this feature, but it hasn't been implemented as of this post. ↩