GUIDES
📖 Aether CLI Reference
One spec, three runtimes: Podman, Kubernetes, and KubeVirt.
Aether is the Universal Runtime Control Plane. One spec, three runtimes: Podman, Kubernetes, and KubeVirt.
📑 Table of Contents¶
- Global Options
- Workload Lifecycle
- validate
- build
- run
- stop
- status
- logs
- delete
- list
- Migration
- migrate
- rollback
- Developer Workflow
- exec
- port-forward
- watch
- compare
- init
- health
- diff
- Compose
- compose validate
- compose up
- compose down
- Plugins
- plugin list
- plugin discover
- plugin register
- plugin remove
- Operations
- backup
- restore
- list-backups
- deploy
- drift
- Governance
- policy-check
- secrets
- sla
- audit
- events
- Advanced / AI
- cost
- recommend
- profile
- analyze-logs
- migration-advice
- scaling-advice
- Orchestration
- orchestrate
- schedule
- affinity
- webhook
- env
- template
- deps
- UI and Utilities
- tui
- serve
- help-all
- completions
- config
- metrics
🌍 Global Options¶
These flags apply to every command:
| Flag | Short | Default | Description |
|---|---|---|---|
--spec <FILE> |
-s |
workload.yaml |
Workload specification file |
--namespace <NS> |
-n |
Kubernetes namespace override (also AETHER_NAMESPACE env var) |
|
--verbose |
-v |
Enable debug-level logging | |
--quiet |
-q |
Suppress all output except errors | |
--json |
Output results as JSON (conflicts with --quiet) |
||
--output <FMT> |
-o |
table |
Output format: table, json, yaml, wide |
--yes |
-y |
Skip confirmation prompts (CI/automation) | |
--dry-run |
Show what would happen without executing | ||
--skip-policy |
Skip policy checks on deploy (use with caution) |
Namespace resolution order: --namespace flag > AETHER_NAMESPACE env var > "default".
# Deploy to a specific namespace
aether -n staging run --runtime kube
# Or use the environment variable
export AETHER_NAMESPACE=production
aether run --runtime kube
📦 Workload Lifecycle¶
validate¶
Validate a workload specification file against the schema.
aether [OPTIONS] validate
Examples:
aether validate
aether --spec my-app.yaml validate
aether --output json validate
build¶
Build a container image from the workload spec. The runtime is selected automatically by the decision engine.
aether [OPTIONS] build
Examples:
aether build
aether --spec api.yaml build
run¶
Deploy a workload instance. Builds the image, starts the instance, and persists
state. Shows an interactive runtime selector unless --runtime is provided.
aether [OPTIONS] run [--runtime <RUNTIME>]
| Flag | Short | Description |
|---|---|---|
--runtime <NAME> |
-r |
Override runtime: podman, kube, kubevirt, metal |
Examples:
aether run
aether run --runtime podman
aether --dry-run run
aether --skip-policy run --runtime kube
stop¶
Stop a running workload instance. The state is preserved for restart.
aether [OPTIONS] stop <NAME>
Examples:
aether stop hello-web
aether --dry-run stop hello-web
status¶
Get the current status of a workload instance.
aether [OPTIONS] status <NAME>
Examples:
aether status hello-web
aether --output json status hello-web
aether --output yaml status hello-web
logs¶
View logs from a workload instance.
aether [OPTIONS] logs <NAME> [--follow]
| Flag | Short | Description |
|---|---|---|
--follow |
-f |
Follow log output in real time |
Examples:
aether logs hello-web
aether logs hello-web --follow
delete¶
Delete a workload instance and remove it from state.
aether [OPTIONS] delete <NAME>
Examples:
aether delete hello-web
aether --yes delete hello-web
aether --dry-run delete hello-web
list¶
List all tracked workload instances.
aether [OPTIONS] list
Examples:
aether list
aether --output wide list
aether --json list
🔀 Migration¶
migrate¶
Migrate a workload from its current runtime to a different one.
aether [OPTIONS] migrate <NAME> <TARGET> [--strategy <STRATEGY>] [--no-validation] [--no-rollback]
| Flag | Default | Description |
|---|---|---|
--strategy |
blue-green |
Strategy: immediate, blue-green, rolling |
--no-validation |
Skip post-migration validation delay | |
--no-rollback |
Disable automatic rollback on failure |
Strategies:
| Strategy | Downtime | Behavior |
|---|---|---|
immediate |
Yes | Stop source, build + deploy target, validate |
blue-green |
No | Deploy target alongside source, switch traffic, cleanup |
rolling |
No | Deploy target, validate with retries, gradual traffic shift (25/50/75/100%) |
Examples:
aether migrate hello-web kube
aether migrate hello-web kube --strategy rolling
aether migrate hello-web podman --strategy immediate --no-rollback
aether --dry-run migrate hello-web kubevirt --strategy blue-green
rollback¶
Rollback a workload to its latest pre-deploy snapshot.
aether [OPTIONS] rollback <NAME>
Examples:
aether rollback hello-web
🛠 Developer Workflow¶
exec¶
Execute a command inside a running workload container.
aether [OPTIONS] exec <NAME> [COMMAND] [--interactive] [--timeout <SECS>]
| Flag | Short | Default | Description |
|---|---|---|---|
COMMAND |
/bin/sh |
Command to execute | |
--interactive |
-i |
Pass stdin to the container | |
--timeout |
-t |
0 |
Timeout in seconds (0 = none) |
Examples:
aether exec hello-web
aether exec hello-web "ls -la /app" --timeout 30
aether exec hello-web "/bin/bash" --interactive
port-forward¶
Forward local ports to a running workload.
aether [OPTIONS] port-forward <NAME> <PORTS> [--timeout <SECS>]
| Flag | Short | Default | Description |
|---|---|---|---|
PORTS |
Port mapping local:remote |
||
--timeout |
-t |
0 |
Timeout in seconds (0 = none) |
Examples:
aether port-forward hello-web 8080:80
aether port-forward hello-web 3000:3000 --timeout 300
watch¶
Watch the spec file and auto-redeploy on changes.
aether [OPTIONS] watch [--runtime <RUNTIME>]
Examples:
aether watch
aether --spec api.yaml watch --runtime podman
compare¶
Compare a workload across all three runtimes (cost, capabilities, limitations).
aether [OPTIONS] compare
Examples:
aether compare
aether --output json compare
init¶
Run the first-time setup wizard. Detects runtimes, creates config, ensures directories.
aether init
health¶
View health history and uptime statistics for a workload.
aether [OPTIONS] health <NAME> [--last <N>] [--summary]
| Flag | Short | Default | Description |
|---|---|---|---|
--last |
-l |
20 |
Show last N health records |
--summary |
Show summary statistics only |
Examples:
aether health hello-web
aether health hello-web --last 50
aether health hello-web --summary
diff¶
Three-way diff: spec file vs stored state vs live runtime.
aether [OPTIONS] diff <NAME>
Examples:
aether diff hello-web
aether --output json diff hello-web
🗂 Compose¶
compose validate¶
Validate a compose file for structural correctness, dependency cycles, and missing references.
aether compose validate [FILE]
Examples:
aether compose validate
aether compose validate ./deploy/aether-compose.yaml
compose up¶
Deploy all workloads defined in a compose file, in dependency order.
aether compose up [FILE] [--runtime <RUNTIME>] [--dry-run]
| Flag | Short | Description |
|---|---|---|
--runtime |
-r |
Override runtime for all workloads |
--dry-run |
Show deployment plan without executing |
Examples:
aether compose up
aether compose up --runtime podman
aether compose up --dry-run
aether compose up ./deploy/aether-compose.yaml
compose down¶
Stop and remove all workloads from a compose file, in reverse dependency order.
aether compose down [FILE]
Examples:
aether compose down
aether compose down ./deploy/aether-compose.yaml
🧩 Plugins¶
plugin list¶
List all registered plugins.
aether plugin list
plugin discover¶
Scan ~/.aether/plugins/ for *.json manifest files and register them.
aether plugin discover
plugin register¶
Register a plugin from a manifest file.
aether plugin register <MANIFEST>
Examples:
aether plugin register ./wasm-runtime.json
plugin remove¶
Unregister a plugin by name.
aether plugin remove <NAME>
Examples:
aether plugin remove wasm-runtime
🔧 Operations¶
backup¶
Create a backup of the current workload state.
aether [OPTIONS] backup [--name <NAME>] [--description <DESC>]
| Flag | Short | Description |
|---|---|---|
--name |
-n |
Backup name (auto-generated if not provided) |
--description |
-d |
Human-readable description |
Examples:
aether backup
aether backup --name pre-migration --description "Before kube migration"
restore¶
Restore workload state from a backup file.
aether [OPTIONS] restore <BACKUP> [--merge]
| Flag | Short | Description |
|---|---|---|
--merge |
-m |
Merge with existing state instead of replacing |
Examples:
aether restore ~/.aether/backups/backup-20260411-103000.json
aether restore backup.json --merge
list-backups¶
List all available backup files.
aether list-backups
deploy¶
Deploy all workload specs from a directory.
aether [OPTIONS] deploy <DIR> [--runtime <RUNTIME>] [--fail-fast] [--dry-run]
| Flag | Short | Description |
|---|---|---|
--runtime |
-r |
Override runtime for all workloads |
--fail-fast |
Stop on first failure | |
--dry-run |
Show deployment plan without executing |
Examples:
aether deploy ./specs/
aether deploy ./specs/ --runtime podman --fail-fast
aether deploy ./specs/ --dry-run
drift¶
Detect configuration drift between the desired spec and live state.
aether [OPTIONS] drift <NAME> [--reconcile]
| Flag | Description |
|---|---|
--reconcile |
Automatically reconcile detected drift |
Examples:
aether drift hello-web
aether drift hello-web --reconcile
🏛 Governance¶
policy-check¶
Evaluate a workload spec against deployment policies.
aether [OPTIONS] policy-check [--policy <POLICY>]
| Flag | Short | Default | Description |
|---|---|---|---|
--policy |
-p |
production |
Policy set: production, development, or file path |
Examples:
aether policy-check
aether policy-check --policy development
aether policy-check --policy ./custom-policies.yaml
secrets¶
Manage encrypted secrets (AES-256-GCM when AETHER_SECRET_KEY is set).
aether secrets <SUBCOMMAND>
| Subcommand | Description |
|---|---|
create <NAME> [--namespace <NS>] |
Create a new secret |
set <SECRET> <KEY> <VALUE> |
Set a key-value pair |
get <SECRET> <KEY> |
Get a decrypted value |
list |
List all secrets (no values shown) |
audit |
Check rotation status |
Examples:
aether secrets create db-creds --namespace production
aether secrets set db-creds password "s3cret"
aether secrets get db-creds password
aether secrets list
aether secrets audit
sla¶
SLA compliance monitoring.
aether sla <SUBCOMMAND>
| Subcommand | Description |
|---|---|
add <WORKLOAD> [--tier <TIER>] |
Add an SLA target |
check <WORKLOAD> --uptime <PCT> [--latency <MS>] [--error-rate <PCT>] [--restarts <N>] |
Check compliance |
list |
List all SLA targets |
Tiers: standard, high-availability, best-effort
Examples:
aether sla add hello-web --tier high-availability
aether sla check hello-web --uptime 99.9 --latency 50 --error-rate 0.01
aether sla list
audit¶
View the audit trail of workload operations.
aether [OPTIONS] audit [--last <N>] [--workload <NAME>] [--summary]
| Flag | Short | Default | Description |
|---|---|---|---|
--last |
-l |
20 |
Show last N events |
--workload |
-w |
Filter by workload name | |
--summary |
Show summary only |
Examples:
aether audit
aether audit --last 50 --workload hello-web
aether audit --summary
events¶
View and manage the event stream.
aether [OPTIONS] events [--last <N>] [--severity <LEVEL>] [--summary]
| Flag | Default | Description |
|---|---|---|
--last |
20 |
Show last N events |
--severity |
Filter: info, warning, error, critical |
|
--summary |
Show summary only |
Examples:
aether events
aether events --last 100 --severity error
aether events --summary
🤖 Advanced / AI¶
cost¶
Estimate workload costs across cloud providers.
aether [OPTIONS] cost [--provider <PROVIDER>]
| Flag | Short | Default | Description |
|---|---|---|---|
--provider |
-c |
all |
aws, azure, gcp, digitalocean, linode, all |
Examples:
aether cost
aether cost --provider aws
aether --output json cost --provider all
recommend¶
AI-powered runtime recommendation with scoring.
aether [OPTIONS] recommend [--runtime <RUNTIME>]
Examples:
aether recommend
aether recommend --runtime kube
profile¶
Profile a workload and show optimization recommendations.
aether [OPTIONS] profile [--name <NAME>]
Examples:
aether profile
aether profile --name hello-web
analyze-logs¶
Analyze workload logs for anomalies and patterns.
aether [OPTIONS] analyze-logs <NAME>
Examples:
aether analyze-logs hello-web
migration-advice¶
Get AI-powered migration advice for a workload.
aether [OPTIONS] migration-advice <NAME> <TARGET>
Examples:
aether migration-advice hello-web kube
aether migration-advice api-service kubevirt
scaling-advice¶
Show predictive scaling recommendations based on historical data.
aether [OPTIONS] scaling-advice
Examples:
aether scaling-advice
aether --output json scaling-advice
🎛 Orchestration¶
orchestrate¶
Health-aware orchestration with circuit breakers and rolling updates.
aether orchestrate <SUBCOMMAND>
| Subcommand | Description |
|---|---|
register <NAME> [--runtime <RT>] |
Register a workload for health monitoring |
status |
Show health status of all workloads |
summary |
Show health summary |
rolling-update <NAME> [--replicas <N>] |
Simulate a rolling update |
reset-circuit <NAME> |
Reset circuit breaker for a workload |
health-check |
Run a single round of health checks |
watch [--interval <SECS>] |
Continuously monitor health + evaluate alert rules (default: 30s) |
Examples:
aether orchestrate register api --runtime kubernetes
aether orchestrate status
aether orchestrate watch --interval 60
aether orchestrate rolling-update api --replicas 5
aether orchestrate reset-circuit api
aether orchestrate health-check
schedule¶
Workload scheduling and placement optimization.
aether schedule <SUBCOMMAND>
| Subcommand | Description |
|---|---|
place <NAME> [--cpu <N>] [--memory <MB>] [--strategy <S>] [--prefer <RT>] |
Schedule a workload |
utilization |
Show runtime utilization |
optimize |
Get optimization suggestions |
placements |
Show current placements |
Strategies: balanced, cost, performance, bin-packing
Examples:
aether schedule place api --cpu 4 --memory 8192 --strategy cost
aether schedule utilization
aether schedule optimize
aether schedule placements
affinity¶
Runtime affinity learning and recommendations.
aether affinity <SUBCOMMAND>
| Subcommand | Description |
|---|---|
recommend <CLASS> |
Show recommendations for a workload class |
matrix |
Show compatibility matrix |
stats |
Show learning statistics |
Workload classes: web-service, api-backend, database, cache,
batch-job, ml-training, worker, microservice
Examples:
aether affinity recommend web-service
aether affinity matrix
aether affinity stats
webhook¶
Manage webhook notification channels with retry queue.
aether webhook <SUBCOMMAND>
| Subcommand | Description |
|---|---|
add <NAME> <URL> [--method <M>] [--severity <S>] |
Add a notification channel |
remove <NAME> |
Remove a channel |
list |
List all channels |
test <NAME> |
Send a test notification |
queue |
Show pending deliveries |
flush |
Force-retry all queued webhooks |
Examples:
aether webhook add slack "https://hooks.slack.com/..." --severity warning
aether webhook test slack
aether webhook queue
aether webhook flush
aether webhook list
aether webhook remove slack
env¶
Manage deployment environments.
aether env <SUBCOMMAND>
| Subcommand | Description |
|---|---|
create <NAME> [--tier <TIER>] |
Create a new environment |
list |
List environments |
promote <WORKLOAD> <FROM> <TO> |
Promote workload between envs |
parity <ENV1> <ENV2> |
Check parity between environments |
Tiers: development, staging, production
Examples:
aether env create staging --tier staging
aether env list
aether env promote hello-web staging production
aether env parity staging production
template¶
Generate a workload spec from a built-in template.
aether template <NAME> [--workload-name <WN>] [--owner <O>] [--project <P>] [--registry <R>] [--output <FILE>] [--list]
Templates: web-app, rest-api, database, cache, worker, cron-job,
ml-training, microservice
| Flag | Default | Description |
|---|---|---|
--workload-name |
Workload name in generated spec | |
--owner |
team |
Owner field |
--project |
default |
Project field |
--registry |
ghcr.io/org |
Container registry |
--output |
stdout | Output file path |
--list |
List available templates |
Examples:
aether template --list
aether template web-app --workload-name my-site --output my-site.yaml
aether template rest-api --registry docker.io/myorg --project backend
aether template database --workload-name pg-primary
deps¶
Manage workload dependencies and startup order.
aether deps <SUBCOMMAND>
| Subcommand | Description |
|---|---|
add <WORKLOAD> <DEPENDENCY> |
Add a dependency |
remove <WORKLOAD> <DEPENDENCY> |
Remove a dependency |
show |
Show dependency graph |
impact <WORKLOAD> |
Show impact of stopping a workload |
order |
Show startup order |
Examples:
aether deps add web-frontend api-service
aether deps show
aether deps order
aether deps impact api-service
aether deps remove web-frontend api-service
🖥 UI and Utilities¶
tui¶
Launch the interactive TUI dashboard with live workload status.
aether tui
serve¶
Start the API server and web dashboard.
aether serve [--host <HOST>] [--port <PORT>]
| Flag | Default | Description |
|---|---|---|
--host |
127.0.0.1 |
Server host |
--port |
8080 |
Server port |
Examples:
aether serve
aether serve --host 0.0.0.0 --port 9090
help-all¶
Show detailed command reference with examples for all commands.
aether help-all
completions¶
Generate shell completions.
aether completions <SHELL>
Shells: bash, zsh, fish, powershell, elvish
Examples:
aether completions bash > ~/.local/share/bash-completion/completions/aether
aether completions zsh > ~/.zsh/completions/_aether
aether completions fish > ~/.config/fish/completions/aether.fish
config¶
Show or initialize configuration.
aether config [--show] [--init]
| Flag | Description |
|---|---|
--show |
Display current configuration |
--init |
Initialize default configuration file |
Examples:
aether config --show
aether config --init
metrics¶
Export Prometheus-format metrics for all recorded operations.
aether metrics
🔗 Cross-References¶
| Document | Description |
|---|---|
| Tutorial 1: Beginner Deployment | First deployment walkthrough |
| Tutorial 2: Intermediate Workflows | Compose, migration, watch |
| Tutorial 3: Advanced Features | Policies, secrets, drift, plugins |
| Migration Checklist | Step-by-step migration guide |
🏷 License: Proprietary HyperSDK