Command specs are YAML or JSON files validated against a JSON Schema.
description: Deploy application to an environment
description: Target environment
description: Version to deploy
description: Preview without applying changes
description: Number of replicas
- echo "Deploying {{.args.environment}}..."
- ./deploy.sh {{.args.environment}}
REPLICAS: "{{.args.replicas}}"
requireConfirmation: true
allowedExecutables: [/bin/bash, /bin/echo]
| Field | Required | Type | Description |
|---|
schemaVersion | Yes | integer | Must be 1 |
kind | Yes | string | Must be "command" |
metadata | Yes | object | Command metadata |
dependencies | No | string[] | Required binary dependencies (checked before execution) |
args | No | object | Argument definitions |
defaults | No | object | Default shell, timeout, and env |
steps | Yes | array | Steps to execute (minimum 1) |
policy | No | object | Execution policies |
| Field | Required | Type | Description |
|---|
name | Yes | string | Human-readable name |
slug | Yes | string | URL-safe identifier. Must match ^[a-z][a-z0-9-]*$ |
description | No | string | Short description |
tags | No | string[] | Tags for organization |
aliases | No | string[] | Alternative slugs for the command |
An optional array of binary dependencies that must be available on the system. These are checked before execution.
Array of positional argument definitions, parsed in order.
| Field | Required | Type | Description |
|---|
name | Yes | string | Argument name (used in templates as {{.args.name}}) |
description | No | string | Description |
required | No | boolean | Whether the argument is required (default: false) |
Array of named flag definitions.
| Field | Required | Type | Description |
|---|
name | Yes | string | Flag name (used as --name) |
short | No | string | Single-character short form (used as -x) |
type | No | string | One of string (default), bool, int |
default | No | string | Default value |
description | No | string | Description |
| Field | Type | Description |
|---|
shell | string | Default shell for all steps (e.g., /bin/bash) |
timeout | string | Default timeout for all steps (e.g., 30s, 5m) |
env | object | Default environment variables for all steps |
Array of steps to execute sequentially.
| Field | Required | Type | Description |
|---|
name | Yes | string | Step identifier |
run | Yes | string[] | Shell commands to execute |
env | No | object | Step-specific environment variables |
timeout | No | string | Override default timeout |
shell | No | string | Override default shell |
continueOnError | No | boolean | Continue to next step on failure |
| Field | Type | Description |
|---|
requireConfirmation | boolean | Prompt user before running |
allowedExecutables | string[] | Restrict which binaries can be invoked |
Step run lines and env values are rendered as Go templates:
| Variable | Description |
|---|
{{.args.X}} | Argument value by name |
{{.env.X}} | Environment variable value |
{{.cwd}} | Current working directory |
{{.home}} | User’s home directory |