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
templateDelimiters: ["<%", "%>"] # Custom template delimiters (default: ["{{", "}}"])
- 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 |
templateDelimiters |
string[] |
Custom left/right delimiters for template expressions (default: ["{{", "}}"]). Must be a 2-element array. See Template Variables for details. |
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 |