Extra Drupal installations
Extras are optional Drupal tools offered as one multi-select during the
questions ("Any extra Drupal installations?"). Defaults are pre-ticked and
are what --yolo installs; everything else starts unticked. Extras only
apply to Drupal builds.
What ships today
| Id | Default | What it installs |
|---|---|---|
dtk |
yes | Drush Token Killer: drupal/dtk, which compacts drush output so agents spend fewer tokens reading it. Also runs drush dtk:install <agent> for each chosen agent, because DTK compresses nothing until an agent opts in. |
tool_api |
no | Tool API + Toolbelt (experimental): drupal/tool and drupal/tool_belt, so agents discover and run Drupal actions with drush tool:search, tool:info, and tool:run. |
droost |
no | Droost (experimental): drupal/droost and drupal/mcp_server, letting AI agents build inside the site over MCP. Dev only, read-only by default. |
agent_ready_drupal_build_kit |
no | Agent-Ready Drupal Build Kit: installs no module. It adds the kit's agent skill, which drives an agent to rebuild an existing website as a Drupal CMS site. Requires the Drupal CMS profile; on standard or minimal it installs nothing and says so loudly. |
glab |
no | GitLab CLI for drupal.org: bakes a pinned glab into the web image, authenticates it against git.drupalcode.org with a Personal Access Token you paste, and wires a git credential helper so git push over HTTPS works too. Run it with ddev glab <args>. Interactive only; unattended runs skip it with a warning. |
Choosing extras non-interactively
--extras tool_api,dtkis an explicit list that replaces the defaults.--extras ""installs none.--add-extras droostinstalls the defaults plus the listed ids.- Both together compose: the
--extraslist becomes the base the additions land on. - A config's
"extra_scripts": ["tool_api", "dtk"]sets the same list, and--add-extrason top of a config extends it instead of replacing it.
Extras install best effort: a failing or unknown extra prints a warning and the build continues.
How extras work
Each extra is one script in the installer source
(src/lib/extras/)
that declares its own menu entry and whether it is a default. The menu, the
--extras values, and the config's extra_scripts ids all come from that
one place, so adding an extra means dropping in one file and regenerating.
See Working on the installer if you want to add one.