Remotely editing Trac using a command line interface


This script is a command line interface allowing the manipulation of Trac objects. It is a Python based interface to the most used Trac functions. For example, it can be used to script releases and help build release candidates.

Key features:

  • reading wiki pages
  • editing wiki pages
    • from the shell, commit message style
  • reading tickets or ticket attributes
  • creating tickets
  • updating ticket attributes

A wrapper for editing wiki pages directly inside emacs is also included, though this is rudimentary.

Bugs/Feature Requests

Existing bugs and feature requests for TracCmdScript are here.

If you have any issues, create a new ticket.


2 / 2


1 / 1


Download the zipped source from here.


You can check out TracCmdScript from here using Subversion, or browse the source with Trac.


The xmlrpc support must be enabled by installing XmlRpcPlugin, as everything is done via xmlrpc.


Getting a ticket:

$ ticket 1
1 status reopened
1 type defect
1 description Test patch
1 description 
1 description Something went tits. Fix it!
1 reporter admin
1 cc 
1 ticket_status sign off requested
1 component tech.homepage
1 summary Test patch
1 priority minor
1 owner nferrier
1 version 
1 milestone 
1 keywords 
1 resolution fixed

Getting a ticket attribute:

$ ticketdetail 1 resolution
#1 resolution: fixed

Getting a wiki page:

$ wiki TracGuide | head -n15
(:tracwikiproperties (
:comment ""
:lastModified "20090410T15:29:13"
:version "2"
:name "TracGuide"
:author "trac"

= The Trac User and Administration Guide =

The TracGuide is meant to serve as a starting point for all documentation regarding Trac usage and development. The guide is a free document, a collaborative effort, and a part of the [ Trac Project] itself.

== Table of Contents ==
Currently available documentation:
 * TracGuide (This page)  -- Documentation starting point.

A more complex example is the use in a release candidate maker, where a number of repos in a distributed revision control system are pulled together to make a release candidate: ticket $TICKETS \
  | sed -rne 's,^([0-9]+).*[^h](http(s)*://[^] ]+).*,\1 \2,p' \
  | awk '{print $2}' \
  | xargs hg in 

This shows incoming patches from hg repos mentioned in $TICKETS.

Recent Changes

16295 by rjollos on 2017-03-07 01:25:27
Add svn:exectuable property missing from r16294
16294 by rjollos on 2017-03-07 01:18:32
Set executable permissions for .py file in Subversion

Minor code style changes.

9532 by nicferrier on 2010-11-26 22:49:25
major new revision of


Author: nicferrier
Maintainer: Nic Ferrier

Last modified 3 months ago Last modified on Dec 29, 2016, 7:21:28 AM