Download the PHP package citomni/cli without Composer

On this page you can find all versions of the php package citomni/cli. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package cli

CitOmni CLI

Deterministic command-line runtime for CitOmni applications.

citomni/cli is the dedicated CLI delivery layer in the CitOmni ecosystem. It provides the runtime boundary for command execution in the same architectural spirit as citomni/http provides the runtime boundary for web delivery: explicit boot, deterministic composition, minimal entrypoint code, and no framework magic disguised as convenience.

The package is intentionally narrow in scope. It owns the CLI runtime, its boot process, command dispatch, and CLI-specific failure rendering/logging. It does not attempt to absorb every command-related concern into itself. Shared abstractions and reusable command infrastructure may live in other CitOmni packages where that ownership is more appropriate.

In practical terms, citomni/cli gives a CitOmni application a formal command-line execution model rather than a pile of ad-hoc PHP scripts wearing the ceremonial robes of a console framework.


Highlights


What this package is

citomni/cli is the command-line mode of the CitOmni framework.

It provides the application-facing runtime required to execute commands in a structured and deterministic way. That includes bootstrapping the application in CLI mode, resolving CLI-relevant config and services, locating registered commands, dispatching execution, and handling runtime failures in a way appropriate to terminal usage rather than HTTP delivery.

This package therefore occupies the same conceptual layer for CLI that citomni/http occupies for web requests. It is not merely a convenience script collection, and it is not a general-purpose shell framework bolted onto CitOmni after the fact.


What this package provides

CLI runtime responsibilities

Delivery-layer concerns


What this package does not own

citomni/cli is intentionally not a monolithic home for every command-related abstraction.

It does not need to own:

Those concerns may live in other packages when that boundary is architecturally cleaner. A command-line runtime should not annex neighboring responsibilities simply because it happens to be holding the terminal.


Relationship to the wider CitOmni architecture

CitOmni separates delivery layers from orchestration, persistence, and reusable services.

Within that model:

  1. citomni/kernel provides the application core, config/service composition, and service resolution model.
  2. citomni/http provides HTTP delivery.
  3. citomni/cli provides CLI delivery.
  4. Shared/domain packages contribute services, config, routes, commands, and other package-owned capabilities through explicit boot metadata.
  5. The application composes the final runtime.

citomni/cli therefore exists as a first-class delivery layer, not as an afterthought, and not as a thin wrapper around a generic command runner with ambitions above its station.


Runtime model

The package follows the standard CitOmni principles:

At runtime, a typical CLI process looks conceptually like this:

bin/console -> Cli\Kernel::run() -> new App($configDir, Mode::CLI) -> CLI config/services built from vendor baseline, providers, and app overrides -> CLI error handler installed -> command runner resolves and executes the requested command

This keeps CLI execution aligned with the broader CitOmni boot model while respecting the very different operational semantics of a terminal process.


Deterministic composition

Like the rest of CitOmni, citomni/cli favors explicit composition over hidden discovery.

CLI config and services are assembled from defined sources in a deterministic order. The exact mechanics are intentionally parallel to the broader framework model: vendor baseline first, then provider contributions, then application-level overrides.

This matters operationally. A command should not change behavior because a package happened to be scanned differently, nor because an autoloading side effect quietly altered registration order. Determinism is not academic polish here; it is a practical debugging advantage.


Requirements

OPcache is strongly recommended in production-like environments where CLI workloads are frequent or operationally important.


Installation

`

Register the package provider in your application configuration if your composition model requires it.

Your application's composer.json should also expose your own code through PSR-4 autoloading:

Then refresh the autoloader:


Quick start

A minimal bin/console entrypoint typically looks like this:

The point of this file is not to become clever. Its job is to hand execution to the CLI kernel and then get out of the way.


Typical app layout

The exact application structure can vary, but the important distinction remains: commands belong to the CLI-facing adapter layer; orchestration belongs elsewhere; persistence belongs in repositories.


Commands and architectural boundaries

Commands are CLI adapters.

That means they own terminal-facing concerns such as:

They should not become storage layers, mailers, HTTP simulators, or miniature god-objects with a text cursor.

In normal CitOmni architecture terms:

This is not merely a cleanliness preference. Command code remains easier to reason about, easier to test, and less likely to accumulate irreversible "just this once" terminal logic that metastasizes into application policy.


Command discovery and dispatch

citomni/cli provides the runtime machinery needed to locate registered commands and dispatch them from argv input.

In a typical setup, the command runner is responsible for:

This separation is deliberate. The runtime should know how to find and launch commands; it should not need intimate knowledge of every argument grammar in the ecosystem.


Error handling

CLI failure semantics differ from HTTP failure semantics, and citomni/cli treats them accordingly.

The CLI error handler is responsible for handling:

In development contexts, richer diagnostic output may be rendered to support debugging. In non-development contexts, output should remain controlled, operationally sane, and suitable for logs or automated runners rather than theatrical terminal collapse.

Fail-fast remains the governing principle. Recoverability should be explicit. Silent swallowing of runtime failures is not resilience; it is deferred confusion.


Configuration

CLI configuration follows the same broad CitOmni model of explicit layered composition.

Typical sources include:

  1. vendor CLI baseline
  2. provider CLI config contributions
  3. application CLI base config
  4. optional environment overlay for CLI mode

This enables command runtimes to remain predictable across environments without collapsing environment concerns into command classes themselves.

A minimal config/citomni_cli_cfg.php may look like:

Environment-specific overlays can then refine operational details without contaminating the baseline.


Services

As with the rest of CitOmni, services are resolved through explicit service maps rather than runtime scanning.

That means:

If your application or provider contributes CLI-relevant services, they should do so through the normal explicit registration mechanisms rather than magical discovery strategies that behave impressively until examined closely.


Providers

Providers may contribute CLI-specific metadata through the standard CitOmni boot/registry pattern.

That can include:

This allows packages to participate in the CLI runtime without requiring the CLI package itself to know package-specific details in advance.

In other words, composition remains explicit, but it is not parochial.


Operational philosophy

citomni/cli is designed for systems that value:

It is not trying to be a maximalist "developer experience" console framework where every ergonomic flourish is purchased with hidden indirection, runtime scanning, and enough implicit behavior to qualify as folklore.

CitOmni's position is simpler: commands should run predictably, boot cheaply, fail clearly, and respect architectural boundaries.

That is usually more useful than spectacle.


Performance notes

The package is aligned with the broader CitOmni preference for predictable low-cost execution rather than clever abstractions with a surprisingly healthy appetite for CPU cycles.


Contributing


Coding & Documentation Conventions

All CitOmni projects follow the shared conventions documented here: CitOmni Coding & Documentation Conventions


License

CitOmni CLI is open-source under the MIT License. See LICENSE.

Trademark notice: "CitOmni" and the CitOmni logo are trademarks of Lars Grove Mortensen. You may not use the CitOmni name or logo to imply endorsement or affiliation without prior written permission. For details, see NOTICE.


Trademarks

"CitOmni" and the CitOmni logo are trademarks of Lars Grove Mortensen. You may make factual references to "CitOmni", but do not modify the marks, create confusingly similar logos, or imply sponsorship, endorsement, or affiliation without prior written permission. Do not register or use "citomni" (or confusingly similar terms) in company names, domains, social handles, or top-level vendor/package names. For details, see NOTICE.


Author

Developed by Lars Grove Mortensen © 2012-present.


CitOmni - low overhead, high performance, ready for anything.


All versions of cli with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
citomni/kernel Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package citomni/cli contains the following files

Loading the files please wait ...