: Documentation

CIA Clients

This page is organized into sections based on the type of system you want to connect to CIA. If you have written a new CIA client script, send it to Micah to get it added to this list.


Mike Hearn wrote a client for GNU Arch. You can find it on the arch wiki or stored locally.


Robert Collins contributed a client for Bazaar, using email delivery: cia_baz.sh.

Bazaar-NG (bzr)

Jelmer Vernooij contributed a client for bzr, using XML-RPC delivery. Download it from Jelmer's site or snag the local copy of cia_bzr.py.


Chris Larson has contributed a client for BitKeeper. You'll need both ciabot_bk.sh and post-outgoing.ciabot.


Petr Baudis has written the definitive CIA client for the Concurrent Versions System, ciabot_cvs.pl. It is written in Perl, sends its commits over e-mail or XML-RPC, and even supports a simple system for client-side filtering of unwanted messages.

If you're using version 1.12 of CVS, you'll need to use a version of the client script that supports its new loginfo format. ciabot_cvs_1.12.pl was contributed by Jeffrey Carlyle.

There is a HOW-TO document with a walk-through for using the CVS client script with SourceForge.net.


Patrick McFarland has contrbuted a client for Darcs, which acts as a wrapper for your real 'darcs' binary. Download it from Patrick's site or grab the local copy of cia_darcs.pl.


Stable versions of the Python and shell hook scripts are distributed in the contrib directory of the git source, in the ciabot subdirectory. There are also development versions which may have more features.


The CIA server now has built-in support for Subversion repositories. You don't need a client script when using this built-in support. (However, the client script is more customizable and a little faster.)

Micah Dowty has written two CIA clients for Subversion. The simpler of the two, ciabot_svn.sh, only supports email, and provides no way to include branch or module information. A more complex script written in Python, ciabot_svn.py, uses XML-RPC via Python's standard xmlrpclib module and supports regular expressions for extracting module and branch information from paths.

André Malo's spiffy svnmailer package is a tool that can post commit information to a variety of services, including mail, news, and CIA.

Mercurial (Hg)

Brendan Cully contributed a CIA client for Mercurial, with support for XML-RPC message delivery. You can get it from Brendan's repository or you can download a local copy of hgcia.py. See recent changes to hgcia, tracked by hgcia itself. There is now a Mercurial extension distributed by default that you can use.


Interested in developing CIA support for Trac? There is an open enhancement request for a notification plugin. This ticket includes a patch with a very simple CIA client.