monotone in itself is quite useful, and it can be made even more useful through hooks, user supplied commands (through the register_command), external scripts, library modules, completion modules, ...
There are recommendations on how to ?write hooks, or how one can ideally ?install hooks contributed by others.