Pestle is two, (or maybe three), different things.

Number 1: Pestle is a set of code generation tools for the PHP framework that powers the open source version of Magento 2.

Number 2: Pestle is, itself, a framework for writing command line PHP programs and modules that can import functions from other programs and modules _w

Number 3: Pestle is how I, Alan Storm, organize many of the the one-off command line PHP Programs that have helped me throughout my career.

This documentation is also split into three sections.

First, we'll cover Pestle's code and configuration generation ability w/r/t Magento two.

Second, we'll cover some of the one-off Magento 2 scripts that ship with pestle. Many of these aren't as robust as they might be, but still offer useful functionality or a good start towards a more robust solution.

Finally, we'll close with some information about developing the core pestle code base itself -- both how to use pestle for your own command line programs, as well as work with the internals of pestle's framework code.

Getting Started

The easiest way to get started is to grab the latest build using curl

$ curl -LO

Pestle is distributed as a PHP phar file -- that's short for PHP archive. A phar file allows you to bundle up a bunch of PHP and distribute it as a single program. You should be able to run a phar with a specific version of PHP, or execute the phar file itself.

$ php pestle.phar
$ chmod +x pestle.phar
$ ./pestle.phar
$ mv pestle.phar /usr/local/bin
$ pestle.phar                   # assumes /usr/local/bin is in your $PATH

Most of these docs will presume you're executing pestle.phar directly via a directory that's in your shell's path.

You can see a list of available commands with the following

$ pestle.phar list-commands

and get help for a specific command (magento2:generate:module below) with

$ pestle.phar help magento2:generate:module