PHPackages                             civicrm/cli-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. civicrm/cli-tools

ActiveLibrary[CLI &amp; Console](/categories/cli)

civicrm/cli-tools
=================

v2026.03.20.1774037652(1mo ago)337.6k—8.9%1AGPL-3.0PHP

Since Oct 6Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/civicrm/civicrm-cli-tools)[ Packagist](https://packagist.org/packages/civicrm/cli-tools)[ RSS](/packages/civicrm-cli-tools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (34)Used By (0)

civicrm/cli-tools
=================

[](#civicrmcli-tools)

A bundle of CiviCRM command-line tools. This specifically includes:

- `cv`: General purpose administration / Swiss Army knife
- `civistrings`: Scan source-code for translatable strings
- `civix`: Generate extensions
- `coworker`: Execute background jobs

This is intended for site-builders who have `composer`-based deployments (esp Drupal 9/10). It supports workflows based on `composer require`, `composer update`, and `vendor-bin`.

Usage
-----

[](#usage)

To add these tools to an existing `composer` build (e.g. Drupal 9/10 site), run:

```
composer require civicrm/cli-tools
```

This adds CiviCRM CLI tools to [composer's `vendor/bin` folder](https://getcomposer.org/doc/articles/vendor-binaries.md).

You can call commands through `composer exec` or `vendor/bin`:

```
## Example 1: Call cv through `composer exec`
composer exec cv api4 Contact.get +l 1

## Example 2: Call cv through `./vendor/bin`
./vendor/bin/cv api4 Contact.get +l 1

## Example 3: Add cv your PATH
PATH="/path/to/vendor/bin:$PATH"
cv api4 Contact.get +l 1
```

In depth
--------

[](#in-depth)

- This is like a subset of `civicrm-buildkit`. It omits general development tools (`phpunit`), CMS-building tools (`drush`, `wp`), standard runtime environments (`min`, `max`), and autobuild sites (`drupal-clean`, `wp-demo`, etc). This is *only* the Civi-specific stuff that you would want to add on top of D9/D10 sites.
- The bridge here has 3 simple pieces:
    1. Download each executable via `composer-downloads-plugin` (e.g. `extern/cv.phar`).
    2. Add a stub script (e.g. `bin/cv`)
    3. Register the stub (`bin/cv`) for use with composer's `vendor/bin/`.
- This layout should be able to leverage composer's platform-specific wiring (e.g. Windows `.bat` files).

Maintenance
-----------

[](#maintenance)

This project is derived from [civicrm-buildkit.git:phars.json](https://github.com/civicrm/civicrm-buildkit/blob/master/phars.json). Whenever there's a relevant update to `phars.json`, we should also update `civicrm-cli-tools`.

For a maintainer of `civicrm/civicrm-cli-tools.git`, you can follow these steps:

```
git clone git@github.com:civicrm/civicrm-cli-tools.git
cd civicrm-cli-tools
./scripts/update
git push
```

Note the output of `./script/update`. It will include details about how to push the update.

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance88

Actively maintained with recent releases

Popularity34

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98% 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 ~28 days

Total

33

Last Release

59d ago

Major Versions

v2023.10.30.1698625846 → v2024.01.28.17064056442024-01-28

v2024.09.28.1727563115 → v2025.01.07.17362084602025-01-07

v2025.12.06.1764981525 → v2026.03.20.17739864622026-03-20

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1336047?v=4)[Tim Otten](/maintainers/totten)[@totten](https://github.com/totten)

---

Top Contributors

[![totten](https://avatars.githubusercontent.com/u/1336047?v=4)](https://github.com/totten "totten (50 commits)")[![nickperkins](https://avatars.githubusercontent.com/u/569924?v=4)](https://github.com/nickperkins "nickperkins (1 commits)")

### Embed Badge

![Health badge](/badges/civicrm-cli-tools/health.svg)

```
[![Health](https://phpackages.com/badges/civicrm-cli-tools/health.svg)](https://phpackages.com/packages/civicrm-cli-tools)
```

###  Alternatives

[wp-cli/wp-cli

WP-CLI framework

5.1k17.2M320](/packages/wp-cli-wp-cli)[consolidation/annotated-command

Initialize Symfony Console commands from annotated command class methods.

22569.8M19](/packages/consolidation-annotated-command)[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)[codedungeon/php-cli-colors

Liven up you PHP Console Apps with standard colors

10210.1M26](/packages/codedungeon-php-cli-colors)

PHPackages © 2026

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