Getting started
The one-liner
bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh)
This downloads the released installer script and runs it with bash. Nothing
is installed by the download itself; the script asks before it changes
anything, and --yolo answers every prompt with the default:
bash <(curl -fsSL https://aibp.drupalstarforge.ai/install.sh) --yolo
The URL redirects to
https://project.pages.drupalcode.org/one_line_installer/drupalaibp, the
script published on GitLab Pages. Publishing happens only when a release
tag is cut, so this always serves the latest release. To try unreleased
work from the development branch, use the raw branch URL instead:
bash <(curl -fsSL https://git.drupalcode.org/project/one_line_installer/-/raw/2.0.x/drupalaibp)
What it does to your machine
The installer touches the host as little as possible:
- bash 4 (macOS only). macOS ships bash 3.2. On an old bash the script installs a side-by-side bash via Homebrew (installing Homebrew first if absent) and re-executes itself under it. The system bash is never touched.
- Docker. If no Docker provider is present, it installs one: Docker
Desktop guidance on macOS, Docker Engine via the distribution's package
manager on Linux (this is where
sudois needed). - DDEV. If
ddevis not on yourPATH, it runs DDEV's official install script, which also sets upmkcertsohttps://*.ddev.sitecertificates are trusted.
Everything else runs inside the DDEV web container: Composer, Drush, npm, and the coding-agent CLIs. Nothing else lands on the host.
The build
All questions come first: project name, install profile (Drupal CMS, standard, minimal, or a drupal.org site template), coding agents, agent skills, the command denylist, extra Drupal installations, any custom questions from a config, and the optional GitHub setup. After the last answer the build runs unattended:
- Creates the project directory and the DDEV configuration.
- Stages the coding-agent add-ons and starts DDEV once.
- Scaffolds the site with
composer create-projectand runsdrush site:install(Drupal builds). - Installs the dev defaults for Drupal builds:
drupal/core-dev,drupal/ai_best_practices, and a starterphpunit.xml. - Applies config provisioning (Composer repositories and packages, modules, recipes, DDEV add-ons) and the chosen extras.
- Installs the agent skills, writes the command denylist and the managed
block in
AGENTS.md. - Exports Drupal configuration to
config/sync, opens the site in your browser, and pushes to GitHub if you opted in. - Hands the shell over to the chosen coding agent, if any.
You end up with a site at https://<name>.ddev.site (admin/admin) and, if
you chose an agent, a prompt inside it. Start the agent again any time with
ddev claude, ddev codex, or ddev opencode.
Config-driven builds
A .drupalaibp/ directory with one or more *.json configs pre-configures
the entire build. The installer picks it up automatically from the directory
you launch in, or you point at a source explicitly:
drupalaibp https://git.drupalcode.org/project/foo # a git repo with .drupalaibp/
drupalaibp ./team-config # a local directory
drupalaibp my-config # a saved config
See the config reference for the schema and the examples for two complete configs.
Management mode
Running the installer inside a directory that is already a DDEV project
opens a management menu instead of building. It adds or removes the tooling
the installer manages: AI Best Practices, coding agents and their denylist,
agent skills, DDEV add-ons, and GitHub setup (add only). Management mode is
interactive and refuses --yolo.
Next steps
- Install the global command so
drupalaibpis always available: see Global install. - Browse every flag in the CLI reference.
- Tear a project down again: see Uninstall and cleanup.