Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Travis CI Build Status: Build Status


Ducttape is a workflow management system for researchers who heart unix. It allows you to:

  • Write tasks using bash and have dependencies among tasks automatically managed (like Make)
  • Track the versions of the software used, the data used, and even the task descriptions themselves in a very detailed way
  • Quickly and easily run your workflow under multiple input conditions while re-using intermediate results -- without copy-pasting

Want to learn how to use Ducttape? Read

Want to help develop ducttape? Read

Quick Start

First, download and unpack the program:

tar -xvzf ducttape-0.3.tgz

Add ducttape to your PATH:

export PATH=$PWD/ducttape-0.3:$PATH

Run a tutorial example:

cd ducttape-0.3/tutorial
ducttape 01-01-hello-world.tape

Or, if you're coming from machine translation, try building the entire cdec tutorial in a single command (see

cd cdec_tutorial/
# Run 2 jobs at a time
ducttape tutorial.tape -C tutorial.tconf -j2
# Now view a summary table of the results! (All 1 of them)
ducttape tutorial.tape -C tutorial.tconf summary scores

What's next? Read

System-wide Installation

tar -xvzf ducttape-0.3.tgz
cd ducttape 0.3
sudo make install

Design Principles

  • Simple things should remain simple.

  • You should be able to start simple. Run. Add complexity. And re-run.

  • Workflow management and data flows have very different design patterns than other sorts of code. Writing them in C++, Java, or XML is annoying.


To keep updated on the latest versions of ducttape, subscribe to our low-traffic announcement mailing list:

If you have questions about how to use ducttape, please post on StackOverflow using the tag "ducttape": If you'd like to help other ducttape users or keep up with questions being asked about ducttape, please use to create a daily email subscription to StackExchange questions with the tag "ducttape".

To stay in the loop on ducttape development, subscribe to our higher traffic development mailing list:

To keep updated on bleeding edge development of ducttape, subscribe to our higher traffic commits mailing list:

Emacs Mode

To get syntax highlighting in emacs, add a line similar to the following in your ~/.emacs file:

(load "$PATH_TO_DUCTTAPE_HERE/tool-support/emacs/ducttape.el")

Vim Mode

To get syntax highlighting in vim, copy (or symlink) the ducttape's vim syntax highlighting file, like so:

$ mkdir -p ~/.vim/syntax
$ cp $PATH_TO_DUCTTAPE_HERE/tool-support/vim/ducttape.vim ~/.vim/syntax/ducctape.vim

Then add a line to your ~/.vimrc to create an association with .tape files:

syntax on
filetype on
au BufRead,BufNewFile *.tape set filetype=ducttape

Related Projects

Minimal Web UI for ducttape:

Better Vim Mode: (This will either replace or be merged with the current vim files)