Skip to main content

doit - Automation Tool

Project description


doit comes from the idea of bringing the power of build-tools to execute any kind of task

A task describes some computation to be done (actions), and contains some extra meta-data.

def task_example():
    return {
        'actions': ['myscript'],
        'file_dep': ['my_input_file'],
        'targets': ['result_file'],

doit uses the task’s meta-data to:

Traditional build-tools were created mainly to deal with compile/link process of source code. doit was designed to solve a broader range of tasks.

Task’s metadata (actions, dependencies, targets…) are better described in a declarative way, but often you want to create this metadata programmatically.

def my_task_action(dependencies):
     # do something


Other features…

What people are saying about doit

Congratulations! Your tool follows the KISS principle very closely. I always wondered why build tools had to be that complicated. - Elena

Let me start by saying I’m really lovin doit, at first the interface seemed verbose but quickly changed my mind when I started using it and realized the flexibility. Many thanks for the great software! - Michael Gliwinski

I love all the traditional unix power tools, like cron, make, perl, …, I also like new comprehensive configuration management tools like CFEngine and Puppet. But I find doit to be so versatile and so productive. - Charlie Guo

I needed a sort of ‘make’ tool to glue things together and after trying out all kinds, doit … has actually turned out to be beautiful. Its easy to add and manage tasks, even complex ones– gluing things together with decorators and ‘library’ functions I’ve written to do certain similar things. - Matthew

Some time ago, I grew frustrated with Make and Ant and started porting my build files to every build tool I found (SCons, Waf, etc.). Each time, as soon as I stepped out of already available rules, I ran into some difficult to overcome stumbling blocks. Then I discovered this little gem of simplicity: doit. It’s Python-based. It doesn’t try to be smart, it does not try to be cool, it just works. If you are looking for a flexible little build tool for different languages and tasks, give it a chance. (…) - lelele

Project Details

  • This is an open-source project (MIT license) written in python (runs on Python 2.6 through 3.3)

  • Download from PyPi

  • Project management (bug tracker, feature requests and source code ) on bitbucket.

  • Questions and feedback on google group.

  • This web site is hosted on

  • doit-recipes contains a collection of non-trivial examples and a list of projects using doit.

  • Professional support and consulting services available from doit creator & maintainer (schettino72 at

This blog post explains how everything started.


doit is under active development. Version 0.19 released on 2012-12.

doit core features are quite stable. So if there is no recent development, it does NOT mean doit is not being maintained… Development is done based on real world use cases. If I don’t need a feature and nobody never asked for it, it is not implemented ;) It is well designed and have a very small code base so adding new features isn’t hard.

If you use doit please drop me a line telling me your experience…

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doit-0.19.0.tar.gz (314.7 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page