Skip to content

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,dtk is an explicit list that replaces the defaults. --extras "" installs none.
  • --add-extras droost installs the defaults plus the listed ids.
  • Both together compose: the --extras list becomes the base the additions land on.
  • A config's "extra_scripts": ["tool_api", "dtk"] sets the same list, and --add-extras on 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.