Coolify CLI
Use this skill for the coolify command-line client from coollabsio/coolify-cli.
When to Use This Skill
- Installing or updating the
coolify binary.
- Setting up Cloud or self-hosted contexts and API tokens.
- Scripting Coolify resources, deployments, applications, services, databases, servers, GitHub apps, teams, firewall, or alpha mesh commands.
- Looking up exact Coolify CLI flags and aliases before execution.
Source of Truth
- Exact command/flag parity lives in
references/COMMANDS.md, regenerated from go run ./coolify docs llms at source commit 1bac52400810125d8275e185844372294a61eee2.
- Quick upstream instructions live in
references/LLMS.md; the scraped README, releases, issues, and file structure are retained from Skill Seeker extraction.
- Upstream installers are bundled as
references/install.sh and references/install.ps1.
- Public command catalog count: 123
Command: entries. Hidden developer docs commands are coolify docs llms, coolify docs markdown, and coolify docs man.
Operating Rules
- Do not invent flags. Before issuing any non-trivial command, inspect
references/COMMANDS.md or run coolify <family> ... --help.
- Prefer
--format json for automation; use --format pretty for debugging and table only for human reading.
- Treat
--token, context tokens, passwords, IPs, and --show-sensitive output as secrets. Do not paste them into logs.
- Coolify resources use UUIDs; teams use numeric IDs.
app env sync, database env sync, and service env sync create or update variables from a file; they do not delete variables missing from the file.
coolify init is alpha Coolify v5 mesh/bootstrap work and can modify remote network/firewall state; plan first unless the user explicitly asked to apply.
Workflow
steps:
- id: install
action: Install or locate the CLI
instruction: |
Check first: `command -v coolify && coolify version`.
Linux/macOS release installer:
`curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash`
Linux/macOS user install:
`curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash -s -- --user`
Specific release:
`curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash -s -- --user v1.6.2`
Homebrew:
`brew install coollabsio/coolify-cli/coolify-cli`
Windows PowerShell:
`irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex`
Windows user install:
`$env:COOLIFY_USER_INSTALL=1; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex`
Go install:
`go install github.com/coollabsio/coolify-cli/coolify@latest`
validation: "`command -v coolify` exits 0 and `coolify version` prints a version"
on_failure: "Read bundled installer source in references/install.sh or references/install.ps1; do not guess release asset names."
- id: authenticate
action: Configure context and token
instruction: |
Get an API token from the Coolify dashboard at `/security/api-tokens`.
Cloud: `coolify context set-token cloud <token>`.
Self-hosted: `coolify context add -d <context_name> <url> <token>`.
Switch default: `coolify context use <context_name>` or `coolify context set-default <context_name>`.
Verify: `coolify context verify` and `coolify context version`.
For one-off automation, prefer saved contexts plus `--context <name>`; use `--token <token>` only as an explicit override.
validation: "`coolify context verify --format json` succeeds for the intended context"
on_failure: "Check `coolify context list --format json`, URL scheme, token scope, and target Coolify API version."
- id: choose_command
action: Map intent to the exact command surface
instruction: |
Use the command map below to choose the family, then lookup exact flags:
`rg -n '^Command: coolify app env sync' references/COMMANDS.md`
`rg -n '^Command: coolify database create' references/COMMANDS.md`
`rg -n '^Command: coolify init' references/COMMANDS.md`
If local CLI version differs from the reference, prefer local `coolify ... --help` for execution.
validation: "Exact command, required parameters, and output format are identified before execution"
on_failure: "Open references/COMMANDS.md around the matching `Command:` entry or run command-specific `--help`."
- id: execute_and_verify
action: Run the command and prove the effect
instruction: |
For reads, use `--format json` and parse the returned identifiers/statuses.
For writes, capture the target UUID/name before and after, then run the relevant `get`, `list`, `logs`, `deploy get`, `context verify`, or `version` command.
For destructive commands (`delete`, `remove`, `revoke`, preview deletion, firewall changes, mesh init/bootstrap/extend/upgrade), confirm the user asked for that destructive action.
validation: "A follow-up read command proves the intended state or captures the returned error"
on_failure: "Do not claim completion; report the command, exit behavior, and the safest next verification command."
Command Map
| Area |
Commands |
| Root |
version, update, config, `completion <bash |
| Context |
context list/add/delete/get/set-default/set-token/update/use/verify/version |
| Servers |
server list/get/add/remove/validate/domains |
| Projects/resources |
project list/get/create, resource list |
| Apps |
app list/get/update/delete/start/stop/restart/logs, app create public/github/deploy-key/dockerfile/dockerimage, app previews delete |
| App internals |
app env list/get/create/update/delete/sync, app deployments list/logs, app storage list/create/update/delete |
| Databases |
database list/get/create/update/delete/start/stop/restart, supported types: postgresql, mysql, mariadb, mongodb, redis, keydb, clickhouse, dragonfly |
| Database internals |
database backup list/create/update/delete/executions/delete-execution/trigger, database env list/get/create/update/delete/sync, database storage list/create/update/delete |
| Services |
service list/get/create/delete/start/stop/restart, service env list/get/create/update/delete/sync, service storage list/create/update/delete |
| Deployments |
deploy list/get/name/uuid/batch/cancel |
| Integrations |
github list/get/create/update/delete/repos/branches, private-key add/list/remove, teams current/get/list/members list |
| Network/mesh |
firewall allow/revoke/list/containers, init plan/bootstrap/extend/upgrade |
Aliases
- Apps:
app, apps, application, applications; env aliases: env, envs, environment; storage aliases: storage, storages; previews aliases: preview, previews.
- Databases:
database, databases, db, dbs; storage aliases: storage, storages.
- Services:
service, services, svc; storage aliases: storage, storages.
- GitHub:
github, gh, github-app, github-apps.
- Private keys:
private-key, private-keys, key, keys.
- Servers/projects/resources/teams accept singular or plural where shown in
references/COMMANDS.md.
Common Patterns
# Inventory
coolify --context prod server list --format json
coolify project list --format json
coolify resource list --format json
coolify app list --format json
coolify service list --format json
coolify database list --format json
# App lifecycle
coolify app get <uuid> --format json
coolify app start <uuid>
coolify app stop <uuid>
coolify app restart <uuid>
coolify app logs <uuid> --lines 100 --follow
# Environment sync
coolify app env sync <app_uuid> --file .env.production --build-time --preview
coolify database env sync <database_uuid> --file .env
coolify service env sync <service_uuid> --file .env
# Deployments
coolify deploy name <resource_name> --force
coolify deploy batch api,worker,frontend --force
coolify deploy get <deployment_uuid> --format json
coolify app deployments logs <app_uuid> <deployment_uuid> --lines 200 --debuglogs
# Coolify v5 mesh alpha: plan before apply
coolify init plan --servers 10.0.0.1,10.0.0.2 --ssh-key ~/.ssh/id_ed25519 --format json
- State the target context and whether the command is read, write, or destructive.
- Cite the exact
references/COMMANDS.md command entry or local --help output used for flags.
- Use
--format json when the output will be parsed.
- Define the follow-up read command that will verify success.
1---2name: coolify-cli3description: Use when installing, configuring, scripting, troubleshooting, or operating the Coolify CLI for Coolify Cloud or self-hosted Coolify instances.4---56# Coolify CLI78Use this skill for the `coolify` command-line client from `coollabsio/coolify-cli`.910## When to Use This Skill1112- Installing or updating the `coolify` binary.13- Setting up Cloud or self-hosted contexts and API tokens.14- Scripting Coolify resources, deployments, applications, services, databases, servers, GitHub apps, teams, firewall, or alpha mesh commands.15- Looking up exact Coolify CLI flags and aliases before execution.1617## Source of Truth1819- Exact command/flag parity lives in `references/COMMANDS.md`, regenerated from `go run ./coolify docs llms` at source commit `1bac52400810125d8275e185844372294a61eee2`.20- Quick upstream instructions live in `references/LLMS.md`; the scraped README, releases, issues, and file structure are retained from Skill Seeker extraction.21- Upstream installers are bundled as `references/install.sh` and `references/install.ps1`.22- Public command catalog count: 123 `Command:` entries. Hidden developer docs commands are `coolify docs llms`, `coolify docs markdown`, and `coolify docs man`.2324## Operating Rules2526- Do not invent flags. Before issuing any non-trivial command, inspect `references/COMMANDS.md` or run `coolify <family> ... --help`.27- Prefer `--format json` for automation; use `--format pretty` for debugging and `table` only for human reading.28- Treat `--token`, context tokens, passwords, IPs, and `--show-sensitive` output as secrets. Do not paste them into logs.29- Coolify resources use UUIDs; teams use numeric IDs.30- `app env sync`, `database env sync`, and `service env sync` create or update variables from a file; they do not delete variables missing from the file.31- `coolify init` is alpha Coolify v5 mesh/bootstrap work and can modify remote network/firewall state; plan first unless the user explicitly asked to apply.3233## Workflow3435```yaml36steps:37 - id: install38 action: Install or locate the CLI39 instruction: |40 Check first: `command -v coolify && coolify version`.41 Linux/macOS release installer:42 `curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash`43 Linux/macOS user install:44 `curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash -s -- --user`45 Specific release:46 `curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash -s -- --user v1.6.2`47 Homebrew:48 `brew install coollabsio/coolify-cli/coolify-cli`49 Windows PowerShell:50 `irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex`51 Windows user install:52 `$env:COOLIFY_USER_INSTALL=1; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex`53 Go install:54 `go install github.com/coollabsio/coolify-cli/coolify@latest`55 validation: "`command -v coolify` exits 0 and `coolify version` prints a version"56 on_failure: "Read bundled installer source in references/install.sh or references/install.ps1; do not guess release asset names."5758 - id: authenticate59 action: Configure context and token60 instruction: |61 Get an API token from the Coolify dashboard at `/security/api-tokens`.62 Cloud: `coolify context set-token cloud <token>`.63 Self-hosted: `coolify context add -d <context_name> <url> <token>`.64 Switch default: `coolify context use <context_name>` or `coolify context set-default <context_name>`.65 Verify: `coolify context verify` and `coolify context version`.66 For one-off automation, prefer saved contexts plus `--context <name>`; use `--token <token>` only as an explicit override.67 validation: "`coolify context verify --format json` succeeds for the intended context"68 on_failure: "Check `coolify context list --format json`, URL scheme, token scope, and target Coolify API version."6970 - id: choose_command71 action: Map intent to the exact command surface72 instruction: |73 Use the command map below to choose the family, then lookup exact flags:74 `rg -n '^Command: coolify app env sync' references/COMMANDS.md`75 `rg -n '^Command: coolify database create' references/COMMANDS.md`76 `rg -n '^Command: coolify init' references/COMMANDS.md`77 If local CLI version differs from the reference, prefer local `coolify ... --help` for execution.78 validation: "Exact command, required parameters, and output format are identified before execution"79 on_failure: "Open references/COMMANDS.md around the matching `Command:` entry or run command-specific `--help`."8081 - id: execute_and_verify82 action: Run the command and prove the effect83 instruction: |84 For reads, use `--format json` and parse the returned identifiers/statuses.85 For writes, capture the target UUID/name before and after, then run the relevant `get`, `list`, `logs`, `deploy get`, `context verify`, or `version` command.86 For destructive commands (`delete`, `remove`, `revoke`, preview deletion, firewall changes, mesh init/bootstrap/extend/upgrade), confirm the user asked for that destructive action.87 validation: "A follow-up read command proves the intended state or captures the returned error"88 on_failure: "Do not claim completion; report the command, exit behavior, and the safest next verification command."89```9091## Command Map9293| Area | Commands |94| --- | --- |95| Root | `version`, `update`, `config`, `completion <bash|zsh|fish|powershell>`, hidden `docs llms|markdown|man` |96| Context | `context list/add/delete/get/set-default/set-token/update/use/verify/version` |97| Servers | `server list/get/add/remove/validate/domains` |98| Projects/resources | `project list/get/create`, `resource list` |99| Apps | `app list/get/update/delete/start/stop/restart/logs`, `app create public/github/deploy-key/dockerfile/dockerimage`, `app previews delete` |100| App internals | `app env list/get/create/update/delete/sync`, `app deployments list/logs`, `app storage list/create/update/delete` |101| Databases | `database list/get/create/update/delete/start/stop/restart`, supported types: `postgresql`, `mysql`, `mariadb`, `mongodb`, `redis`, `keydb`, `clickhouse`, `dragonfly` |102| Database internals | `database backup list/create/update/delete/executions/delete-execution/trigger`, `database env list/get/create/update/delete/sync`, `database storage list/create/update/delete` |103| Services | `service list/get/create/delete/start/stop/restart`, `service env list/get/create/update/delete/sync`, `service storage list/create/update/delete` |104| Deployments | `deploy list/get/name/uuid/batch/cancel` |105| Integrations | `github list/get/create/update/delete/repos/branches`, `private-key add/list/remove`, `teams current/get/list/members list` |106| Network/mesh | `firewall allow/revoke/list/containers`, `init plan/bootstrap/extend/upgrade` |107108## Aliases109110- Apps: `app`, `apps`, `application`, `applications`; env aliases: `env`, `envs`, `environment`; storage aliases: `storage`, `storages`; previews aliases: `preview`, `previews`.111- Databases: `database`, `databases`, `db`, `dbs`; storage aliases: `storage`, `storages`.112- Services: `service`, `services`, `svc`; storage aliases: `storage`, `storages`.113- GitHub: `github`, `gh`, `github-app`, `github-apps`.114- Private keys: `private-key`, `private-keys`, `key`, `keys`.115- Servers/projects/resources/teams accept singular or plural where shown in `references/COMMANDS.md`.116117## Common Patterns118119```bash120# Inventory121coolify --context prod server list --format json122coolify project list --format json123coolify resource list --format json124coolify app list --format json125coolify service list --format json126coolify database list --format json127128# App lifecycle129coolify app get <uuid> --format json130coolify app start <uuid>131coolify app stop <uuid>132coolify app restart <uuid>133coolify app logs <uuid> --lines 100 --follow134135# Environment sync136coolify app env sync <app_uuid> --file .env.production --build-time --preview137coolify database env sync <database_uuid> --file .env138coolify service env sync <service_uuid> --file .env139140# Deployments141coolify deploy name <resource_name> --force142coolify deploy batch api,worker,frontend --force143coolify deploy get <deployment_uuid> --format json144coolify app deployments logs <app_uuid> <deployment_uuid> --lines 200 --debuglogs145146# Coolify v5 mesh alpha: plan before apply147coolify init plan --servers 10.0.0.1,10.0.0.2 --ssh-key ~/.ssh/id_ed25519 --format json148```149150<coolify_command_check>151Before executing:1521531. State the target context and whether the command is read, write, or destructive.1542. Cite the exact `references/COMMANDS.md` command entry or local `--help` output used for flags.1553. Use `--format json` when the output will be parsed.1564. Define the follow-up read command that will verify success.157</coolify_command_check>