Skip to main content
For installation and setup, see CLI. Use -o json or -o yaml with any command for machine-readable output. Run ona help or add --help to any command for details.

Environment commands

Partial environment IDs

Instead of typing full UUIDs, use any substring of an environment ID:
The CLI resolves the partial ID if it uniquely identifies an environment.

Environment names

Use ona environment update to set or clear a custom name:
Use --inactivity-timeout on create or update to set a custom auto-stop timeout. See auto-stop timeout for details. Most user-facing environment commands accept a full environment ID, unique partial ID, or exact environment name:
Environment name matching is case-insensitive. Environment names are not unique; if a name matches more than one environment, use an environment ID. Search across environment IDs, names, repository URLs, and branches:
Generated SSH aliases and stored CLI contexts remain ID-based. Use ssh <environment-id>.ona.environment for direct SSH, or ona environment ssh <name> when you want the CLI to resolve a name.

Port commands

Dev container commands

The environment must be running to rebuild.

Automation commands

Use --environment-id <id-or-name> to target a specific environment for automation commands.

Webhook commands

See Webhooks for setup and SCM registration.

Dotfiles commands

Supports -o json and -o yaml output. See dotfiles documentation.

Project and group commands

Organization security policy commands

The public Veto Exec policy uses only spec.executables:
For executable policies:
  • Omit defaultEffect or set it to EFFECT_ALLOW.
  • Set each rule effect to EFFECT_AUDIT or EFFECT_BLOCK.
  • Use an absolute path or a bare executable name for each rule path.
  • Surrounding whitespace is ignored. Do not use a whitespace-only selector, ., .., or a relative path with a directory separator.
Validate the file before creating or updating the policy:
Creating a policy stores an inactive definition. Assignment validates materializability before the policy can apply to new environments; updating an already-assigned policy validates its new spec again. create and update accept the YAML emitted by get -o yaml, so exported policies can be edited and applied again:
Pass --organization-id <id> to list, create, or set-default to target an organization other than the active CLI context.

Identity commands

Configuration commands

Network troubleshooting

Run connectivity checks from your machine against Ona services. Useful for diagnosing DNS, TLS, proxy, or intermittent connection issues.
The command tests DNS resolution, TCP connections, TLS handshakes, and authenticated API requests. It also checks runner connectivity by discovering runner hosts via the API. Use --runner-host when the API is unreachable and you need to test runner connectivity directly.

Shell completion

Version and updates

SLSA verification cryptographically proves the CLI binary was built by the official build system. When enabled, every update checks the Sigstore certificate, Rekor transparency log, and provenance metadata. If verification fails, the update aborts. Configuration is stored at ~/.ona/configuration.yaml.