Latest Version: 0.2.1 ("phantom")

SUBTERFUGUE is a framework for observing and playing with the reality of software; it's a foundation for building tools to do tracing, sandboxing, and many other things. You could think of it as "strace meets expect."

image of NetThrottle limiting an ncftpget session


  • simple interface for writing tools
  • can follow, rewrite, and annul system calls
  • can follow, rewrite, and annul signals (with limits)
  • follows whole process (and thread) trees
  • can follow across fork, vfork, and clone
  • has a fairly good wait4 emulation
  • can follow job control (with limits)
image of several xclock's showing different times


  • a description with more detail on SUBTERFUGUE's many features and limitations
  • the motivation behind SUBTERFUGUE
  • some screenshots, giving concrete examples of what you can do with SUBTERFUGUE
  • a tutorial, which walks through the steps of using and writing new tricks for SUBTERFUGUE
  • a FAQ list

Trying it out

SUBTERFUGUE runs under Linux 2.4. It's implemented in Python, including a few Python extension modules written in C. Python 1.5.2 or later is required.

You can download the latest version of SUBTERFUGUE from the SUBTERFUGUE project page at SourceForge. A debian package is now available, too.

Mailing Lists

  • subterfugue-announce - new release and other important announcements
  • subterfugue-dev - developer traffic
  • subterfugue-cvs-commits - voluminous cvs commit logs

Please send bug reports, comments and patches to subterfugue-dev.


SUBTERFUGUE is free software, and may be redistributed and used under the terms of the GNU Public License.

Thanks to SourceForge for providing their über-cool hosting environment.