[[ pronounced cfn control or cloudformation control ]]
Are you a fan of Terraform but forced to use Cloudformation due to organizational or technical reasons? Introducing cfnctl, a CLI that brings the Terraform cli experience to Cloudformation. You'll never need to use the AWS Console for managing stacks again!
With cfnctl, you write Cloudformation templates as usual but use the cli workflow that you are already used to from Terraform, including:
- apply
- plan
- destroy
- output
Grab a pre-built binary from the GitHub Releases page for your OS of choice
If you are a terraform user the cfnctl cli works as you would expect. Running the binary without flags will give you the help output:
✗ ./cfnctl
NAME:
cfnctl - ✨ Terraform cli experience for AWS Cloudformation
COMMANDS:
apply Create or update infrastructure
plan Show changes required by the current configuration
destroy Destroy previously-created infrastructure
output Show all exported output values of the selected account and region
validate Check whether the configuration is valid
version Show the current Cfnctl version
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
Examples
Apply infrastructure using the "apply" command.
$ cfnctl apply --template-file mycfntmpl.yaml --auto-approveCfnctl is under early development and is missing several features such as:
- user cancellation does not clean up stacks, Issue
- does not support uploading large templates to S3 yet, Issue
- does not support drift detection yet, Issue
- Migrate terminal UI to the Charm stack — the current interactive layer uses
buger/goterm(stagnant since 2022) andmanifoldco/promptui(effectively abandoned). The plan is to replace these with Bubble Tea for the live-updating resource table, Lip Gloss for styled table rendering, and Huh for interactive prompts. This eliminates the manual cursor management and newline hacks in the current streaming output and brings the terminal UI under a single, actively maintained ecosystem.
Feature request and pull requests are welcome. Please see the Contributing doc
If you read this far consider hitting the star ⭐