Skip to main content
Ready to deploy? Start Free Trial

Documentation Reference

CLI commands

Every cw command, its flags and an example.

Generated Shows cw 0.11.0

Install cw, then log in. Every command takes -h for its own help; the commands and their help are in English.

curl -fsSL https://www.cloudwady.com/install.sh | sh
irm https://www.cloudwady.com/install.ps1 | iex  # Windows
cw login

Account

cw login

Save an API token (create one in My Settings → API Tokens)

cw login [flags]
FlagDefaultDescription
--url string platform URL (default https://www.cloudwady.com)
--with-token read the token from standard input

cw logout

Forget the saved token

cw logout [flags]

cw whoami

Show who the token acts as, and its namespaces

cw whoami [flags]
FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the API response as JSON

cw namespaces

The token's namespaces: the codes --namespace takes

cw namespaces [flags]
FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the namespaces as JSON

cw use

Switch between platforms you logged in to

cw use [flags]

cw update

Update cw to the latest release (--check only looks)

cw update [flags]
FlagDefaultDescription
--check only say whether a newer release exists
--force update even a development build, or reinstall the same version
--version string install this release (e.g. v0.3.0) instead of the latest

cw completion

Tab completion for bash, zsh or fish: source <(cw completion zsh)

cw completion bash|zsh|fish

Prints the shell's completion script for cw: Tab completes commands, show, each command's flags and the values some flags take (--env, --source, …). bash in ~/.bashrc: source <(cw completion bash) zsh in ~/.zshrc, after compinit: source <(cw completion zsh) fish cw completion fish > ~/.config/fish/completions/cw.fish

Read

cw attention

What needs attention now

cw attention [flags]

What needs attention now: the dashboard's Needs attention rules, with their records. Exit code 3 when something does, 0 when nothing does.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the API response as JSON
--namespace string only this namespace (code or id)

cw projects

List projects

cw projects [flags]

cw projects show <id|name> [flags]

FlagDefaultDescription
--all include deleted and disabled projects
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--search string only projects whose name contains this (any case)
cw projects show <id|name>

cw apps

List apps

cw apps [flags]

cw apps show <id|name> [flags] A name several apps share is narrowed by the filters below (all but --search): cw apps show <name> --project <value>

FlagDefaultDescription
--all include deleted and disabled apps
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string community or enterprise
--env string production, staging or development
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--project string only apps whose project name or code contains this
--search string only apps whose name contains this (any case)
--server string only apps on this server (id or name)
--show-url add the URL column
--state string only apps in this state
--version string only this Odoo version, e.g. 19.0
cw apps show <id|name>

cw urls

List apps' URLs

cw urls [flags]

--app takes an app's id or name. Where several apps share the name, --project, --env, --server, --version and --edition narrow which one it means (and nothing else).

FlagDefaultDescription
--app string only this app's URLs (id or name)
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows --app to an app of this edition (community or enterprise)
--env string narrows --app to an app in this environment (production, staging or development)
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--project string narrows --app to an app whose project name or code contains this
--server string narrows --app to an app on this server (id or name)
--ssl string only URLs whose certificate is valid, expiring_soon, expired or unknown
--version string narrows --app to an app of this Odoo version, e.g. 19.0

cw servers

List servers

cw servers [flags]

cw servers show <id|name> [flags] A name several servers share is narrowed by the filters below (all but --): cw servers show <name> --state <value>

FlagDefaultDescription
--all include deleted and disabled servers
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--state string only servers in this state
cw servers show <id|name>

cw installers

List installed services

cw installers [flags]

cw installers show <id|name> [flags] A name several installers share is narrowed by the filters below (all but --): cw installers show <name> --server <value>

FlagDefaultDescription
--all include deleted and disabled installers
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--server string only on this server (id or name)
--state string only installers in this state
cw installers show <id|name>

cw backups

List backups

cw backups [flags]

cw backups show <id> [flags] --app takes an app's id or name. Where several apps share the name, --project, --env, --server, --version and --edition narrow which one it means (and nothing else).

FlagDefaultDescription
--app string only this app's backups (id or name)
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows --app to an app of this edition (community or enterprise)
--env string narrows --app to an app in this environment (production, staging or development)
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--project string narrows --app to an app whose project name or code contains this
--server string narrows --app to an app on this server (id or name)
--version string narrows --app to an app of this Odoo version, e.g. 19.0
cw backups show <id>

cw restore-points

An app's changes

cw restore-points <app> [flags]

What each change to the app did — its commits, the modules it updated, the backup taken before it — newest first. "failed, kept as it was": the update failed and the app stayed as it was; "instant": the database from before the change is still held. <app> is an id or a name. Where several apps share the name, --project, --env, --server, --version and --edition narrow which one it means.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string look the app up in this namespace only
--offset int rows to skip
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
cw restore-points <app>

cw runs

List recent runs

cw runs [flags]

cw runs show <id> [flags] --app takes an app's id or name. Where several apps share the name, --project, --env, --server, --version and --edition narrow which one it means (and nothing else).

FlagDefaultDescription
--app string only this app's runs (id or name)
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows --app to an app of this edition (community or enterprise)
--env string narrows --app to an app in this environment (production, staging or development)
--json print the API response as JSON
--limit int 50 rows per page (1-200)
--namespace string only this namespace (code or id)
--offset int rows to skip
--project string narrows --app to an app whose project name or code contains this
--server string narrows --app to an app on this server (id or name)
--state string only runs in this state (e.g. error, running, done)
--version string narrows --app to an app of this Odoo version, e.g. 19.0
cw runs show <id>

cw logs

An app's logs

cw logs <app> [flags]

The app's logs, newest last: its Odoo log, and with --source the logs of its setup, restore, backup, transfer, upgrade and script runs: cw logs v19-0 --source main,restore --follow <app> is an id or a name. Where several apps share the name, --project, --env, --server, --version and --edition narrow which one it means: cw logs v19-0 --project internal --env production

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--follow keep printing new lines until interrupted (Ctrl-C)
--grep string only lines containing this text (any case)
--json print each API answer as JSON
--limit int 200 lines to show (1-2000)
--namespace string look the app up in this namespace only
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--since string 1h how far back: 30s, 15m, 1h … 24h
--source string main which logs, comma-separated: main (the Odoo log), setup, restore, backup, transfer, upgrade, script — or all
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
cw logs <app> [--since 1h] [--grep …] [--follow] [--source …]

Change

cw backup

Back up an app now

cw backup <app> [flags]

Backs up the app now — what the dashboard's Backup does. A backup of the app that already runs is reported, not doubled. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--format string zip zip (database and files) or dump (database only)
--json print the platform's answer as JSON
--namespace string look the app up in this namespace only
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--timeout duration 30m0s how long --wait follows the run
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw backup <app> [--format dump] [--wait]

cw restart

Restart an app

cw restart <app> [flags]

Restarts the app — its users are cut off for a moment. Refused while an update, a backup or a restore of it runs: a restart never cancels them. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--json print the platform's answer as JSON
--namespace string look the app up in this namespace only
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--timeout duration 30m0s how long --wait follows the run
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw restart <app> [--wait]

cw runs retry

Run a failed run again

cw runs retry <id> [flags]

Runs a failed run again from the step that failed — what the dashboard's Retry does. Refused while an automatic retry is due (--now retries anyway), or when a newer run of the same record exists. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--json print the platform's answer as JSON
--namespace string look the app up in this namespace only
--now retry even though an automatic retry is due
--timeout duration 30m0s how long --wait follows the run
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw runs retry <id> [--now] [--wait]

cw apps update

Update an app

cw apps update <app> [flags]

Updates the app to its branches' latest code — what the dashboard's Update does: pulled, rebuilt and recreated, then its modules updated. --quick pulls and restarts on the same image. A production app is backed up first unless --no-backup. Refused while something runs on it. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--backup back the app up first (production does by default)
--backup-format string zip the backup taken first: zip (database and files) or dump (database only)
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--json print the platform's answer as JSON
--modules string changed the module update that follows: changed (what the pull changed), configured (the app's own scope) or none (--quick only)
--namespace string look the app up in this namespace only
--no-backup do not back up first, also in production
--project string narrows <app> to an app whose project name or code contains this
--quick pull the code and restart on the same image, without rebuilding
--server string narrows <app> to an app on this server (id or name)
--timeout duration 30m0s how long --wait follows the run
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw apps update <app> [--quick] [--modules …] [--wait]

cw apps update-modules

Update some of an app's modules

cw apps update-modules <app> <module>... [flags]

Updates the named modules (odoo -u) on the app's database, its code as it is — what the dashboard's Update Modules does. A production app is backed up first unless --no-backup. Refused while something runs on it. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--backup back the app up first (production does by default)
--backup-format string zip the backup taken first: zip (database and files) or dump (database only)
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--json print the platform's answer as JSON
--namespace string look the app up in this namespace only
--no-backup do not back up first, also in production
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--timeout duration 30m0s how long --wait follows the run
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw apps update-modules <app> sale stock [--wait]

cw maintenance

Maintenance page on / off

cw maintenance <app> on|off [flags]

Puts the app in maintenance — its users see the maintenance page — or takes it out again. Refused while an update, a backup or a restore of it runs: it never cancels them. It asks first: a production app by typing its name, anything else y/N. From a script, --yes. The token needs the function ticked in My Settings → API Tokens.

FlagDefaultDescription
--color string auto auto (in a terminal, unless NO_COLOR is set), always or never
--edition string narrows <app> to an app of this edition (community or enterprise)
--env string narrows <app> to an app in this environment (production, staging or development)
--json print the platform's answer as JSON
--namespace string look the app up in this namespace only
--project string narrows <app> to an app whose project name or code contains this
--server string narrows <app> to an app on this server (id or name)
--timeout duration 30m0s how long --wait follows the run
--version string narrows <app> to an app of this Odoo version, e.g. 19.0
--wait follow the run until it ends: exit 0 done, 1 failed, 4 still running
--yes do it without asking (needed from a script)
cw maintenance <app> on|off [--wait]

AI agents

cw mcp

Serve the platform's tools to an AI client (stdio): claude mcp add -s user cloudwady -- cw mcp

cw mcp

Serves the platform's tools to an AI client over stdio, with the token "cw login" saved (or CW_TOKEN). Add it to your client: Claude Code claude mcp add -s user cloudwady -- cw mcp Cursor, … {"mcpServers": {"cloudwady": {"command": "cw", "args": ["mcp"]}}} Codex [mcp_servers.cloudwady] command = "cw" args = ["mcp"] A client that speaks HTTP can also connect to <platform>/mcp directly, with the header "Authorization: Bearer <token>".

Was this page helpful?

Your answer helps us prioritize documentation improvements.

Thanks — your feedback helps us improve.