Coolship
Commands

Command reference

Every Coolship command, the options they all share, and the conventions for prompts, output, and exit codes.

coolship [command] [flags]
CommandPurpose
initCreate a Coolify application for this repository, then link it
linkBind this repository to an existing Coolify application
unlinkRemove this repository's binding to its Coolify application
statusInspect the linked application's current status
deployDeploy the linked application using its configured Coolify source
logsRead runtime logs from the linked application
openOpen the linked application, or its Coolify page, in a browser
doctorCheck configuration, credentials, and server access
configShow the effective configuration for this directory
envSynchronize a local .env file with the linked application's variables
previewDeploy the preview Coolify holds for a pull request
devRun a local command with the application's variables
domainShow or change the linked application's domains
login, logoutSave or remove a Coolify instance and API token on this machine

coolship --version prints the version, and coolship <command> --help prints each command's help.

Global flags

Every command accepts these. Overrides apply to a single invocation and never rewrite coolship.toml.

FlagPurpose
--cwd DIRUse this working directory without changing the process directory.
--config PATHProject configuration path, relative to the effective working directory.
--context NAMECoolify CLI instance name for this invocation.
--coolify-config PATHRead credentials from this Coolify CLI configuration file.
-e, --environmentRemote environment name for this invocation.
-t, --target NAMENamed target in a monorepo configuration ([apps.<name>]).
--format human|jsonOutput format; human is the default, and logs --format json prints NDJSON.
--no-colorDisable styled output (NO_COLOR does the same).
--verbosePrint one line per request on stderr and stream build logs.
--debugPrint every request and response in full on stderr, token masked.

COOLSHIP_VERBOSITY and the preferences file set the verbosity when neither flag is given; see Verbosity. -v is the version.

status, deploy, logs, open, dev, and domain also take the target as a positional argument: coolship deploy api.

Conventions

  • Nothing changes without a look first. Commands that change something — init, link over a different binding, unlink, env push, domain set — show the plan and ask for confirmation. When stdin is not a terminal, pass --yes (--replace for link) or the command refuses rather than guessing.
  • Results go to stdout; prompts, progress, and diagnostics go to stderr, so piping stdout stays useful. --format json prints one result object per command (logs prints one event per line) and never mixes human progress into stdout.
  • Values that may be secrets are masked unless --show-values is given, and tokens are never printed.
  • Exit codes are 0 success, 1 the operation failed, 2 invalid input, configuration, or selection, and 130 interrupted. See Output and exit codes.

Every JSON result that names an application carries the same target object:

{
  "target": {
    "target": "default",
    "instance": "home",
    "instance_url": "https://coolify.example.com",
    "project": "Personal",
    "project_uuid": "rxv3lqhdvuprnl433dczvo0s",
    "environment": "production",
    "environment_uuid": "5omkp5uuj0qpet6dy16r6bag",
    "application": "fenix-bot",
    "application_uuid": "mm4c0zpbrzx8z96t0qiw3tff",
    "root": "/home/you/my-app"
  }
}

target is default for the single [project] form and the target name otherwise; root is the absolute application root. Optional warnings arrays carry the same text the human output prints as Warning: lines.

On this page