CLI
The openmcf CLI is a single binary that handles the full deployment lifecycle: manifest loading, validation, module resolution, provisioner execution, and state management across Pulumi, OpenTofu, and Terraform.
Installation
# macOS (Homebrew)
brew install plantonhq/tap/openmcf
# Verify
openmcf version
For other platforms, download the binary from GitHub Releases.
You also need at least one IaC engine installed:
# Pulumi
brew install pulumi
# OpenTofu
brew install opentofu
# Terraform
brew install terraform
How the CLI Works
Every deployment follows the same sequence regardless of which engine you choose:
- Load a manifest from a file, clipboard, kustomize build, or stack input
- Validate the manifest against its Protocol Buffer schema
- Resolve the IaC module for the component kind
- Execute the operation through the selected provisioner
You can let the CLI detect the provisioner automatically from the manifest's openmcf.org/provisioner label using unified commands, or choose explicitly with openmcf pulumi, openmcf tofu, or openmcf terraform.
In This Section
-
CLI Reference — Complete command tree, all flags organized by group, exit codes, and file system paths. The single source of truth for flag names and behavior.
-
Unified Commands — Provisioner-agnostic commands (
apply,plan,init,destroy,refresh) that auto-detect the IaC engine from your manifest. -
Pulumi Commands — Pulumi-specific subcommands:
init,preview,update/up,destroy,delete/rm,cancel,refresh. -
OpenTofu Commands — OpenTofu-specific subcommands:
init,plan,apply,destroy,refresh,generate-variables,load-tfvars. -
Terraform Commands — Terraform-specific subcommands:
init,plan,apply,destroy,refresh. Shares the same HCL modules and execution engine as OpenTofu. -
Module Management — Module resolution chain, the staging area, version pinning with
checkoutandpull, and CLI version management withupgradeanddowngrade. -
Configuration & Utilities — CLI configuration (
config set/get/list), manifest validation (validate), manifest loading (load), and version checking.
Quick Start
# Validate a manifest
openmcf validate -f database.yaml
# Deploy with automatic provisioner detection
openmcf apply -f database.yaml
# Preview changes before applying
openmcf plan -f database.yaml
# Tear down
openmcf destroy -f database.yaml
Or use a specific engine directly:
# Pulumi
openmcf pulumi up --manifest database.yaml --yes
# OpenTofu
openmcf tofu init --manifest database.yaml
openmcf tofu apply --manifest database.yaml --auto-approve
# Terraform
openmcf terraform init --manifest database.yaml
openmcf terraform apply --manifest database.yaml --auto-approve
Getting Help
openmcf --help
openmcf apply --help
openmcf pulumi --help
openmcf tofu init --help
Every command and subcommand supports --help.
Next article