PHPackages                             reachlocal/rl-terminus-build-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. reachlocal/rl-terminus-build-tools

ActiveTerminus-plugin[CLI &amp; Console](/categories/cli)

reachlocal/rl-terminus-build-tools
==================================

Build Tools - A Terminus plugin that contain commands to manage build assets on Pantheon.

2.0.1(6y ago)040MITPHP

Since Dec 31Pushed 6y agoCompare

[ Source](https://github.com/reachlocal/terminus-build-tools-plugin)[ Packagist](https://packagist.org/packages/reachlocal/rl-terminus-build-tools)[ RSS](/packages/reachlocal-rl-terminus-build-tools/feed)WikiDiscussions master Synced today

READMEChangelog (4)Dependencies (7)Versions (167)Used By (0)

Terminus Build Tools Plugin
===========================

[](#terminus-build-tools-plugin)

[![CircleCI](https://camo.githubusercontent.com/c5dab5246b1168ae6692b2827f9f10494ed466f83be4b19d8b8b478fafb111c3/68747470733a2f2f636972636c6563692e636f6d2f67682f70616e7468656f6e2d73797374656d732f7465726d696e75732d6275696c642d746f6f6c732d706c7567696e2e7376673f7374796c653d736869656c64)](https://circleci.com/gh/pantheon-systems/terminus-build-tools-plugin)[![Terminus v2.x Compatible](https://camo.githubusercontent.com/4cf69d5d2946c607d2f77591c24ad1f265f4d8d0b492255a97a7e5a03730aa7a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7465726d696e75732d76322e782d677265656e2e737667)](https://github.com/pantheon-systems/terminus-build-tools-plugin/tree/2.x)

Build Tools is a Terminus Plugin that contains a collection of commands useful for projects making use of an external Git provider and Continuous Integration (CI) along with [Pantheon](https://www.pantheon.io).

Table of Contents
-----------------

[](#table-of-contents)

1. [Project Purpose](#project-purpose)
2. [Requirements](#requirements)
3. [Installation](#installation)
4. [Setup](#setup)
5. [Available Services](#available-services)
6. [Commands](#commands)
7. [Customization](#customization)
8. [Build Tools Command Examples](#build-tools-command-examples)
9. [Help](#help)
10. [Related Repositories](#related-repositories)

Project Purpose
---------------

[](#project-purpose)

The main purposes of the Build Tools project are to:

**Ease the creation of new projects making use of an external Git provider, a Continuous Integration service, and Pantheon.**This is primarily done through the [`build:project:create` commands](#buildprojectcreate), which scaffolds new projects from a [template repository](#template-repositories) and performs one-time setup, such as configuring SSH keys and environment variables, needed to connect an external Git provider and CI service with Pantheon. For detailed set-up instructions, see the [Terminus Build Tools Guide](https://pantheon.io/docs/guides/build-tools/). To use your own template repository see [Customization](#customization).

**Add additional commands to Terminus to make tasks common in an automated CI workflow easier.**See [Commands](#commands) and [Build Tools Command Examples](#build-tools-command-examples) for details.

Requirements
------------

[](#requirements)

- If you are using Terminus 2, you must use the Build Tools `2.x` release
- If you are using Terminus 1, you must use [the Build Tools `1.x` release](https://github.com/pantheon-systems/terminus-build-tools-plugin/tree/1.x). Note that Terminus 1 is nearing [End of Life](https://pantheon.io/docs/terminus/updates#eol-timeline) and version 2 is recommended.

PHP `7.2` or greater is recommended.

Installation
------------

[](#installation)

### Installing Build Tools 2.x:

[](#installing-build-tools-2x)

```
mkdir -p ~/.terminus/plugins
composer create-project --no-dev -d ~/.terminus/plugins pantheon-systems/terminus-build-tools-plugin:^2.0.0-beta17

```

### Installing Build Tools 1.x:

[](#installing-build-tools-1x)

```
mkdir -p ~/.terminus/plugins
composer create-project --no-dev -d ~/.terminus/plugins pantheon-systems/terminus-build-tools-plugin:^1

```

### Note about dev dependencies

[](#note-about-dev-dependencies)

The Terminus Build Tools plugin should be installed **without** dev dependencies. If you install the plugin with a different method, such as cloning this source repository, use `composer install --no-dev` to download the project dependencies.

Setup
-----

[](#setup)

It is recommended that you use one of the provided example projects as a template when creating a new project. All of the example projects use Terminus `2` and Build Tools `2.x`.

The default template repositories are each assigned an abbreviation, as shown below:

- [WordPress](https://github.com/pantheon-systems/example-wordpress-composer): `wp`
- [Drupal 8](https://github.com/pantheon-systems/example-drops-8-composer): `d8`
- [Drupal 7](https://github.com/pantheon-systems/example-drops-7-composer): `d7`

More more details about these template repositories see [Template Repositories](#template-repositories) in this document or visit the links above.

You can get started with one of these examples by using the `build:project:create` command:

```
$ terminus build:project:create --team='My Agency Name' wp my-site

```

This command will create:

- A Pantheon site
- A GitHub repository
- A CircleCI test configuration

It will prompt you for the credentials it needs to create these assets. While GitHub and CircleCI are the defaults, other providers are supported as well. See [available services](available-services) for details.

Note: After running this command, if you get an error "There are no commands defined in the "build:project" namespace," then you may need to install this Terminus plugin first as described in [Requirements](#requirements), above.

Note: It is important to specify the name of your agency organization via the `--team` option. If you do not do this, then your new site will be associated with your user and will not have the capability to create multidev environments.

Available Services
------------------

[](#available-services)

The `build:project:create` command supports services in the following combination:

Git HostCI ServiceGitHubCircleCIGitLabGitLabCIBitBucketCircleCI### Starting a new GitLab Project

[](#starting-a-new-gitlab-project)

```
$ terminus build:project:create --git=gitlab --team='My Agency Name' wp my-site

```

### Starting a new BitBucket Project

[](#starting-a-new-bitbucket-project)

```
$ terminus build:project:create --git=bitbucket --team='My Agency Name' wp my-site

```

#### Limitations

[](#limitations)

**Bitbucket**

- Composer Lock Updater isn't working quite yet.

Commands
--------

[](#commands)

The following commands are available as part of the Build Tools plugin.

### build:project:create

[](#buildprojectcreate)

The `build:project:create` command is used to initialize projects within the Git PR workflow. Automated setup of the Pantheon website along with the corresponding Git and CI provider is included.

#### Command Options

[](#command-options)

Additional options are available to further customize the `build:project:create` command:

OptionDescription--pantheon-siteThe name to use for the Pantheon site (defaults to the name of the Git site)--teamThe Pantheon team to associate the site with--orgThe Git organization to place the repository in (defaults to authenticated user)--labelThe friendly name to use for the Pantheon site (defaults to the name of the Git site)--emailThe git user email address to use when committing build results--test-site-nameThe name to use when installing the test site--admin-passwordThe password to use for the admin when installing the test site--admin-emailThe email address to use for the admin--stabilityThe stability to use with composer when creating the project (defaults to dev)--keepThe ability to keep a project repository cloned after your project is created--use-sshThe ability to perform the initial git push to the repository provider over SSH instead of HTTPS--ciThe CI provider to use. Defaults to "circleci"--gitThe git repository provider to use. Defaults to "github"--visibilityThe visibility of the project. Defaults to "public". Use "public" or "private" for GitHub and "public", "private", or "internal" for GitLab--regionThe region to create the site in. See [the Pantheon regions documentation](https://pantheon.io/docs/regions#create-a-new-site-in-a-specific-region-using-terminus) for details.See `terminus help build:project:create` for more information.

### build:project:repair

[](#buildprojectrepair)

The `build:project:repair` command is used to repair projects that were created with the Build Tools plugin. This is useful for rotating credentials, such as provider authentication tokens.

#### Command Options

[](#command-options-1)

Additional options are available to further customize the `build:project:repair` command:

OptionDescription--envThe environment variables you would like to set on the CI system### build:comment:add:commit

[](#buildcommentaddcommit)

The `build:comment:add:commit` command is used to add a comment to a commit on the Git Provider. This is useful in CI scripts for commenting as multidev environments are created or other code feedback is determined.

Either the `--message` and/or the `--site_url` options are required.

#### Command Options

[](#command-options-2)

Additional options are available to customize the `build:comment:add:commit` command:

OptionDescription--shaThe SHA hash of the commit to add the comment to--messageThe message to post to the commit--site\_urlIf provided, will include a "Visit Site" link at the start of the comment, linking to the provided site URL### terminus build:comment:add:pr

[](#terminus-buildcommentaddpr)

The `build:comment:add:pr` command is used to add a comment to a pull request on the Git Provider. This is useful in CI scripts for commenting as multidev environments are created or other code feedback is determined.

The `--pr_id` option and either the `--message` and/or the `--site_url` options are required.

#### Command Options

[](#command-options-3)

Additional options are available to customize the `build:comment:add:pr` command:

OptionDescription--pr\_idRequired. The number of the pull request to add the comment to--messageThe message to post to the pull request--site\_urlIf provided, will include a "Visit Site" link at the start of the pull request, linking to the provided site URL### build:credentials:clear

[](#buildcredentialsclear)

The `build:credentials:clear` command is available to clear cached credentials from Build Tools. This is useful when developing Build Tools or trying to remove credentials from a machine.

#### Command Options

[](#command-options-4)

There are no additional options for this command.

### build:env:create

[](#buildenvcreate)

The `build:env:create` command creates the specified multidev environment on the given Pantheon site from the build assets at the current working directory.

#### Command Options

[](#command-options-5)

OptionDescription--labelThe name of the environment in commit comments--clone-contentClone the content from the dev environment to the new multidev environment--db-onlyWhen cloning content, whether to only clone the database (by default, both the database and files are cloned--messageThe commit message to use when committing the built assets to Pantheon### build:env:delete:ci

[](#buildenvdeleteci)

The `build:env:delete:ci` command is used to delete multidev environments on Pantheon that match the CI pattern of builds (`ci-*`).

#### Command Options

[](#command-options-6)

OptionDescription--keepThe number of environments matching the pattern to keep--dry-runIf set, this command only determines which environments should be deleted but doesn't actually delete them### build:env:delete:pr

[](#buildenvdeletepr)

The `build:env:delete:pr` command is used to delete multidev environments on Pantheon that match the PR pattern of builds (`pr-*`) for pull requests (GitHub and BitBucket) or merge requests (GitLab) that have been closed.

#### Command Options

[](#command-options-7)

OptionDescription--dry-runIf set, this command only determines which environments should be deleted but doesn't actually delete them### build:env:install

[](#buildenvinstall)

The `build:env:install` command is used to install the CMS on a Pantheon site the specified site.

#### Command Options

[](#command-options-8)

OptionDescription--account-mailThe email address for the first user account created during install--account-nameThe username for the first user account created during install--account-passThe password for the first user account created during install--site-mailThe email address used for the CMS--site-nameThe name of the site to be set within the CMS### build:env:list

[](#buildenvlist)

The `build:env:list` command is used to list the multidev environments in the specified site.

#### Command Options

[](#command-options-9)

There are no additional options for this command.

### build:env:merge

[](#buildenvmerge)

The `build:env:merge` command merges a multidev environment in Pantheon into the dev environment.

#### Command Options

[](#command-options-10)

OptionDescription--labelThe name of the environment when referred to in commit comments--deleteWhether or not to delete the multidev environment after it is merged### build:env:obliterate

[](#buildenvobliterate)

The `build:env:obliterate` command deletes a project that was set up through the `build:project:create` workflow. This includes the Pantheon site as well as the Git provider repository and the CI provider project.

Note: this is a destructive, irreversible command that should be used with caution.

#### Command Options

[](#command-options-11)

There are no additional command options for this command.

### build:env:push

[](#buildenvpush)

The `build:env:push` command pushes code in the current directory to an existing Pantheon site/environment.

#### Command Options

[](#command-options-12)

OptionDescription--labelThe name of the site when referred to in commit comments.--messageThe commit message to use when committing built code to Pantheon### build:project:info

[](#buildprojectinfo)

The `build:project:info` command displays information about a site created by the `build:project:create` command.

#### Command Options

[](#command-options-13)

There are no additional command options for this command.

### build:secrets:delete

[](#buildsecretsdelete)

The `build:secrets:delete` command deletes a secret from Pantheon. These secrets are commonly used for storing informatiion needed by CI integrations, such as [Quicksilver Pushback](https://www.github.com/pantheon-systems/quicksilver-pushback).

#### Command Options

[](#command-options-14)

OptionDescription--fileThe name of the file to use for storing the secret. Defaults to tokens.json### build:secrets:list

[](#buildsecretslist)

The `build:secrets:list` command lists all secret from Pantheon. These secrets are commonly used for storing informatiion needed by future CI integration such as [Quicksilver Pushback](https://www.github.com/pantheon-systems/quicksilver-pushback).

#### Command Options

[](#command-options-15)

OptionDescription--fileThe name of the file to use for storing the secret. Defaults to tokens.json### build:secrets:set

[](#buildsecretsset)

The `build:secrets:set` command sets a secret in a Pantheon. These secrets are commonly used for storing informatiion needed by future CI integration such as [Quicksilver Pushback](https://www.github.com/pantheon-systems/quicksilver-pushback).

#### Command Options

[](#command-options-16)

OptionDescription--fileThe name of the file to use for storing the secret. Defaults to tokens.json--clearIf set, will overwrite a secret with the existing name--skip-if-emptyIf set, will not write anything if the value passed to the command is empty### build:secrets:show

[](#buildsecretsshow)

The `build:secrets:show` command shows a secret from Pantheon. These secrets are commonly used for storing informatiion needed by CI integrations, such as [Quicksilver Pushback](https://www.github.com/pantheon-systems/quicksilver-pushback).

#### Command Options

[](#command-options-17)

OptionDescription--fileThe name of the file to use for storing the secret. Defaults to tokens.json### build:workflow:wait

[](#buildworkflowwait)

The `build:workflow:wait` command waits for a workflow in Pantheon to complete before returning. This is useful when waiting for code to be deployed to a Pantheon environment.

#### Command Options

[](#command-options-18)

OptionDescription--startThe time to ignore workflow operations before--maxThe maximum amount of time to wait for a workflow to completeCustomization
-------------

[](#customization)

You may easily create your own project template by forking one of the Pantheon maintained examples (linked above) and customizing it to suit your needs. To use a custom starter, register your project on Packagist, and then use the projects org/name with the `build:project:create` command:

```
$ terminus build:project:create --team='My Agency Name' my-project/my-starter my-site

```

See [Starter Site Shortcuts](#starter-site-shortcuts) below for instructions on defining your own shortcuts for your starter projects.

### Configuration

[](#configuration)

Configuration values for the Terminus Build Tools Plugin may be stored in your Terminus Configuration file, located at `~/.terminus/config.yml`. This is especially useful for agencies who would liike every site created within their Pantheon team.

#### Default Values for Options

[](#default-values-for-options)

Terminus configuration is based on the [Robo PHP configuration system](http://robo.li/getting-started/#configuration). Default option values for Terminus commands can be defined in the same way as other Robo applications. For example, the options for the command `build:project:create` are stored in the section `command:` &gt; `build:` &gt; `project:` &gt; `create:` &gt; `options:`. The example below provides default values for the `--admin-password` and `--team` options.

```
command:
  build:
    project:
      create:
        options:
          admin-password: secret-secret
          team: My Pantheon Org

```

#### Self-Hosted GitLab

[](#self-hosted-gitlab)

The GitLab URL used by Build Tools can be defined by updating the `build-tools:provider:git:gitlab:url` configuration value, as demonstrated by the example below. Note that you will need to replace `hostname` with the actual GitLab instance hostname.

```
build-tools:
  provider:
    git:
      gitlab:
        url: hostname

```

#### Starter Site Shortcuts

[](#starter-site-shortcuts)

If you often create sites based on certain common starter sites, you may also use your Terminus configuration file to define custom starter site shortcuts. The example below defines shortcuts for the Lightning and Contenta distributions:

```
command:
  build:
    project:
      create:
        shortcuts:
          contenta: pantheon-systems/example-drops-8-composer:dev-contenta

```

Note that the project name follows the standard defined by Composer: `org-name` / `project-name` : dev- `branch-name`.

### Build Customizations

[](#build-customizations)

To customize this for a specific project:

- Define necessary environment variables within your CI provider:
    - TERMINUS\_SITE: The name of the Pantheon site that will be used in testing.
    - TERMINUS\_TOKEN: A Terminus OAuth token that has write access to the terminus site specified by TERMINUS\_SITE.
    - GIT\_EMAIL: Used to configure the git user’s email address for commits we make.
- Customize `dependencies:` as needed to install additional tools.
- Replace example `test:` section with commands to run your tests.
- [Add a `build-assets` script](https://pantheon.io/blog/writing-composer-scripts) to your composer.json file.

### PR Environments vs Other Test Environments

[](#pr-environments-vs-other-test-environments)

Note that using a single environment for each PR means that it is not possible to run multiple tests against the same PR at the same time. Currently, no effort is made to cancel running tests when a new one is kicked off; if the concurrent build is not cancelled before a new commit is pushed to the PR branch, then the two tests could potentially conflict with each other. If support for parallel tests on the same PR is desired, then it is possible to eliminate PR environments, and make all tests run in their own independent CI environment. To do this, configure your CI provider by **adding** the following environment variable:

```
    TERMINUS_ENV: $CI_LABEL

```

### Running Tests without Multidevs

[](#running-tests-without-multidevs)

To use this tool on a Pantheon site that does not have multidev environments support, it is possible to run all tests against the `dev` environment. If this is done, then it is not possible to run multiple tests at the same time. To use the `dev` environment, configure your CI provider by **adding** the following environment variable:

```
    TERMINUS_ENV: dev

```

\*\* IMPORTANT NOTE: \*\* If you initially set up your site using `terminus build:project:create`, and you do **not** use the `--team` option, or the team you specify is not an Agency organization, then your configuration will automatically be set up to use only the dev environment. If you later add multidev capabilities to your site, you will need to edit the environment variables in your CI configuration and **delete** the entry for `TERMINUS_ENV`.

Build Tools Command Examples
----------------------------

[](#build-tools-command-examples)

The examples below show how some of the other `build:env:` commands are used within test scripts. It is not usually necessary to run any of these commands directly; they may be of interest if you are customizing or building your own test scripts.

### Create Testing Multidev

[](#create-testing-multidev)

`terminus build:env:create my-pantheon-site.dev ci-1234`

This command will commit the generated artifacts to a new branch and then create the requested multidev environment for use in testing.

### Push Code to the Dev Environment

[](#push-code-to-the-dev-environment)

`terminus build:env:push my-pantheon-site.dev`

This command will commit the generated artifacts to an existing multidev environment, or to the dev environment.

### Merge Testing Multidev into Dev Environment

[](#merge-testing-multidev-into-dev-environment)

`terminus build:env:merge my-pantheon-site.ci-1234`

### Delete Testing Multidevs

[](#delete-testing-multidevs)

`terminus build:env:delete my-pantheon-site '^ci-' --keep=2 --delete-branch`

### List Testing Multidevs

[](#list-testing-multidevs)

`terminus build:env:list`

### Commenting on a pull request or merge request

[](#commenting-on-a-pull-request-or-merge-request)

`terminus build:comment:add:pr --pr_number=123 --message="Behat tests passed!"`

Help
----

[](#help)

Run `terminus list build` for a complete list of available commands. Use `terminus help ` to get help on one command.

Related Repositories
--------------------

[](#related-repositories)

### Template Repositories

[](#template-repositories)

In addition to the Terminus Build Tools Plugin, Pantheon maintains template repositories for:

- [WordPress](https://github.com/pantheon-systems/example-wordpress-composer)
- [Drupal 8](https://github.com/pantheon-systems/example-drops-8-composer)
- [Drupal 7](https://github.com/pantheon-systems/example-drops-7-composer)

Each repository includes an opinionated set of workflows and deployment scripts. These templates are meant to be a one-time starting point for new projects and customized as needed. Improvements made over time must be manually applied to existing projects. These are examples, **not** frameworks.

### Build Tools CI Dockerfile

[](#build-tools-ci-dockerfile)

Pantheon maintains a [Build Tools CI Dockerfile](https://github.com/pantheon-systems/docker-build-tools-ci/), which is deployed to [`quay.io`](https://quay.io/repository/pantheon-public/build-tools-ci?tab=tags), for use in Continuous Integration environments. It contains common Pantheon tools, such as Terminus and the Terminus Build Tools plugin. The deployed image tags follow semantic versioning.

### Quicksilver Pushback

[](#quicksilver-pushback)

[Quicksilver pushback](https://github.com/pantheon-systems/quicksilver-pushback/) is a project that makes use of Pantheon's [Quicksilver Webhooks](https://pantheon.io/docs/quicksilver) to apply code commits made on Pantheon to an external Git provider.

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 51.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~16 days

Recently: every ~10 days

Total

70

Last Release

2258d ago

Major Versions

1.3.6 → 2.0.0-alpha12017-07-01

1.3.9 → 2.0.0-alpha22017-07-25

1.3.10 → 2.0.0-beta32019-02-22

1.x-dev → 2.0.0-beta42019-02-25

### Community

Maintainers

![](https://www.gravatar.com/avatar/f3a2f21f06bbaddbb2df08ba73f27a6002f0bac9d889b9695f14a4ed1b8de97d?d=identicon)[jeff.holland](/maintainers/jeff.holland)

---

Top Contributors

[![greg-1-anderson](https://avatars.githubusercontent.com/u/612191?v=4)](https://github.com/greg-1-anderson "greg-1-anderson (141 commits)")[![danielbachhuber](https://avatars.githubusercontent.com/u/36432?v=4)](https://github.com/danielbachhuber "danielbachhuber (30 commits)")[![LukasRos](https://avatars.githubusercontent.com/u/192050?v=4)](https://github.com/LukasRos "LukasRos (25 commits)")[![ataylorme](https://avatars.githubusercontent.com/u/2133004?v=4)](https://github.com/ataylorme "ataylorme (18 commits)")[![rvtraveller](https://avatars.githubusercontent.com/u/1789427?v=4)](https://github.com/rvtraveller "rvtraveller (11 commits)")[![NickDickinsonWilde](https://avatars.githubusercontent.com/u/92694?v=4)](https://github.com/NickDickinsonWilde "NickDickinsonWilde (10 commits)")[![philltran](https://avatars.githubusercontent.com/u/812816?v=4)](https://github.com/philltran "philltran (9 commits)")[![aaronbauman](https://avatars.githubusercontent.com/u/508451?v=4)](https://github.com/aaronbauman "aaronbauman (6 commits)")[![stevector](https://avatars.githubusercontent.com/u/211029?v=4)](https://github.com/stevector "stevector (5 commits)")[![clayfreeman](https://avatars.githubusercontent.com/u/182658?v=4)](https://github.com/clayfreeman "clayfreeman (1 commits)")[![davereid](https://avatars.githubusercontent.com/u/62967?v=4)](https://github.com/davereid "davereid (1 commits)")[![e0ipso](https://avatars.githubusercontent.com/u/1140906?v=4)](https://github.com/e0ipso "e0ipso (1 commits)")[![erichomanchuk](https://avatars.githubusercontent.com/u/1268792?v=4)](https://github.com/erichomanchuk "erichomanchuk (1 commits)")[![carl-alberto](https://avatars.githubusercontent.com/u/5098765?v=4)](https://github.com/carl-alberto "carl-alberto (1 commits)")[![jfussion](https://avatars.githubusercontent.com/u/1130280?v=4)](https://github.com/jfussion "jfussion (1 commits)")[![ari-gold](https://avatars.githubusercontent.com/u/7874556?v=4)](https://github.com/ari-gold "ari-gold (1 commits)")[![antonioG4](https://avatars.githubusercontent.com/u/1827974?v=4)](https://github.com/antonioG4 "antonioG4 (1 commits)")[![alphex](https://avatars.githubusercontent.com/u/597641?v=4)](https://github.com/alphex "alphex (1 commits)")[![populist](https://avatars.githubusercontent.com/u/520521?v=4)](https://github.com/populist "populist (1 commits)")[![ptranwoficc](https://avatars.githubusercontent.com/u/6787610?v=4)](https://github.com/ptranwoficc "ptranwoficc (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/reachlocal-rl-terminus-build-tools/health.svg)

```
[![Health](https://phpackages.com/badges/reachlocal-rl-terminus-build-tools/health.svg)](https://phpackages.com/packages/reachlocal-rl-terminus-build-tools)
```

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.0k17.2M319](/packages/wp-cli-wp-cli)[consolidation/annotated-command

Initialize Symfony Console commands from annotated command class methods.

22569.8M19](/packages/consolidation-annotated-command)[chi-teck/drupal-code-generator

Drupal code generator

26947.8M5](/packages/chi-teck-drupal-code-generator)[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24725.8M17](/packages/seld-cli-prompt)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

589747.0k6](/packages/php-tui-php-tui)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
