Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

doit - Automation Tool

Project description


doit comes from the idea of bringing the power of build-tools to execute any kind of task. It will keep track of dependencies between “tasks” and execute them only when necessary.

Unlike other build-tools it allows you to define how/when a task should be considered out-of-date (instead of just checking for changes in files). It makes easy to integrate tasks defined by both python code and external programs (shell commands). Plain python is used to define tasks metadata allowing easy creation of task definition dynamically.

doit was designed to be easy to use and “get out of your way”.

doit can be used as:

  • a build tool (generic and flexible)
  • home of your management scripts (it helps you organize and combine shell scripts and python scripts)
  • a functional tests runner (combine together different tools)
  • a configuration management system
  • manage computational pipelines


  • Easy to use, “no-API”
  • Use python to dynamically create tasks on-the-fly
  • Flexible, adapts to many workflows for creation of tasks/rules/recipes
  • Support for multi-process parallel execution
  • Built-in integration of inotify (automatic re-execution) (linux/mac only)
  • Runs on Python 2.5 through 3.2

If you are still wondering why someone would want to use this tool, this blog post explains how everything started.

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 realised 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

Download files

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

Files for doit, version 0.14.0
Filename, size File type Python version Upload date Hashes
Filename, size doit-0.14.0.tar.gz (272.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page