Download the PHP package unolia/unolia-cli without Composer

On this page you can find all versions of the php package unolia/unolia-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 unolia-cli

Unolia CLI

GitHub release (with filter) Packagist PHP Version Packagist License (custom server)

Unolia CLI is the command line interface for app.unolia.com. It drives your projects, websites, deployments, CI runs, automations, issues, DNS and providers from one place, and it is built for two audiences at once. At a terminal it prompts, draws tables and colors. In a pipe, in CI or in an agent it never prompts, answers JSON and exits with a code that says what happened.

Install

Without installing anything, through cpx:

Or download unolia.phar from the releases and put it on your PATH.

Log in

If this is your first time on Unolia, connect your providers first.

unolia login shows a short code, opens the browser to https://app.unolia.com/oauth/device, and waits for you to approve it there, the way gh auth login does. The token is named user@hostname in the dashboard, --name picks another. It lasts a year, and unolia status warns during the last two weeks. When a command answers that the token lacks a scope, the error names the exact unolia auth refresh --scopes <scope> to run: it signs you in again with the wider set and revokes the old token. --remove-scopes narrows it. The browser login cannot grant *: a token with every ability is created on the dashboard and stored with unolia login --token. unolia auth login, auth logout and auth status are the same commands as the top level ones.

Tokens live in ~/.config/unolia/hosts.json with mode 0600 and are never printed, except by unolia auth token when you ask for it. A token from v1 in ~/.unolia/cli/config.json is migrated on first run and the old file is left alone.

The command grammar

Commands read as a noun and a verb, the way gh does. The colon spelling from v1 keeps working.

Run unolia for the full tree, unolia <namespace> for one group, and unolia <command> --help for one command. The generated reference lives in docs/cli.

Context

unolia init writes .unolia/config.json, which is committed:

Context is resolved once per invocation, most specific first: the --team, --project and --website flags, then UNOLIA_TEAM, UNOLIA_PROJECT and UNOLIA_WEBSITE, then .unolia/config.json searched from the current directory up to the git root, then the git remote matched by the API, then the default team from ~/.config/unolia/config.json, then a prompt on a terminal. unolia status prints which source answered.

.unolia/local.json is gitignored and holds only what a bare unolia watch needs.

Environment variables

Variable Meaning
UNOLIA_TOKEN Personal or team token. Wins over hosts.json. UNOLIA_API_TOKEN still works with a warning.
UNOLIA_HOST Host, app.unolia.com by default. Always https, certificate checked. Only localhost, *.localhost and *.test skip the check, since they can only be this machine.
UNOLIA_INSECURE Talk plain http to the host. Only for a server that has no TLS at all.
UNOLIA_TEAM, UNOLIA_PROJECT, UNOLIA_WEBSITE Context without a config file.
UNOLIA_FORMAT table, json, ndjson, csv or yaml.
UNOLIA_DEBUG Print one line per request on stderr. Never a token.
NO_COLOR, CI Turn colors off and force the pipe face.

Exit codes

Code Name When
0 ok Success, a --dry-run that printed a plan, a watch that ended well.
1 remote failure The remote thing failed, or compare local found a mismatch.
2 usage Bad arguments, missing input without a terminal, a refused confirmation, a 422.
3 auth No token, or a token the API rejected.
4 not found Nothing matched.
5 forbidden Not allowed, or your plan does not include it.
6 timeout --timeout elapsed. The remote thing is still running.
7 awaiting input An automation run is waiting for an answer. Resume it, do not retry.
130 interrupted Ctrl+C. The remote thing keeps going.

For agents and scripts

unolia help agents prints the same block. unolia api reaches any endpoint the way gh api does:

Connect your AI agents

Unolia exposes a remote MCP server, so an AI agent can manage your infrastructure with you. Put it into the config of the agents on your machine:

Supported agents: Claude Code, Cursor, VS Code (Copilot), Codex, Gemini CLI, Junie (JetBrains), Kiro, OpenCode and Amp. No token is stored: the first connection opens your browser to sign in. --dry-run shows which files would be written. --url or UNOLIA_MCP_URL point the connector at another host.

Shell completion

Upgrade

Installed with Composer: composer global update unolia/unolia-cli. With cpx there is nothing to do, it always fetches the latest.

Contributing

The phar is built with Box, downloaded from its release rather than required, so it never touches composer.lock:

To release, push a tag such as v2.0.1. The Build PHAR workflow compiles the phar and opens a draft release with it attached. Write the notes on the draft, then publish it. Releases are immutable once published, so the phar has to be there before.

docs/cli is generated from the same metadata the help renderer uses. Run php bin/unolia docs:generate after changing a command, and CI fails when the two drift apart.

Credits

unolia-cli was created by Eser DENIZ.

License

unolia-cli is licensed under the MIT License. See LICENSE for more information.


All versions of unolia-cli with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-json Version *
ext-mbstring Version *
laravel-zero/phar-updater Version ^1.4
laravel/prompts Version ^0.3.21
lorisleiva/cron-translator Version ^0.5.2
react/dns Version ^1.12
saloonphp/pagination-plugin Version ^2.0
saloonphp/saloon Version ^4.0
symfony/console Version ^7.4
symfony/process Version ^7.4
symfony/yaml Version ^7.4
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 unolia/unolia-cli contains the following files

Loading the files please wait ...