Documentation menu

CLI

The current hostwright command surface and the planned first-release commands.

The hostwright command line is the primary way you interact with the control plane. This page separates commands implemented today from commands planned for the first supported release.

CLI lifecycle from init, validate, plan, doctor to the planned apply, status, and down commands.
Solid commands are implemented today; dashed commands are planned.

Commands

CommandStatusMutating?Purpose
hostwright --versionimplementedread-onlyPrint the current development version.
hostwright initimplementedwrites filesCreate hostwright.yaml only when absent.
hostwright validateimplementedread-onlyCheck the restricted manifest subset and semantic rules.
hostwright doctorimplementedread-onlyRun safe local checks without calling Apple container commands.
hostwright planimplementedread-onlyShow a non-mutating manifest-level plan and state that runtime observation is unavailable.
hostwright statusimplementedread-onlyShow manifest-level status only.
hostwright applyplannedmutatingValidate, compute a plan, persist intent, and apply idempotently.
hostwright logsplannedread-onlyFetch or stream service logs, honest about runtime limits.
hostwright restartplannedmutatingRestart a service or project per policy and record an event.
hostwright downplannedmutatingStop project resources per ownership rules; preserves named volumes by default.
hostwright cleanplannedmutatingRemove stale, owned resources. Dry-run first.

Read-only first

The implemented commands you reach for while iterating — validate, plan, doctor, and status — never change runtime state. You can run them freely.

Destructive commands

down and clean are planned commands. They can remove resources, so the first release requires safe behavior:

hostwright down --dry-run        # preview what would stop
hostwright clean --dry-run       # preview stale, owned resources
hostwright clean --confirmed     # remove safe, stale, owned resources only
hostwright clean --volumes       # requires explicit confirmation; lists every named volume

Cleanup is not implemented today. The release requirement is that cleanup only touches resources Hostwright can prove it owns. See the safety model.