Background
Over the years, there have been several independent issues related to a command-line interface (CLI) including multiple ideas project and development issues. These have lacked any formal initiative including planning, scope and roadmap. At the start of 2026, a renewed effort has begun to get this done and we organized into a community-led initiative.
Problem
The reliance on third-party CLI tools including Drush is harder to maintain with updates to Drupal core dependencies, which makes it more difficult for Drupal users and contribution tool maintainers.
Proposed resolution
Improve the existing drupal CLI so that Drupal 12 has a first-class CLI that is extendable in core and contrib for use by site maintainers, developers, and site hosts.
Process and where to find it
An initial documentation guide is at CLI in Core Initiative, which will contain details as the initiative progresses.
We are organizing as a community-led initiative in the #cli-in-core Drupal Slack channel with regular synchronous meetings and follow-up asynchronous chat. Currently this is proposed as Wednesday 14:00 UTC to 14:30 UTC, but we also need/want a AEST/JST alternative time (proposed 23:00 UTC to 23:30 UTC).
We have a spreadsheet to identify stakeholders, track merge requests and issues, identify commands, log decisions, and capture questions and concerns.
This issue will be a parent issue for related issues being worked on.
Proposal roadmap
There are 4 proposed phases for this initiative:
- Improve the drupal CLI by allowing discoverable commands, installed in bin-able, and robust.
- A MVP using
symfony/runtimethat would allow existing commands in the drupal CLI to be used as-is, and allow experimentation in contrib. - Ideally ASAP and prior to Drupal Dev Days 2026
- A MVP using
- Identify and implement essential commands for site owners and developers ideally for 12.0.0 release.
- CLI in core has commands that allow it be marketable and usable.
- Ideally in 12.0.0, but that may only fall under Scenario #3. Otherwise this can be added during a minor release such as 12.1.0.
- Best practices and documentation are established for command aliases, container-aware commands, and usage
- Implement Drush 14.x commands suitable for core as-needed during Drupal 12 release cycle.
- CLI in core has commands that are considered feature complete with commands being deprecated or introduced as necessary.
- Most-likely a minor release in 2027.
- Translatable commands
Not in scope
- Introduce drush/drush as a dependency to core.
- Implement every Drush or Drupal console command into core.
- Introduce a new system into core, only change and make discoverable an existing system.
- ...
Related work
- Contribution tools
- DrupalForge
- DDEV in the Cloud
- DDEV
- Drush
Existing core features
core/scripts/drupal has limited functionality usable by core developers, Drupal demo users, and recipe developers. It is not extendable and only works with a non-bootstrapped site.
Open core issues
- Blocker: #3453474: CLI entry point in Drupal Core will complete Phase 1 of the initiative.
- #3313404: Use symfony/runtime for less bespoke bootstrap/compatibility with varied runtime environments
Contributed projects
Drush (off-site)
Team and resources
This list was originally populated based on Slack channel participation.
- moshe - Technical Lead (Drush maintainer)
- flux423 - Initiative PO (Thomas Scola - Bluefly.io)
- mradcliffe - Stakeholder, Implementer, Reviewer (Mentoring Working Group)
- tekNorah - PM
- greg.1.anderson - Architecture
- dpi - Architecture
- acbramley - Implementer
- chi - Reviewer
- kim.pepper - Implementer
- dww - Reviewer/Implementer
- longwave -
- quietone -
- larowlan - Reviewer
- bircher - Reviewer/Implementer
- penyaskito - Reviewer (locale)
- andypost -
- aaronmchale -
- Jack Franks -
Meeting pings
Please add or remove your Slack username to one of the lists below:
- Americas/Europe/Africa/India synchronous meeting folks to ping:
- andypost, bircher, moshe, Jack Franks, mradcliffe, moshe, tekNorah, penyaskito, Thomas from Bluefly
- Australia/Oceania/Americas synchronous meeting folks to ping:
- mradcliffe, moshe, quietone, larowlan, acbramley, longwave, dww
Comments
Comment #2
mradcliffeComment #3
mradcliffeFixing unterminated tags.
Comment #4
mradcliffeAdding issue that has some related efforts.
Comment #5
flux423Comment #6
mradcliffeI was reviewing old issues and I found some discussion about translation. drupal/console supported their own type of localization in commands.
We should talk about translation and where it fits in the initiative.
Comment #7
mradcliffeI added translation as Phase 4 based on meeting and Slack thread discussion.
I added establishing best practices and documentation to Phase 2.
Comment #8
dwwAdded myself as "Reviewer/Implementer" and added to the ping list for the meeting I'm more likely to be able to attend.
Exciting times!
Thanks,
-Derek
Comment #9
mradcliffetwig_tweak module implements commands and they work as-is thanks to @longwave's testing, and I think there's an opportunity in the initiative to explore what core can improve with test traits or traits that may be helpful to contrib modules providing commands like twig_tweak.
Comment #10
mradcliffe@ifrik suggested a feature request to expose the commands in the GUI (possibly as a block on admin. pages) so that site builders/tech admins would see for an example on the page where they run cron, that they also could type
dr system:cron.I think we are missing help from the scope. We talked about documentation, but not providing help to site owners directly on the site.
A couple more ideas about help: