Skip to main content
This guide takes you from zero to running infrastructure: install formae, start the agent, deploy a ready-made example to AWS, Azure, or GCP, verify it, and tear it back down.
Prefer to work through an AI assistant? Follow the Quick start with an AI assistant and describe what you want instead of writing Pkl by hand.
1

Install formae

Install the CLI and agent with one command:
Add the binary to your PATH:
Verify the install:
2

Start the formae agent

The agent runs the infrastructure operations and keeps state in sync with your cloud. Start it in its own terminal and leave it running:
It prints its banner, confirms it has started, and registers the bundled providers:
formaev0.88.0
2026-07-20T16:52:21-07:00ย INFย Startingย agentย id=37MG2qUmBGgcOdFOg2kaHU2xk6P
2026-07-20T16:52:21-07:00ย INFย Agentย started
2026-07-20T16:52:21-07:00ย INFย Pluginย registered:ย namespace=AZUREย node=formae-azure-plugin@localhostย rateLimit=10ย resources=43ย [pid=<8E428C64.0.1009>]ย [name=โ€˜PluginCoordinatorโ€™]ย [behavior=plugin_coordinator.PluginCoordinator]
2026-07-20T16:52:21-07:00ย INFย Pluginย registered:ย namespace=GCPย node=formae-gcp-plugin@localhostย rateLimit=10ย resources=65ย [pid=<8E428C64.0.1009>]ย [name=โ€˜PluginCoordinatorโ€™]ย [behavior=plugin_coordinator.PluginCoordinator]
2026-07-20T16:52:23-07:00ย INFย Pluginย registered:ย namespace=AWSย node=formae-aws-plugin@localhostย rateLimit=2ย resources=239ย [pid=<8E428C64.0.1009>]ย [name=โ€˜PluginCoordinatorโ€™]ย [behavior=plugin_coordinator.PluginCoordinator]
2026-07-20T16:52:28-07:00ย INFย Pluginย registered:ย namespace=K8Sย node=formae-k8s-plugin@localhostย rateLimit=10ย resources=575ย [pid=<8E428C64.0.1009>]ย [name=โ€˜PluginCoordinatorโ€™]ย [behavior=plugin_coordinator.PluginCoordinator]
Leave it running in this terminal, and open a second terminal for the remaining steps.
3

Copy an example to your workspace

formae ships runnable examples for each cloud. Copy one into a working directory, along with the PklProject files that declare its Pkl dependencies (the formae SDK and cloud schemas). Choose your cloud in the next step for the exact example.
4

Deploy to your cloud

Prerequisites: AWS credentials in your environment, for example via aws configure or AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY.This example provisions a complete ECS stack: VPC and subnets, security groups, an ECS cluster, an Application Load Balancer, and a running service.Copy the example and its Pkl project files:
Apply the example. formae shows you the plan and waits for your confirmation before it changes anything, then opens a live view of the run. The example exposes --region as a property, so you can pick a region without editing any code:
apply runs for real, so formae first shows you the plan and asks you to confirm. Press y to continue, or q to abort. This is the AWS ecs-hello-world plan:
ย ย formaeย applyย ยทย reconcileย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs_hello_world.pkl
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย +ย 22ย create

ย ย โ–Œย Targets
ย ย Operationย โ–ฒย ย ย Label
ย ย +ย createย ย ย ย ย ย default-aws-target

ย ย โ–Œย Stacks
ย ย Operationย โ–ฒย ย ย Label
ย ย +ย createย ย ย ย ย ย ecs-hello-world

ย ย โ–Œย Resources
ย ย Operationย โ–ฒย ย ย Labelย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Type
ย ย +ย createย ย ย ย ย ย ecs-vpcย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPC
ย ย +ย createย ย ย ย ย ย ecs-igwย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::InternetGateway
ย ย +ย createย ย ย ย ย ย ecs-igw-attachmentย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPCGatewayAttachment
ย ย +ย createย ย ย ย ย ย ecs-public-subnet-1ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnet
ย ย +ย createย ย ย ย ย ย ecs-public-subnet-2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnet
ย ย +ย createย ย ย ย ย ย ecs-public-rtย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::RouteTable
ย ย +ย createย ย ย ย ย ย ecs-public-routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Route
ย ย +ย createย ย ย ย ย ย ecs-public-subnet-1-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociation
ย ย +ย createย ย ย ย ย ย ecs-public-subnet-2-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociation
ย ย +ย createย ย ย ย ย ย ecs-alb-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroup
ย ย ย ย ย ย โ†“ย showย 10ย moreย (10ย remaining)

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย โ†‘โ†“:ย selectย ย space:ย expandย ย โ†’โ†:ย columnย ย s:ย sortย ย y:ย confirmย ย q:ย abortย Thisย operationย willย createย 1ย stack(s),ย create
1ย target(s)ย andย createย 20ย resource(s).ย ย Doย youย wantย toย continue?ย (y/N)ย ย ?:ย help
Once you confirm, formae opens a live view of the run. Press q to leave the view at any time; the operation keeps running on the agent. To re-attach to it, run:
When the run finishes, every resource is applied:
ย ย formaeย statusย commandย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ†ปย live
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย ย ย ย IDย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Commandย ย ย Modeย ย ย ย ย ย ย ย Progressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โœ“ย ย ย ย โœ—ย ย ย ย โ—ย ย ย ย โ—‹ย ย ย ย Time
โœ“ย ย ย ย 3Gmw76N43M4ysS54phFL3naR57pย applyย ย ย ย ย reconcileย ย ย completedย 22/22ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 22ย ย ย 0ย ย ย ย 0ย ย ย ย 0ย ย ย ย 04:19
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

ย ย โ–Œย Targets
ย ย ย ย ย ย ย ย Labelย โ–ฒย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Operationย ย ย Time
ย ย ย โœ“ย ย ย ย default-aws-targetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:00

ย ย โ–Œย Stacks
ย ย ย ย ย ย ย ย Labelย โ–ฒย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Operationย ย ย Time
ย ย ย โœ“ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:00

ย ย โ–Œย Resources
ย ย ย ย ย ย ย ย Labelย โ–ฒย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Typeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Operationย ย ย Time
ย ย ย โœ“ย ย ย ย ecs-albย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Loadโ€ฆย ย createย ย ย ย ย ย 02:45
ย ย ย โœ“ย ย ย ย ecs-alb-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-alb-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-hello-cluster2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:23
ย ย ย โœ“ย ย ย ย ecs-hello-task-defย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::TaskDefinitionย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:24
ย ย ย โœ“ย ย ย ย ecs-hello-world-clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-igwย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::InternetGatewayย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:23
ย ย ย โœ“ย ย ย ย ecs-igw-attachmentย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPCGatewayAttachmentย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-listenerย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Listโ€ฆย ย createย ย ย ย ย ย 00:23
ย ย ย โœ“ย ย ย ย ecs-public-routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:02
ย ย ย โœ“ย ย ย ย ecs-public-rtย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::RouteTableย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-public-subnet-1ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-public-subnet-1-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociaโ€ฆย ย createย ย ย ย ย ย 00:24
ย ย ย โœ“ย ย ย ย ecs-public-subnet-2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-public-subnet-2-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociaโ€ฆย ย createย ย ย ย ย ย 00:23
ย ย ย โœ“ย ย ย ย ecs-task-exec-roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::IAM::Roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-task-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-task-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย createย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-tgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Targโ€ฆย ย createย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-vpcย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPCย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย createย ย ย ย ย ย 00:23

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย โ†’โ†:ย columnย ย s:ย toggleย sortย ย space:ย expandย ย d:ย detailsย ย q:ย quitย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ?:ย help
--mode is required on apply. Learn the difference between reconcile and patch in Apply modes.
5

Verify your deployment

Confirm formae created the resources. Filter the inventory by the stack you just deployed:
For the AWS example, that lists the stack it just deployed:
ย ย formaeย inventory
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
ย โ”‚ย 1ย Resourcesย โ”‚ย ย ย 2ย Targetsย ย ย ย 3ย Stacksย ย ย ย 4ย Policiesย 
โ”€โ•ฏย ย ย ย ย ย ย ย ย ย ย ย ย โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

