Automating packaging and software distribution on OS X.
Python Shell


Latest release is here.

AutoPkg is an automation framework for OS X software packaging and distribution, oriented towards the tasks one would normally perform manually to prepare third-party software for mass deployment to managed clients.

These tasks typically involve at least several of the following steps:

  • downloading an application and/or updates for it, usually via a web browser
  • extracting them from a multitude of archive formats
  • adding site-specific configuration
  • adding sane versioning information
  • "fixing" poorly-written installer scripts
  • saving these modifications back to a compressed disk image or installer package
  • importing these into a software distribution system like Munki, Casper, Absolute Manage, etc.
  • customizing the associated metadata for such a system with site-specific data, post-installation scripts, version info or other metadata

Often these tasks follow similar patterns for each individual application, and when managing many applications this becomes a daily task full of sub-tasks that one must remember (and/or maintain documentation for) about exactly what had to be done for a successful deployment of every update for every managed piece of software.

With AutoPkg, we define these steps in a "Recipe" plist-based format, run automatically instead of by hand, and shared with others.


Install the latest release.

AutoPkg requires OS X 10.6 or later, and Git is highly recommended to have installed so that it can manage recipe repositories. Knowledge of Git itself is not required.

Git can be installed via Apple's command-line developer tools package, which on 10.9 can be prompted for installation by simply typing 'git' in a Terminal window.


A getting started guide is available here.

See the wiki for more documentation.


Discussion of the use and development of AutoPkg is here.