Ten Irssi scripts you should try before you die

We all know it — the only real IRC client left is Irssi. Irssi is good, better & best but even the best piece of software can be adapted for your own needs. Pimped, in other words. As for theming, window handling, effective use of screen and other cool tricks you will find plenty of guides out there. But I thought I’d offer you my take on the Irssi scripts that turn an IRC client into a spaceship control panel…

  1. trigger.pl
    The trigger script is a bit tricky to use at first, but once you’ve gotten used to it, it really grows on you. trigger.pl can be set up (from within Irssi of course) to trigger on various events and messages and perform custom Irssi commands. You can use trigger.pl for all sorts of neat tricks. Want to hilight on a specific word, in every channel except for one? Add a hilight, then use trigger.pl to rewrite the word in the specific channel where you don’t want the hilight. Want to automatically kickban anyone sending public away messages to your channel? Use trigger.pl to kick on specific regexps. Want to automatically strip colourcodes from certain nicks? Keep certain nicks from hilighting you? React to certain keywords? trigger.pl will handle all of that for you. You might have guessed it by now, most of these things are something you’d normally write a short Irssi script to handle yourself but with trigger.pl you just have to add a trigger.
    I said it was a bit tricky to use at first — you will find that sometimes your approach to solving a specific problem won’t work and you will have to find another way to do it. You might have to try out a few solutions before you find one that work as intended and without spurious side-effects.
  2. hilightwin.pl
    The purpose of this script is to copy all messages that Irssi hilights for some reason, into their own window. The net effect being that you can create an additional window and keep track of who hilights you and why, without having to switch to the channel where you were hilighted. It’s also nice for keeping a backlog of hilights when you aren’t able to react immediately or when you need to remember stuff. Per default, your privmsgs will also go into that window so you can see them too, without switching between windows all the time. Another advantage is that hilightwin saves you the trouble of scanning back through channel backlogs (the lastlog command can help you with that too, though).
  3. trackbar.pl
    This very simple script adds a little trackbar to every channel window whenever you leave it. A trackbar is just a line of dashes but such a line is very easy to identify when you return to the window and thus makes it easy to find out what happened while you were gone and where you should start reading from. A neat little script.
  4. nickcolor.pl
    Keeping track of a conversation between many people isn’t always easy. nickcolor.pl assigns a colour to each nick and colours that nick for you. It is a lot faster and easier to recognize a colour and identify the nick based on that so you won’t have to read each nickname on each line to know who said what. A word of caution though: nickcolor.pl will rewrite the pubmsg format and add the pubmsg_hilight format. This might clinch with your theme and if that’s the case you will have to modify the script to fit with your theme (it’s not hard though, just edit the two formats in the script to the ones your theme uses).
  5. dccstat.pl
    If you’re using Irssi to send and receive files through DCC you will probably grow tired of having to switch to the statuswindow and type ‘/dcc’ all the time to see how things are going. Use the dccstat script instead. It adds a statusbar item that will show the progress of your dcc sends and gets. The format is highly configurable and so can easily be made to fit with your theme. I have added an additional statusbar in the top of Irssi, that only has the dccstat item in it. It’s incredibly nice and a much easier way to keep track of all that *cough* stuff you download.
  6. adv_windowlist.pl
    Can’t remember which channel has which number? No problem when you have 10 channels, but when that number grows it becomes a pain to remember just which channel is #139 and just where #exherbo went. adv_windowlist is a mess so don’t try to read it or hack a lot on it, but what it does is very neat indeed. It gives you a multiline list of your channels with channel names and whatever else you might want to add. With a lot of channels, that’s obviously going to take a lot of space, so it’s wise to limit it to three lines or something like that and have it only show channels where there has been activity since the last time you visited (just like Irssi’s normal window list). adv_windowlist offers a drop-in replacement and definitely helps those of us who are getting senile.
  7. queryresume.pl
    A very simple script that prints the last few lines of your query with a specific nick whenever you start a new query with that nick. This bit of context is often nice if you have to handle a lot of queries or if your memory just sucks.
  8. len.pl
    Some networks (yes EFNet, I’m looking at you!) imposes some annoyingly short limits on nicklengths, topiclengths, part/kick messages and the like. len.pl will block your action if it includes something that goes beyond those limits. That way, if you ever feel like doing a /nick insanelylongnickname you won’t end up with ‘insanely’ as your nick. A real lifesaver at times.
  9. history_search.pl
    Do you know ctrl-R in bash? The keyboard shortcut that allows you to search through your bash-history as you type? This is an incredibly cool feature and I’ve often missed it in Irssi. Well, not anymore — the history_search script allows you to do just that. Automatically search through your history as you type. Is this awesome? (y/Y)
  10. bitlbee_*
    There are a bunch of different scripts that all helps making bitlbee much nicer in Irssi. To those of you who don’t know, bitlbee is a IM to IRC gateway. bitlbee sets up a simple IRC server you can connect to from your IRC client. From there on, just add your IM accounts and voila — no more need for additional apps to keep track of Jabber, MSN or whatever all the heathens use.
    However, IM isn’t always the same as IRC and so you will face some annoyances with this approach. The bitlbee scripts for Irssi helps alleviate some of that pain by adding tab completion for commands, advanced contact lists, join notices (in your statusbar), proper nick change notifications, typing notices and more. If you use bitlbee a lot, these scripts will save you a lot of time and make the experience less… painful.
    The bitlbee scripts are available from quadpoint.org and the-timing.nl

Of course, there’s a craptic megaton of nice Irssi scripts out there. These are just some of the scripts I’ve found most useful. Feel free to drop a comment about the very best Irssi scripts in your arsenal :-)