Installing extensions with civicrm-buildkit
As a bit of background, it may help to check out "What's a build?" and "What are the basic build techniques?".

There are a few directions one can take on that topic:


Install an extension once, locally, for a single build.
Modify the build-document of an existing build-type so that the extension will always be installed in the future. (For example, if you modify the build-document for wp-demo, then the extension would be installed on wp45.demo.civicrm.org, wp46.demo.civicrm.org, etc. every night when the demo sites are rebuilt.)
Create a custom build-type with a custom build-document using your own curated list of extensions/modules.


Installing once is easiest -- you can use basically any extension-management practice that you'd use normally (with or without civibuild). The web-based manager or drush cvapi will be fine.

To modify a build-document, you would create or edit files in app/config -- you'll need to create steps for download and install. For example, in drupal-demo:


The file drush.make.tmpl defines all the download steps
The file install.sh defines the installation steps.


Digging into those files, you can see how it handles the CiviVolunteer extension. (Search for "volunteer".)

To create a new build-document, you should copy one of the existing build-types. The best starting points are (IMHO) drupal-demo (which uses drush with drush-make), wp-demo (which uses wp-cli and git), and wmff (which uses git submodules).

When editing a build-document, the development-feedback-loop (edit=>run=>validate=>repeat) can be a bit slow. To mitigate that, buildkit includes caches and nuanced rebuild commands.