CLI

Manage apps from the terminal.

The nodion CLI talks to the same v2 HTTP API as the dashboard. Use it yourself, from CI, or from an agent that can run shell commands.

Install

macOS and Linux:

bashcurl -fsSL https://cli.nodion.net/install.sh | bash

Windows (PowerShell):

powershellirm https://cli.nodion.net/install.ps1 | iex

The installer puts nodion in~/.local/bin on Unix or%LocalAppData%\Programs\nodion on Windows, verifies a signed release manifest, and will replace a Classicnodion already on your PATH. Override the directory with NODION_INSTALL_DIR. Rollback to Classic:curl -fsSL https://cli.nodion.com/install.sh | bash.

Windows verification needs Python 3 (python3,python, or py -3).

Sign in

nodion login starts a browser device-code flow. Confirm the code, and the CLI stores a personal API key in~/.config/nodion/config.yml (mode 0600).

bashnodion login
nodion whoami

Keys must start with nodion_ ornodion_proj_. Older nk_ keys are rejected. Create a personal key under Account → Securityif you want to skip the browser flow.

For CI, skip login and pass a token. It is never written to disk:

bashexport NODION_API_TOKEN=nodion_…
# or a project key that survives when someone leaves
export NODION_API_TOKEN=nodion_proj_…

nodion logout revokes the personal key fromlogin and deletes the local config. It does not revoke project keys or NODION_API_TOKEN.

Project and app

Most commands need a project and an application. Resolution order:

  1. --project / --app
  2. NODION_PROJECT / NODION_APP_ID
  3. nodion.yml, searched from the current directory upward
  4. Account default from the dashboard picker (ornodion projects use)
bashnodion projects list
nodion projects use prj_…
nodion link

nodion link writes a nodion.yml in this directory. The file is safe to commit. It only stores ids:

yamlproject: prj_…
app: app_…

Quickstart

bashnodion login
nodion projects use prj_…
nodion apps list
nodion link
nodion deploy --wait

Create, delete, deploy, and scale ask for confirmation. In CI pass--yes.

Common commands

bash# Applications
nodion apps list
nodion apps get
nodion apps create --name my-api --region REGION --strategy dockerfile
nodion apps delete APP

# Deployments
nodion deploy --wait
nodion deployments list
nodion deployments get DEPLOYMENT

# Environment
nodion env list
nodion env set FOO=bar
nodion env set SECRET=value --secret
nodion env unset FOO

# Runtime
nodion logs --container web --tail 200
nodion processes list
nodion processes scale PROCESS --replicas 2

# Domains
nodion domains list
nodion domains add www.example.com
nodion domains verify DOMAIN

apps create strategies aredockerfile, buildpacks, andprebuilt_image. Git is a source, not a strategy: pass--integration, --repo, and--branch when the app should deploy from a repository. See Applications.

nodion logs needs --container (the process name, such as web).

Version and updates

bashnodion version
nodion update

nodion update fetches the signed manifest fromcli.nodion.net, checks the digest, and replaces this binary in place. It refuses package-managed or symlink installs (Homebrew, /usr/bin). Use --force only to downgrade. There is no silent auto-replace.

On an interactive TTY the CLI may print one line pointing atnodion update when a newer release exists (at most once a day, fail-open, no credentials). Disable withNODION_NO_UPDATE_CHECK=1. The check is off in CI and whenever NODION_API_TOKEN is set.

Other commands

bashnodion databases list
nodion volumes list
nodion buckets list
nodion dns list
nodion cdn list
nodion email-domains list
nodion observers list
nodion regions

Same flags as the app commands. Computers, runners, and runner jobs are not in the CLI yet.

JSON and flags

Every list and get command accepts --output json:

bashnodion apps list --output json

Global flags:

  • --api URL: API origin (default https://app.nodion.com)
  • --token TOKEN: API key for this invocation only
  • --project ID / --app ID
  • --output table|json
  • --yes: skip confirmation

Environment:

  • NODION_API: same as --api
  • NODION_API_TOKEN: overrides the config file, never persisted
  • NODION_PROJECT / NODION_APP_ID
  • NODION_NO_UPDATE_CHECK=1: skip the TTY version hint

The CLI sends X-Nodion-Project like theHTTP API. Interactive request bodies live in the API console.