Drupal 11.4 Adds Experimental Native CLI to Core

Core Command Discovery Begins a Drush Transition
Discover Drupal graphic titled “Drupal 11.4 Brings Extensible Native CLI to Core” with text reading “The new experimental dr tool starts Drupal core’s transition toward first-class command line workflows.” A Drupal 11.4.0 available panel lists “Biggest performance improvement of the decade again,” “New native CLI experimental,” “New admin theme experimental,” “Improved password hashing security,” “More consistent PHP APIs,” and “and more.”

Drupal 11.4 adds an experimental native command line interface to core, according to the Drupal 11.4.0 release announcement. The tool is available through vendor/bin/dr and gives Drupal a Symfony Console-based command system that can discover commands from core and enabled modules. Drupal.org says the feature replaces an older hardcoded CLI script with an extensible entry point, while keeping the new interface experimental.

The change matters because Drupal has long relied on Drush for most serious command line workflows. The CLI in Core community initiative identifies reliance on third-party CLI tools, including Drush, as a maintenance issue for Drupal users and tool maintainers. Its roadmap calls for a first-class CLI in core, essential commands for site owners and developers, and suitable Drush commands during the Drupal 12 cycle.

The feature does not make Drush obsolete for current projects. The new core CLI covers a limited set of operations, while Drush still provides the wider command set used in administration, deployment, and development workflows. The current value is the foundation for command discovery rather than feature parity.

Drupal.org's change record for dr - Drupal CLI capable of running commands from modules says the old core/scripts/drupal entry point had limited use for core-provided commands. It says existing commands were refactored to be discoverable by vendor/bin/dr, which is implemented in core/scripts/dr. The same record says the older WEBROOT/core/scripts/drupal entry point is deprecated and replaced by WEBROOT/core/scripts/dr.

Modules can provide commands by placing command classes under a module's src/Command namespace and using Symfony's AsCommand attribute. Drupal then discovers those commands for the core CLI when the module is enabled. The change gives contributed and custom modules a path to expose command line operations without a Drush-only integration layer.

The initial command set remains limited. The change record identifies cache:rebuild, status, and cron commands as examples, while Webhaven notes that the early set also includes a one-time login link command and existing site install, quick-start, and recipe operations. Drupal.org also marks the dr CLI and its commands as internal and experimental while more commands are added to core.

The roadmap keeps Drush outside core. The initiative says adding drush/drush as a Drupal core dependency is out of scope, and it also rules out implementing every Drush or Drupal Console command in core. That means suitable commands are expected to be reimplemented or ported into core rather than imported wholesale.

The Drush command porting guide recommends separating business logic into Drupal services and using thin wrapper command classes where support for both Drush and the core CLI is needed. The guide says Drupal core CLI commands use Symfony attributes, while Drush commands use Drush or Consolidation attributes or legacy annotations. That distinction makes shared service logic safer than trying to use one command class for both tools.

Webhaven described the feature in a blog post as the beginning of a long shift away from Drush as a required dependency. That reading matches the Drupal.org release announcement's transition framing, but the practical conclusion remains limited. Project teams can continue using Drush while writing new command logic in a way that can support Drupal core's CLI as it matures.

Disclosure: This content is produced with the assistance of AI.

Note: The vision of this web portal is to help promote news and stories around the Drupal community and promote and celebrate the people and organizations in the community. We strive to create and distribute our content based on these content policy. If you see any omission/variation on this please reach out to us at #thedroptimes channel on Drupal Slack and we will try to address the issue as best we can.

Related Organizations

Upcoming Events

Latest Opportunities