- How do I install the Laravel Cloud CLI?
- It is installed from source rather than pulled in as a Composer dependency. Run gh repo clone laravel/cloud-cli, cd into the directory, and run composer install. Then add an alias such as alias cloud="php /path/to/cloud-cli/cloud" to your ~/.zshrc or ~/.bashrc so the cloud command works from anywhere. You need PHP 8.3 or higher, Composer, Git, and an authenticated GitHub CLI.
- Why doesn't composer require laravel/cloud-cli work like other Laravel packages?
- laravel/cloud-cli is a Laravel Zero application, a standalone console binary, not an in-process library. That is also why it shows zero dependents; that number is the expected shape for a CLI rather than a red flag. You consume it by pinning a version and calling it as a process boundary in developer environments and CI runners. It offers no service container bindings and no extension points, so treat it as an operational tool, not an integration surface.
- How do I authenticate the Laravel Cloud CLI in CI or other non-interactive environments?
- Set the LARAVEL_CLOUD_TOKEN environment variable to an API token created in the Laravel Cloud dashboard. The environment variable takes precedence over anything saved in ~/.config/cloud/config.json, and nothing is written to disk when it is used. Pass -n to every command so interactive prompts never block the pipeline. An empty value counts as unset, which lets you bypass the token for a single command.
- Where does the Laravel Cloud CLI store API tokens and how should I protect them?
- Tokens added with cloud auth:token --add persist in plaintext at ~/.config/cloud/config.json on developer machines. Prefer piping the token, echo "$TOKEN" | cloud auth:token --add -n, over --token= because command-line arguments are visible in the process list. cloud auth:token --list masks tokens down to the last four characters and names the source of each one, while --show-sensitive prints them in full. Because a token carries its own organization, users working across several organizations typically manage multiple tokens.
- What are the requirements for running the Laravel Cloud CLI?
- You need PHP 8.3 or newer, Composer, and Git for repository detection and repo:config. An installed and authenticated GitHub CLI is also required, which is a non-obvious dependency that can break repo-linking flows on non-GitHub hosting or locked-down CI runners. There is no in-process dependency on the Laravel framework itself, since the CLI is a standalone Laravel Zero binary.
- Is laravel/cloud-cli stable enough for production deployment automation?
- The tool is pre-1.0, currently in the 0.5.x line, so there is no semver stability guarantee and breaking flag changes are permitted. Pin an explicit version in CI and disable self-update, since v0.5.2 shipped a fix for a self-update 404 that shows the update channel is still young. Treat upgrades as a deliberate change and run a read-only inventory first, for example cloud application:list --json and environment:list --json.
- Does the Laravel Cloud CLI support JSON output for scripting and pipelines?
- The --json flag is offered on many commands but not all of them, so machine-readable output is uneven across resources. Before automating anything, verify that the specific command you depend on supports --json and check whether its schema stays stable across upgrades. Never parse the human-formatted tables, because pipelines coupled to cosmetic output break silently when formatting changes.
- How do I use the Laravel Cloud CLI with multiple organizations?
- Each API token carries its own organization, so multi-org users end up juggling multiple tokens stored in the config file. The --organization flag acts as a check against the token's organization rather than a way to switch it, so supply a token scoped to the org you are targeting. Use cloud auth:token --list to see which tokens are configured and where each one comes from.
- Can I use the Laravel Cloud CLI with Laravel Forge, Vapor, or my own AWS servers?
- No. The CLI only talks to Laravel Cloud and has no applicable scope on Forge, Ploi, Vapor, or raw AWS, so it should be rejected at triage if your estate is not hosted there. Where Laravel Cloud is in use the fit is strong, because it manages applications, environments, databases, caches, object storage, and domains from the terminal.
- How do I set a default application and environment for a repository?
- Run cloud repo:config with the application and organization to persist per-repository defaults. This removes the usual --application and --environment flags from every pipeline step and keeps CI commands short. The repository also ships an agent skill at skills/deploying-to-cloud/SKILL.md that tells coding agents to prefer the CLI over improvising against the Cloud API. Repo detection relies on Git, so run the command from inside the repository.