iChat has increasingly become a necessary aspect of business and personal communication, but I still don't love the program. I remain peeved by its approach to status (see "iChat Status Report," 2004-03-29) and its general clumsiness. Oddly for an Apple program, iChat uses lots of individual windows, and since you often want to switch among them, having them in separate windows in the window-layered Mac OS X (as opposed to the way Mac OS 9 was by default application-layered) can require some additional fussing.
A while back, I was turned on to Kent Sutherland's Chax, a free (donations gladly accepted) utility that extends and enhances iChat in numerous ways. It installs directly into iChat, so you can set its preferences in a tab of the normal iChat preferences window. I've seen no instability or odd behavior because of it, and as such I'd encourage anyone bothered by iChat to check it out. It is an Input Manager that injects itself into every application, which is entirely appropriate behavior, but if you install Chax and find that you're not using it, you can uninstall it as explained on its Web site. (For more information about Input Managers, see Matt Neuburg's "Are Input Managers the Work of the Devil?" 2006-02-20.)
Chax's feature list is as long as my arm, but here are the features I find most useful.
Tabbed Browsing -- This is Chax's marquee feature, and the single capability that makes it worthwhile for many people. Instead of every chat appearing in its own window by default, Chax can embed them all in one window, separating them with tabs that look and work just like tabs in Safari. You can also "tear off" a tab to make it into its own window, if you want to watch multiple chats simultaneously. Tab names change color if the other user in that tab is typing or if there's a new message you haven't yet seen, and the tabs contain both names and user icons. You can move between tabs by clicking or with keyboard shortcuts, and you can even set the edge of the window that should contain the tabs (top and bottom are good if you have relatively few active chats most of the time; left and right are good if you have tons of active chats).
Improved Away Handling -- Although Chax can't implement my suggestion of how iChat status should work, it does improve the situation. You can set Chax to make your status Away after a user-specified number of minutes, so if you're Available, then leave your computer, iChat first changes your status to Idle, then Chax later changes it to Away after the time you set elapses. In my case, you probably wouldn't see Idle as my state very often, since Chax can also switch the state to Away (with a custom message) when the screen saver activates, as it does on my Mac after about 5 minutes. I figure that if my screen saver is active, it's a good indication that I really won't see any incoming messages. Plus, Chax can automatically reply to incoming messages when you're away (once per conversation), and you can set a custom reply.
Better Notifications -- iChat has a variety of alert sounds you can set, but I find them annoying if I'm not actually sitting at the Mac, so I like the fact that Chax can disable them if I'm Away or Idle. If I really don't want to be interrupted audibly (such as when I'm recording a podcast), I can turn them off when Available too. I don't tend to think of the Dock as a place for changing information, but Chax has a variety of options for showing notifications there. More useful for me is its support for the universal Growl notification system; I really like seeing the first message of new chats appear briefly in a Growl notification that slides up from the bottom of my screen no matter what application I'm currently using.
Chat Enhancements -- Chax also provides some tweaks to how chats themselves work. You can set Chax to accept text chat invitations and incoming file transfers automatically, though it warns you that the latter is of course a security risk. It can warn you before you send a message to a mobile phone user, enable you to open received graphics in Preview with a double-click, and can require you to confirm quitting when there are open message windows (it's always embarrassing when you leave a chat because you thought you were quitting a different application). Chax can also hide the smiley button in the text input line and can embed a variety of status changes along with the chats themselves, so you can keep track of when people come and go. And lastly, it can disable picture-in-picture in video chats, though I quite like that aspect of iChat, and it can keep audio and video chats going during active file transfers. If you're disconnected by a flaky Internet connection, Chax can automatically try to reconnect you, and it provides a variety of options for modifying the look and feel of your chat and buddy list windows.
Chax in the Box -- Apple has promised numerous enhancements to iChat for Leopard, but the kind of configuration flexibility that Chax provides isn't usually the sort of thing Apple likes to inflict on undemanding users. But for those of us who prefer to configure our environments just so, Chax is an essential addition to iChat now, and I suspect it will continue to be equally as relevant in Leopard.
Chax 1.4.8 is a universal binary and requires at least Mac OS X 10.4.3 or later. It's a 1 MB download.