One of iPhoto’s most useful—but underused—features is keywords. Once you’ve assigned keywords to photos, you can quickly find, for example, all photos including Uncle Dave, all photos of work colleagues, or all photos from your Hawaii vacations. If you frequently need to find particular types of pictures, you can set up Smart Albums that use keywords as criteria. Finally, if you’re a Flickr enthusiast, and you use Flickr Export Plugin for iPhoto to upload your photos to Flickr, you can use keywords to “tag” those photos first.
Unfortunately, in my experience, few people actually use keywords regularly. Some people simply don’t know about keywords, but even among those who do, it doesn’t seem to be a popular feature. I think at least one reason for that is that iPhoto’s keyword interface is a bit klunky. To assign keywords, you have to select the desired photo(s) and then either drag them to each keyword box in the Keywords pane of the main iPhoto window, or open the Photo Info palette and click individual boxes in the Keywords tab. Not a horrible interface, but also not one that makes it easy to quickly assign keywords to many photos. And if you want your keywords to appear in alphabetical order in iPhoto, you have to rearrange them manually, in iPhoto’s preferences, via drag-and-drop.
Thankfully, there’s a better way; one that I learned about via my colleague Rob Griffiths: Ken Ferry’s Keyword Assistant 1.9.3 ( ; free). After installing Keyword Assistant, you’ll see a new KA menu in iPhoto. Choose Show Assistant from that menu, and Keyword Assistant’s keyword-input window appears.

Using this small window, you can quickly assign keywords to selected photos: Just type the name of the keyword and click Assign (or, more conveniently, press Return). But the beauty of Keyword Assistant is that it’s smarter than a simple text-entry field—it auto-completes based on your existing keywords. So, for example, type h-a-w and Hawaii will appear (assuming it’s one of your keywords, of course); press Return to assign that keyword. This auto-complete feature also prioritizes keywords by most-recent use; so if you’ve got the keywords North Carolina and North Dakota , typing n-o-r will display the one you assigned most recently. This is a useful feature when assigning the same keywords to a series of photos.
What if you want to assign multiple keywords? Press Tab instead of Return and Keyword Assistant will automatically insert a comma and a space; you can then start typing the next keyword, and so on. When you’re done, press Return or click Assign and all of the keywords will be applied to the selected photo(s).

You can even create new keywords right from this dialog: just type the new keyword and assign it. You’ll be asked if you really want to create the new keyword. Click Create and it’s added to iPhoto’s keyword list and assigned to the selected photo(s). (You can choose to disable this confirmation dialog via Keyword Assistant’s preferences, accessible via the iPhoto preferences dialog. You can also choose whether these new keywords will be added to the end of the keyword list or inserted alphabetically.) And unlike iPhoto, where creating many keywords clutters the interface and makes adding keywords to photos a hassle, Keyword Assistant makes it nearly as easy to use 40 keywords as it is to use four.

If you like to assign people’s names as keywords, an option in Keyword Assistant’s preferences will automatically search Address Book for names when entering keywords. For example, if I’ve got a picture of Christopher Breen and Jason Snell, typing c-h-r Tab j-a-s Return will assign their names to the photo as keywords. (Note that these names will be added to iPhoto’s keyword list, just as if you’d created new keywords.)

You can also remove keywords for an image: just type those keywords into the box and hold down the Option key; this changes the Assign button to Remove. Or you can remove all keywords from an image by choosing KA: Remove All Keywords (or pressing Control+Command+Delete).
While adding keywords, you can navigate photos without having to switch back to the main iPhoto window by pressing Command+left arrow and Command+right arrow to select the previous or next photo, respectively. Unfortunately, you can’t add the Shift key to these shortcuts to select multiple photos, as you might expect; for that, you need to switch to the main window.
Although the above description may not seem like a big time-saver, once you’ve used Keyword Assistant for a few minutes, you’ll find yourself breezing through the process of assigning keywords to individual photos.
Keyword Assistant also makes iPhoto’s own keyword interface a bit easier to use by letting you alphabetize keywords—just choose KA: Alphabetize Keywords. (Although I found that I had to close and then re-open iPhoto’s Keywords preferences window for the list of keywords to be udpated.)

So what’s not to like about Keyword Assistant? I already mentioned the inability to use the keyboard to select multiple photos while the Keyword Assistant window is active. Keyboard Assistant also won’t work with keywords containing commas or with a space at the beginning or end. Finally, because Keyword Assistant works so closely with iPhoto’s own code, new versions of iPhoto may “break” Keyword Assistant, so you should make sure—by visiting the developer’s site or checking out the user reviews on VersionTracker.com or MacUpdate.com— that the latest version of Keyword Assistant is compatible with the version of iPhoto running on your Mac.
But these flaws are minor compared to the benefits Keyword Assistant offers over iPhoto’s own keyword interface—enough of an improvement for me that I’ve actually started using keywords. (I’d always wanted to but found the process of assigning keywords in iPhoto to be too tedious.) And that’s a significant hurdle to clear: As the developer puts it, “[T]here isn’t anything you can do in KA that you can’t do in iPhoto. But if you won’t do it in iPhoto, then it doesn’t matter.”
Keyword Assistant 1.9.3 requires iPhoto 4.0.3 or later and Mac OS X 10.4.7 or later. It is a Universal binary.