PHPackages                             fabricejp/combell-cli - 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. fabricejp/combell-cli

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

fabricejp/combell-cli
=====================

A lightweight Symfony Console-based CLI to interact with the Combell API.

02PHP

Since Oct 21Pushed 6mo agoCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

🧰 Combell CLI

```
A lightweight Symfony Console-based CLI to interact with the Combell API,
built on top of the https://packagist.org/packages/tomcan/combell-api PHP SDK.

This CLI lets you query, create, and manage your Combell services such as
(accounts, domains, databases, etc.) securely — right from your terminal.

Combell’s official API https://api.combell.com/v2/documentation is powerful,
but it expects you to understand HMAC authentication, HTTP signing,
and API request flow before you can make your first call.
The PHP SDK from tomcan/combell-api wraps the API elegantly, yet still
requires developers to write boilerplate code and understand
Combell’s internal command structure.

fabricejp/combell-cli bridges that gap.
It provides a ready-to-use CLI interface on top of the SDK, making the
entire Combell API instantly accessible from your terminal — no custom setup,
no HMAC debugging, no Guzzle wiring.

```

🚀 Features

```
🔧 Generic command runner: combell:run

📜 Automatic command discovery: combell:list

🔐 HMAC-based authentication via .env

🧩 JSON-formatted output for automation

🪶 Lightweight (only PHP + Composer required)

```

🧱 Installation

Install dependencies

```
$ git clone https://github.com/fabricejp/combell-cli.git
$ cd combell-cli
$ composer install
$ chmod -x bin/console

```

Copy and configure environment variables

```
cp .env.example .env

```

Then edit .env and fill in your Combell API credentials:

```
COMBELL_API_KEY=your_api_key_here
COMBELL_API_SECRET=your_api_secret_here

```

⚠️ Never commit your .env file — it’s ignored by .gitignore.

🧰 Usage

```
All commands are executed through the Symfony runner in bin/console.

```

🔹 List all available Combell API commands

```
./bin/console combell:list

```

Snippet of example output:

```
Available Combell API commands:

 - AbstractCommand (params: string $method, string $endPoint)
 - Accounts\CreateAccount (params: string $identifier, int $servicePack, ?string $password = null)
 - Accounts\GetAccount (params: int $id)
 - Accounts\ListAccounts (params: string $assetType = '', string $identifier = '')
 - Dns\CreateRecord (params: string $domainName, AbstractDnsRecord $record)
 - Dns\DeleteRecord (params: string $domainName, AbstractDnsRecord $record)
 - Dns\GetRecord (params: string $domainName, string $id)
 - Dns\ListRecords (params: string $domainName)
 - Dns\UpdateRecord (params: string $domainName, AbstractDnsRecord $record)
 - Domains\GetDomain (params: string $domain)
 - Domains\ListDomains
 - Domains\RegisterDomain (params: string $domainName, array $nameServers)
 - Domains\SetNameServers (params: string $domainName, array $nameServers)
 - Domains\TransferDomain (params: string $domainName, string $authCode)
 - LinuxHostings\AddSshKey (params: string $domainName, string $pubKey)
 - LinuxHostings\ConfigureFtp (params: string $domainName, bool $enabled)
 - LinuxHostings\ConfigureSsh (params: string $domainName, bool $enabled)
 - LinuxHostings\CreateSubSite (params: string $domainName, string $subSiteDomainName, string $path = '')
 - LinuxHostings\DeleteSshKey (params: string $domainName, string $fingerprint)
 - LinuxHostings\GetAvailablePhpVersions (params: string $domainName)
 - LinuxHostings\GetLinuxHosting (params: string $domainName)
 - LinuxHostings\ListLinuxHostings
 - LinuxHostings\ListSshKeys (params: string $domainName)
 - LinuxHostings\SetAutoRedirectSsl (params: string $domainName, string $hostname, bool $enabled)
 - LinuxHostings\SetGzipCompression (params: string $domainName, bool $enabled)
 - LinuxHostings\SetHttp2 (params: string $domainName, string $siteName, bool $enabled)
 - LinuxHostings\SetLetsEncrypt (params: string $domainName, string $hostname, bool $enabled)
 - LinuxHostings\SetPhpApcu (params: string $domainName, int $apcuSize, bool $enabled)
 - LinuxHostings\SetPhpMemoryLimit (params: string $domainName, int $memoryLimit)
 - LinuxHostings\SetPhpVersion (params: string $domainName, string $phpVersion)
 - Mailboxes\CreateMailbox (params: string $domainName, string $email, string $password, int $accountId)
 - Mailboxes\GetMailboxes (params: string $domainName)
 - Mailboxes\GetQuota (params: string $domainName)
 - MysqlDatabases\CreateMysqlDatabase (params: string $database, int $account, string $password)
 - MysqlDatabases\GetMysqlDatabase (params: string $databaseName)
 - MysqlDatabases\ListMysqlDatabases
 - PageableAbstractCommand
 - ProvisioningJobs\GetProvisioningJob (params: string $jobId)
 - Servicepacks\ListServicepacks
 - Ssh\ListSshKeys
 - WindowsHostings\GetWindowsHosting (params: string $domainName)
 - WindowsHostings\ListWindowsHostings

Tip: run ./bin/console combell:run "" --params='[...]'

```

