So, for a while now Colloquy has had 2 nice new things going for it:

  1. The ability to write plugins in F-Script
  2. An installation of Trac on the website


F-Script is pretty neat. It’s a Smalltalk-based language that lets you use the Cocoa frameworks to do some pretty nifty stuff. One of the best things about it is it lets me write Colloquy plugins that use the Cocoa frameworks without having to compile anything or relaunch Colloquy each time I want to test a new iteration of the plugin. It also lets me open up an F-Script console in Colloquy and play with it interactively.


Trac is a pretty nifty Python project managing tool. It ties directly into Subversion and lets me look at all the changesets for the project, view svn logs, browse the repository (for any revision), keep track of tickets, and it has a wiki. And any part of this can hyperlink to any other part for quick navigation and cross-referencing. This is achieved via something called TracLinks. TracLinks is a format of writing references to tickets, reports (basically smart collections of tickets), milestones, changesets, source files, and wiki pages and it’s pretty simple. #42 and ticket:42 are both links to ticket number 42, [42] and changeset:42 are links to changeset number 42, and so on. This is all well and good if you’re inside Trac, but outside Trac, say, in an IRC channel where you get commit messages via CIA, it doesn’t help. Here’s where F-Script comes in.

F-Script and TracLinks

With the power of F-Script and Colloquy, I’ve written a plugin to Colloquy that parses all incoming chat and, on channels that you specify, it will hyperlink all TracLinks (except CamelCase words, since that would be annoying) to the Trac installation you specify for the channel. What this means is, basically, I can have TracLink-formatted text in irc:// be hyperlinked to the proper Trac page for the Colloquy Trac installation. I think this is a great help not only because CIA commit messages will now be hyperlinked properly, but because you can now pass around references to tickets and wiki pages and such when chatting with your fellow software developers and everybody can jump right to the referenced page.

Installing TracLinks

Installing TracLinks has 2 prerequisites:

  1. An installation of Colloquy, either the 3/10/05 nightly or later, or a build from the repository (again, at least 3/10/05 or more recent)
  2. The F-Script framework (which can be downloaded from the home page)

Once you meet these requirements, simply download TracLinks.fscript from the Colloquy extras site (direct download link) and place it in ~/Library/Application Support/Colloquy/PlugIns. Once it’s there, go back to Colloquy and either restart it or type /reload plugins into the input pane.

Using TracLinks

To actually start using TracLinks.fscript, simply right-click on a room (the tab or drawer item, not the output pane) and select Add Trac Links. A sheet will drop down and you can enter the base Trac URL there (a sample base URL: Hit OK and the room will start hyperlinking all TracLinks. This URL is saved in a preferences file (with the domain cc.javelin.colloquy.traclinks) so you can modify it if you wish.

An alternative way to use this is to type /traclinks add base-url into the input pane of the room you wish to add TracLinks to (the base-url argument being the same as what you’d type into the sheet).

To remove TracLinks linking from a room, either right-click on the room again and select Remove Trac Links or type /traclinks remove into the input field for the room.


If you have any feedback on this plugin or on any other plugins you’d like to see written for Colloquy, feel free to leave it as a comment on this entry, or simply email me.

Quick Links

Comments are closed.