Coolify CLI
Use the official coolify executable for the requested Coolify operation. Keep this skill portable across projects and
instances; discover names, UUIDs, credentials, branches, and environments from the current task.
Establish the target
- Check
coolify version and the relevant command's --help. The version command is a subcommand, not --version. If
installation or authentication is missing, read setup.md.
- Inspect saved contexts with
coolify context list. Select the instance established by the request and project
configuration. If several targets remain plausible, ask for the missing target before issuing requests to one.
- Use
--context "$COOLIFY_CONTEXT" on remote operations. This variable represents the resolved saved context name.
Avoid changing the persistent default just to execute a task.
- Verify connectivity with
coolify --context "$COOLIFY_CONTEXT" context verify. Read the relevant resource or team to
establish access to that operation. context version reports the server version, which is separate from
coolify version.
- Resolve the resource through inventory and detail commands. Check its project, environment, server, and type before a
mutation. Use returned resource UUIDs, not internal numeric IDs; team commands use numeric team IDs.
Execute and verify
- Honor the requested action and existing authorization. An authorized deployment or update does not need another
confirmation simply because it uses Coolify. Inspection or diagnosis does not authorize a redeployment or
infrastructure change.
- Read only the relevant reference: operations.md for inventory, deployment, logs, creation,
backups, or infrastructure; environment.md for resource and shared environment variables.
- Inspect current settings, apply the smallest requested change, and read the resource back. Distinguish a saved
configuration, a queued job, a finished deployment, and a healthy endpoint.
- Database deletion defaults to removing volumes and other associated data. Establish whether data removal is in scope
and inspect the exact command's cleanup flags.
--force means different things across subcommands and is not a
general automation flag.
- After an uncertain write response, inspect current state or the job list before retrying. The client already retries
some failed requests, including mutations. Stop further writes when the result cannot be determined; do not create
duplicate deployments or resources to test connectivity.
Handle output deliberately
- Prefer
--format json for supported structured reads and deployment responses. Check exit status and actual shape.
Context verification, environment sync, and some other commands still emit text.
- Keep
--show-sensitive, --debug, and --debuglogs off by default. JSON and pretty formatters do not provide
universal redaction; masking depends on the command. Logs, connection URLs, application details, and error bodies can
contain secrets.
- Filter sensitive responses to needed fields within the local process before returning tool output. Use an allowlist of
fields, not merely removal of a field named
password. Do not print or copy entire CLI configs, API tokens, private
keys, or .env contents into the conversation or artifacts.
- Separate stderr from machine-readable stdout and preserve failed exit statuses when piping. A masked value such as
******** is never a replacement value for an update.
- Bound logs and polling. Follow the exact deployment UUID when available and report a still-running operation honestly
if verification cannot finish.
Documentation and compatibility
Start with installed help for available syntax. Use the upstream
README for workflows,
llms.txt for orientation, and
llms-full.txt when the full
flag catalog is needed. If a command is absent or the API rejects a supported flag, check CLI and server compatibility
before proposing an upgrade or API fallback.
Checked on 2026-09-09 against installed CLI 1.8.0 help and upstream revision 76ca47187a0c34b6f68c5c44b192fc457749e2c7.
This is a reference baseline, not a required version pin. Source files in the repository are not necessarily registered
public commands.
Finish with the resolved target, action, verification result, and any remaining limitation. Omit secrets and raw
configuration dumps.
1---2name: coolify-cli3description: Operate Coolify instances through the official coollabsio/coolify-cli. Use for CLI setup and authentication, resource inspection, deployments, logs, application configuration, environment variables, databases, services, backups, and infrastructure management in Coolify.4---56# Coolify CLI78Use the official `coolify` executable for the requested Coolify operation. Keep this skill portable across projects and9instances; discover names, UUIDs, credentials, branches, and environments from the current task.1011## Establish the target12131. Check `coolify version` and the relevant command's `--help`. The version command is a subcommand, not `--version`. If14 installation or authentication is missing, read [setup.md](references/setup.md).152. Inspect saved contexts with `coolify context list`. Select the instance established by the request and project16 configuration. If several targets remain plausible, ask for the missing target before issuing requests to one.173. Use `--context "$COOLIFY_CONTEXT"` on remote operations. This variable represents the resolved saved context name.18 Avoid changing the persistent default just to execute a task.194. Verify connectivity with `coolify --context "$COOLIFY_CONTEXT" context verify`. Read the relevant resource or team to20 establish access to that operation. `context version` reports the server version, which is separate from21 `coolify version`.225. Resolve the resource through inventory and detail commands. Check its project, environment, server, and type before a23 mutation. Use returned resource UUIDs, not internal numeric IDs; team commands use numeric team IDs.2425## Execute and verify2627- Honor the requested action and existing authorization. An authorized deployment or update does not need another28 confirmation simply because it uses Coolify. Inspection or diagnosis does not authorize a redeployment or29 infrastructure change.30- Read only the relevant reference: [operations.md](references/operations.md) for inventory, deployment, logs, creation,31 backups, or infrastructure; [environment.md](references/environment.md) for resource and shared environment variables.32- Inspect current settings, apply the smallest requested change, and read the resource back. Distinguish a saved33 configuration, a queued job, a finished deployment, and a healthy endpoint.34- Database deletion defaults to removing volumes and other associated data. Establish whether data removal is in scope35 and inspect the exact command's cleanup flags. `--force` means different things across subcommands and is not a36 general automation flag.37- After an uncertain write response, inspect current state or the job list before retrying. The client already retries38 some failed requests, including mutations. Stop further writes when the result cannot be determined; do not create39 duplicate deployments or resources to test connectivity.4041## Handle output deliberately4243- Prefer `--format json` for supported structured reads and deployment responses. Check exit status and actual shape.44 Context verification, environment sync, and some other commands still emit text.45- Keep `--show-sensitive`, `--debug`, and `--debuglogs` off by default. JSON and pretty formatters do not provide46 universal redaction; masking depends on the command. Logs, connection URLs, application details, and error bodies can47 contain secrets.48- Filter sensitive responses to needed fields within the local process before returning tool output. Use an allowlist of49 fields, not merely removal of a field named `password`. Do not print or copy entire CLI configs, API tokens, private50 keys, or `.env` contents into the conversation or artifacts.51- Separate stderr from machine-readable stdout and preserve failed exit statuses when piping. A masked value such as52 `********` is never a replacement value for an update.53- Bound logs and polling. Follow the exact deployment UUID when available and report a still-running operation honestly54 if verification cannot finish.5556## Documentation and compatibility5758Start with installed help for available syntax. Use the upstream59[README](https://raw.githubusercontent.com/coollabsio/coolify-cli/refs/heads/main/README.md) for workflows,60[llms.txt](https://raw.githubusercontent.com/coollabsio/coolify-cli/refs/heads/main/llms.txt) for orientation, and61[llms-full.txt](https://raw.githubusercontent.com/coollabsio/coolify-cli/refs/heads/main/llms-full.txt) when the full62flag catalog is needed. If a command is absent or the API rejects a supported flag, check CLI and server compatibility63before proposing an upgrade or API fallback.6465Checked on 2026-09-09 against installed CLI 1.8.0 help and upstream revision `76ca47187a0c34b6f68c5c44b192fc457749e2c7`.66This is a reference baseline, not a required version pin. Source files in the repository are not necessarily registered67public commands.6869Finish with the resolved target, action, verification result, and any remaining limitation. Omit secrets and raw70configuration dumps.