🔹 Run a specific API command

You can execute any command from the Combell SDK dynamically.

Syntax:

```
./bin/console combell:run "" --params='[]'

```

Examples:

List all accounts:

```
./bin/console combell:run "Accounts\ListAccounts"

```

Get a specific account:

```
./bin/console combell:run "Accounts\GetAccount" --params='[1803311]'

```

List all domains:

```
./bin/console combell:run "Domains\ListDomains"

```

Get a domain:

```
./bin/console combell:run "Domains\GetDomain" --params='["example.com"]'

```

Create a MySQL database:

```
./bin/console combell:run "MysqlDatabases\CreateMysqlDatabase" --params='["awesomedomain",1803311,"fhtjfdfdkdl,,,"]'

```

🔹 Output

All results are JSON — perfect for scripting or using with jq:

```
./bin/console combell:run "Accounts\ListAccounts" | jq .

```

Example output:

```
[
{
"id": 1803311,
"identifier": "awesomedomain.com",
"servicepackId": 15263,
"addons": []
},
{
"id": 1323758,
"identifier": "dev.awesomedomain.com",
"servicepackId": 27362,
"addons": []
}
]

```

🧩 Directory structure

```
combell-cli/
├── bin/
│   └── console                    # Main Symfony Console entrypoint
├── src/
│   └── Command/
│       ├── CombellCommand.php     # Executes API commands dynamically
│       └── ListCombellCommands.php # Lists all available API commands
├── .env.example                   # Example environment configuration
├── composer.json
├── README.md
└── .gitignore

```

⚙️ Requirements

```
PHP ≥ 8.1

Composer

Combell API key + secret

(Optional) jq for JSON parsing

```

🧩 Contributing

```
Pull requests are welcome!
To contribute:

Fork the repo

Create a feature branch (git checkout -b feature/my-new-command)

Commit (git commit -m 'Add new feature')

Push (git push origin feature/my-new-command)

Open a PR 🎉

```

🧾 License

```
MIT License — see LICENSE for details.

```

👤 Author

```
Fabrice JP
📍 Belgium
🔗 https://github.com/fabricejp

```

💬 Quick start

```
git clone https://github.com/fabricejp/combell-cli.git
cd combell-cli
composer install
cp .env.example .env

```

Don't forget to fill in your credentials in the .env file, and start using it.

```
./bin/console combell:list
./bin/console combell:run "Domains\ListDomains"

```

Enjoy your new lightweight Combell CLI 🚀

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance45

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/fe200d6d384d63f27df0de52e9dff87a916a9dd790da2915bc12244311584e8e?d=identicon)[fabricejp](/maintainers/fabricejp)

---

Top Contributors

[![fabricejp](https://avatars.githubusercontent.com/u/8246418?v=4)](https://github.com/fabricejp "fabricejp (29 commits)")

### Embed Badge

![Health badge](/badges/fabricejp-combell-cli/health.svg)

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

###  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)