Labelย โ–ฒย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Stackย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Typeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย NativeIDย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ecs-albย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::LoadBalanโ€ฆarn:aws:elasticloadbalancing:eu-central-1:897โ€ฆ
ecs-alb-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย sg-0ce41bacf1d67b147ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-alb-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย ย ย ย sgr-0fbb692f2f8d5636dย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-hello-cluster2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-world-cluster2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-hello-task-defย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ECS::TaskDefinitionย ย ย ย ย ย ย ย ย ย ย ย ย ย ย arn:aws:ecs:eu-central-1:897722706215:task-deโ€ฆ
ecs-hello-world-clusterย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-world-clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-igwย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::InternetGatewayย ย ย ย ย ย ย ย ย ย ย ย ย ย igw-047bab59003537498ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-igw-attachmentย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::VPCGatewayAttachmentย ย ย ย ย ย ย ย ย IGW|vpc-02e1b0b73a5730d65ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-listenerย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Listenerย ย arn:aws:elasticloadbalancing:eu-central-1:897โ€ฆ
ecs-public-routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::Routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย rtb-0bab9fbbf4c0010e5|0.0.0.0/0|GatewayId=igwโ€ฆ
ecs-public-rtย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::RouteTableย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย rtb-0bab9fbbf4c0010e5ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-public-subnet-1ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย subnet-0b38a309934e06276ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-public-subnet-1-assocย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociationย ย rtbassoc-013308e76c96ade7cย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-public-subnet-2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย subnet-08999cc2f4fb40e87ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-public-subnet-2-assocย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociationย ย rtbassoc-0d4512b6e49506ebaย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-task-exec-roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::IAM::Roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 6cfPoszejP6KRJElRijPynvA8-SMXNaMlk1MfCย ย ย ย ย ย ย ย 
ecs-task-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย sg-075d33812aa776116ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-task-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย ย ย ย sgr-068746b2de1bad0c0ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 
ecs-tgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ecs-hello-worldย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::TargetGroโ€ฆarn:aws:elasticloadbalancing:eu-central-1:897โ€ฆ
Showingย 20ย ofย 20ย resourcesย (filtered)
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย /ย stack:ecs-hello-worldย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย /:ย editย query
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย โ†‘โ†“/j/k:ย navigateย ย enter:ย detailย ย /:ย searchย ย s:ย sortย ย r:ย refreshย ย 1-4:ย tabย ย q:ย quitย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ?:ย help
Each example uses its own stack name. You can also check your cloudโ€™s web console to see the created resources.
6

Clean up

To avoid ongoing charges, destroy what you created:
destroy shows a plan and asks you to confirm too; press y to proceed. The completed teardown looks like this:
ย ย formaeย statusย commandย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ†ปย live
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย ย ย ย IDย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Commandย ย ย Modeย ย ย ย ย ย ย ย Progressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โœ“ย ย ย ย โœ—ย ย ย ย โ—ย ย ย ย โ—‹ย ย ย ย Time
โœ“ย ย ย ย 3Gmwiy52PNdn5rJiu3nWhLDPxJfย destroyย ย ย -ย ย ย ย ย ย ย ย ย ย ย completedย 20/20ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย 20ย ย ย 0ย ย ย ย 0ย ย ย ย 0ย ย ย ย 02:35
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

ย ย โ–Œย Resources
ย ย ย ย ย ย ย ย Labelย โ–ฒย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Typeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Operationย ย ย Time
ย ย ย โœ“ย ย ย ย ecs-albย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Loadโ€ฆย ย deleteย ย ย ย ย ย 01:02
ย ย ย โœ“ย ย ย ย ecs-alb-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-alb-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-hello-cluster2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-hello-task-defย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::TaskDefinitionย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-hello-world-clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ECS::Clusterย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-igwย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::InternetGatewayย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-igw-attachmentย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPCGatewayAttachmentย ย ย ย ย ย deleteย ย ย ย ย ย 01:02
ย ย ย โœ“ย ย ย ย ecs-listenerย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Listโ€ฆย ย deleteย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-public-routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Routeย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:01
ย ย ย โœ“ย ย ย ย ecs-public-rtย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::RouteTableย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-public-subnet-1ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:22
ย ย ย โœ“ย ย ย ย ecs-public-subnet-1-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociaโ€ฆย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-public-subnet-2ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::Subnetย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-public-subnet-2-assocย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SubnetRouteTableAssociaโ€ฆย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-task-exec-roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::IAM::Roleย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-task-sgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-task-sg-ingressย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::SecurityGroupIngressย ย ย ย ย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-tgย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::ElasticLoadBalancingV2::Targโ€ฆย ย deleteย ย ย ย ย ย 00:21
ย ย ย โœ“ย ย ย ย ecs-vpcย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย AWS::EC2::VPCย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย deleteย ย ย ย ย ย 00:22

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย ย โ†’โ†:ย columnย ย s:ย toggleย sortย ย space:ย expandย ย d:ย detailsย ย esc:ย backย ย q:ย quitย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ?:ย help
destroy takes no --mode. It removes every resource in the forma, so there is nothing for reconcile or patch to differ on.

Whatโ€™s next?

Write your first forma

Build a forma from scratch and learn how properties and resource references work.

Quick start with an AI assistant

Deploy by describing what you want to Claude Code, Codex, or another MCP client.

Core concepts

Understand labels, resources, stacks, targets, and formas.

Configure Pkl in your IDE

Set up your editor for Pkl authoring.

Architecture

See how the agent, CLI, and plugins fit together.