A command line interface for Pantheon
Requires
- php: >=8.2
- ext-json: *
- composer/semver: ^3
- consolidation/comments: ^1.0.2 || ^2
- consolidation/filter-via-dot-access-data: ^2.0
- consolidation/output-formatters: ^4
- consolidation/robo: ^3 || ^5
- consolidation/self-update: ^2.0.4
- consolidation/site-alias: ^4.0
- czproject/git-php: ^4.0
- guzzlehttp/guzzle: ^7.0
- justinrainbow/json-schema: ^5.2
- league/container: ^4.2
- monolog/monolog: ^3.10
- psy/psysh: ^0.12.6
- rogervila/array-diff-multidimensional: ^2.0
- twig/twig: ^3.3
Requires (Dev)
- behat/behat: ^3.2.2
- erusev/parsedown: ^1.7
- friendsofphp/php-cs-fixer: ^3.17
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^4.0
- wdalmut/php-deb-packager: ^0.0.14
Suggests
None
Provides
None
Conflicts
Replaces
None
- 4.x-dev
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.2
- 4.2.1
- 4.2.1-rc.1
- 4.2.0
- 4.2.0-rc.1
- 4.1.9
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.4
- 4.1.3
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 4.0.0-alpha2
- 4.0.0-alpha1
- 3.x-dev
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc1
- 3.0.0-beta1
- 3.0.0-alpha9
- 3.0.0-alpha8
- 3.0.0-alpha7
- 3.0.0-alpha6
- 3.0-alpha5
- 3.0.0-alpha4
- v3.0.0-alpha3
- 3.0.0-alpha2
- 3.0.0-alpha1
- 2.x-dev
- 2.6.6
- 2.6.5
- 2.6.4
- 2.6.3
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- 1.0.0-beta.2
- 1.0.0-beta.1
- 0.13.x-dev
- 0.13.6
- 0.13.5
- 0.13.4
- 0.13.3
- 0.13.2
- 0.13.1
- 0.13.0
- 0.12.0
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.11.0
- 0.10.6
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.6
- 0.5.5
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4-beta
- 0.3.4-beta
- 0.3.3-beta
- 0.3.2-beta
- 0.3.1-beta
- 0.3.0-beta
- 0.2.0-beta
- 0.1.1-beta
- 0.1.0-beta
- 0.0.6-alpha
- 0.0.5-alpha
- 0.0.4-alpha
- 0.0.3-alpha
- 0.0.2
- 0.0.2-alpha
- 0.0.1-alpha
- v0.0.0-alpha
- dev-pin-github-actions
- dev-docs/DEVX-8113-contract-followup
- dev-program-status-osc-7501
- dev-vuln-VUL-43070
- dev-fix/confirm-before-overwriting-saved-token
- dev-php85
- dev-issue-2917
- dev-docs/terminus-migration-spec
- dev-PRT-3492
- dev-modern-auth
- dev-DEVX-6989
- dev-ci-ssh-key-issue
- dev-DEVX-test-resilience
- dev-auth-extension
- dev-fix-early-field-validation
- dev-prerelease-4.2.1-rc.1
- dev-dependencies-20260420
- dev-update_to_4.1.9
- dev-fix/workflow-watch-poll-interval-and-timeout
- dev-update_to_4.1.8
- dev-fix/ssh-output-raw-mode
- dev-update_to_4.1.7
- dev-back_to_4.2.0-dev
- dev-update_to_4.1.6
- dev-update_to_4.1.5
- dev-performance
- dev-refactor/extract-wait-for-commit-utility
- dev-site-create-org-warning
- dev-api-notices
- dev-non-json-parsing
- dev-php85-phase5-modern-features
- dev-terminus-cleanup-reload
- dev-fix-forward-env
- dev-update_to_4.1.2
- dev-hackweek2026
- dev-curl-debug
- dev-release-docs-automation
- dev-cookbook
- dev-issue-2706
- dev-signal-handling
- dev-vfalconisumo/4.x
- dev-claude-dot-md
- dev-DEVX-5163
- dev-TEST-FORK-PR-2723
- dev-DEVX-5146
- dev-request-body-logging
- dev-logging-envmodel
- dev-terminus-wrapper-script
- dev-main
- dev-LOPS-2300-Create-Terminus-Workflow-waitForCommit-command
- dev-LOPS-2222
- dev-LOPS-2030-cs
- dev-LOPS-972
- dev-cmso-1347-test
- dev-fix-nightly-tests
- dev-improvements-all-in-one
- dev-debug-print
- dev-create-command
- dev-d9ify-archive-see-3.0
- dev-pre-trash—3.0
- dev-core-2239-drops8-to-ic
- dev-pr/1759
This package is auto-updated.
Last update: 2026-11-10 00:14:23 UTC
README
Status
About
Terminus is Pantheon's Command Line Interface (CLI), providing at least equivalent functionality to the Pantheon's browser-based Dashboard and easier scripting.
If you would like to contribute, pull requests are welcome!
Rollback
Terminus ships as a release, not a running service. A tag on 4.x publishes a GitHub release with terminus.phar attached, and a PR on pantheon-systems/homebrew-external bumps the Homebrew formula. Merging to 4.x deploys nothing. Releasing and rolling back are described in full in DEPLOYMENT.md.
When to roll back
- New issues on the issue queue, or reports in
#ask-hostingor from Support, describe a regression that started with the latest release. - The release's
terminus.phardoesn't run:php terminus.phar --versionfails or prints the wrong version. - A command that works with the previous release fails with the new one, e.g.
terminus auth:whoami.
Fixing forward with a patch release is the norm. Pull a release back when it is broken badly and the fix will take more than a few hours.
Roll back a release
Before you start, note the previous good version, <PREVIOUS_VERSION>.
- Mark the bad release as a pre-release. Don't delete or move its tag:
gh release edit <BAD_VERSION> -R pantheon-systems/terminus --prerelease
GitHub's latest release falls back to<PREVIOUS_VERSION>, soterminus self:updatestops offering<BAD_VERSION>. The update notice follows within its 7-day cache. - Open a PR on
pantheon-systems/homebrew-externalthat setsurlandsha256inFormula/terminus.rbback to<PREVIOUS_VERSION>, and get it merged. Use the values from that file's history, or hash the asset:curl -sL https://github.com/pantheon-systems/terminus/releases/download/<PREVIOUS_VERSION>/terminus.phar | shasum -a 256. - Ship the fix as the next patch release. Never reuse or move a tag.
What a rollback does not undo
Nobody's installed copy goes back on its own. self:update never downgrades, and brew upgrade won't either. Tell affected users to reinstall:
- PHAR:
curl -L https://github.com/pantheon-systems/terminus/releases/download/<PREVIOUS_VERSION>/terminus.phar --output <PATH_TO_TERMINUS> - Homebrew, once the formula revert is merged:
brew update && brew reinstall terminus - Composer: pin the constraint to
<PREVIOUS_VERSION>
CI images built in the meantime (docker-build-tools-ci runs self:update at build time) keep the bad version until they're rebuilt.
Verify the rollback
gh api repos/pantheon-systems/terminus/releases/latest --jq .tag_nameprints<PREVIOUS_VERSION>.Formula/terminus.rbon the tap'smainpoints at<PREVIOUS_VERSION>.terminus self:updateon<BAD_VERSION>printsNo update available, and after reinstalling, the reported symptom is gone.
Who to page
The owning team is Developer Experience (@pantheon-systems/developer-experience). Ask in #ask-hosting. Nobody is paged for Terminus.
The Manual
Our documentation is kept in the Terminus Manual, located here: https://pantheon.io/docs/terminus
Requirements
| Operating System | Version |
|---|---|
| MacOS | 10.14+ |
| Ubuntu | Latest LTS |
| Windows + WSL + Ubuntu | 20.0+ |
Package Manager
- Homebrew for mac
Required Packages
These packages are required to take full advantage of Terminus.
-
Composer 2 (Needed for the plugin manager component)
-
PHP (v8.2+)
-
Git (May be needed for the plugin manager component)
-
OpenSSH 7.8 or later
Recommended Packages
-
Drush (Useful to run incompatible-with-Terminus Drush commands)
-
WP-CLI (Useful to run incompatible-with-Terminus WP-CLI commands)
Installation
Mac OS:
Terminus is published as a package under pantheon-systems/external. To install it, you should run:
brew install pantheon-systems/external/terminus
Standalone Terminus PHAR
The commands below will:
- Create a
terminusfolder in your home directory (~/) - Get the latest release tag of Terminus
- Download and save the release as
~/terminus/terminus - Make the file executable
- Add a symlink to your local
bindirectory for the Terminus executable
mkdir -p ~/terminus && cd ~/terminus curl -L https://github.com/pantheon-systems/terminus/releases/download/3.6.1/terminus.phar --output terminus chmod +x terminus ./terminus self:update sudo ln -s ~/terminus/terminus /usr/local/bin/terminus