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

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

moffhub/cli
===========

Moffhub Payment Standard CLI - scaffold, validate, and certify MPS connectors.

v0.1.0(1mo ago)00MITPHPPHP ^8.4|^8.5CI passing

Since Apr 25Pushed 1mo agoCompare

[ Source](https://github.com/Moffhub-Solutions/cli)[ Packagist](https://packagist.org/packages/moffhub/cli)[ Docs](https://github.com/Moffhub-Solutions/cli)[ RSS](/packages/moffhub-cli/feed)WikiDiscussions develop Synced 1w ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

Moffhub CLI
===========

[](#moffhub-cli)

Command-line companion for the **Moffhub Payment Standard**. Scaffold a new connector, validate its manifest, and run the certification suite — without bringing any of it into your application code.

The CLI is connector-agnostic: it works with any class that implements `Moffhub\MpsSpec\Contracts\ConnectorInterface`, regardless of who wrote it.

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

[](#installation)

### Global (recommended for connector authors)

[](#global-recommended-for-connector-authors)

```
composer global require moffhub/cli
```

Make sure Composer's global bin directory is on your `PATH`:

```
export PATH="$HOME/.composer/vendor/bin:$PATH"      # bash/zsh
# or, on newer setups:
export PATH="$HOME/.config/composer/vendor/bin:$PATH"
```

Verify:

```
moffhub --version
```

### Project-local (when you want it pinned per-repo)

[](#project-local-when-you-want-it-pinned-per-repo)

```
composer require --dev moffhub/cli
./vendor/bin/moffhub --version
```

Commands
--------

[](#commands)

### `moffhub init-connector  [namespace]`

[](#moffhub-init-connector-name-namespace)

Scaffolds a new connector package in the current directory.

```
moffhub init-connector acme-payments "Acme\\Connector\\Acme"
cd acme-payments
composer install
```

You get a `composer.json`, a starter connector class extending `BaseConnector`, and a `tests/` directory.

### `moffhub validate `

[](#moffhub-validate-connector-class)

Loads the class, calls `manifest()`, and checks that all required fields are populated and well-typed.

```
moffhub validate "Acme\\Connector\\Acme\\AcmeConnector"
```

Prints a table of manifest fields and exits non-zero if anything is missing.

### `moffhub certify  [--config=path] [--sandbox]`

[](#moffhub-certify-connector-class---configpath---sandbox)

Runs the full certification suite: spec compliance, lifecycle, capability conformance (charge/refund/webhook/settlement), error handling, and idempotency.

```
# Sandbox mode — skips real API calls, validates contract only
moffhub certify "Acme\\Connector\\Acme\\AcmeConnector" --sandbox

# Live mode — exercises the real provider with credentials from a JSON file
moffhub certify "Acme\\Connector\\Acme\\AcmeConnector" --config=./credentials.json
```

`credentials.json` is whatever your connector expects in `initialize()`:

```
{
    "api_key": "sk_test_...",
    "environment": "sandbox"
}
```

Exits `0` on PASS, `1` if any test fails. Wire this into CI on your connector's repo.

Resolving connector classes
---------------------------

[](#resolving-connector-classes)

The CLI needs to be able to autoload your connector. There are three ways it finds your code:

1. **Run from your project directory.** If `./vendor/autoload.php` exists in the current working directory, the CLI loads it automatically. This is the common case.
2. **Pass an explicit autoloader with `--bootstrap`.**

    ```
    moffhub certify "Acme\\AcmeConnector" --bootstrap=/path/to/project/vendor/autoload.php
    ```
3. **Install your connector globally** alongside the CLI:

    ```
    composer global require vendor/connector-acme
    moffhub certify "Acme\\AcmeConnector"
    ```

If the CLI prints `Class ... not found`, one of the above is missing.

Typical workflow for connector authors
--------------------------------------

[](#typical-workflow-for-connector-authors)

```
# 1. Scaffold
moffhub init-connector my-gateway "MyVendor\\Connector\\MyGateway"
cd my-gateway && composer install

# 2. Implement createCharge(), queryCharge(), etc.

# 3. Validate the manifest as you go
moffhub validate "MyVendor\\Connector\\MyGateway\\MyGatewayConnector"

# 4. Run the certification suite in sandbox mode (CI-friendly)
moffhub certify "MyVendor\\Connector\\MyGateway\\MyGatewayConnector" --sandbox

# 5. Run against real credentials before tagging a release
moffhub certify "MyVendor\\Connector\\MyGateway\\MyGatewayConnector" --config=secrets.json
```

Related packages
----------------

[](#related-packages)

- [`moffhub/mps-spec`](https://packagist.org/packages/moffhub/mps-spec) — interfaces, DTOs, and enums the CLI checks against.
- [`moffhub/connector-sdk`](https://packagist.org/packages/moffhub/connector-sdk) — base classes that make implementing a connector straightforward.

License
-------

[](#license)

MIT. See `LICENSE`.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

45d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6b5c3549bf8f8bab163b760fe2023fe357a3c85ed366e052a735ff5c50f84518?d=identicon)[Moffrough](/maintainers/Moffrough)

---

Top Contributors

[![MOFFROUGH](https://avatars.githubusercontent.com/u/20206597?v=4)](https://github.com/MOFFROUGH "MOFFROUGH (5 commits)")

---

Tags

cliscaffoldingpaymentsconnectorcertificationmoffhubmps

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[mahocommerce/maho

Free and open source ecommerce platform, created in 2024 on the M1 platform, PHP 8.3+

1374.8k31](/packages/mahocommerce-maho)[stolt/lean-package-validator

Library and CLI for validating if a project or package has and will have lean releases.

186.1k29](/packages/stolt-lean-package-validator)

PHPackages © 2026

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