> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formae.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick start

> Install formae and deploy your first infrastructure to AWS, Azure, or GCP in about ten minutes.

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.

<Note>
  Prefer to work through an AI assistant? Follow the
  [Quick start with an AI assistant](/documentation/get-started/quickstart-ai-assistant)
  and describe what you want instead of writing Pkl by hand.
</Note>

<Steps>
  <Step title="Install formae">
    Install the CLI and agent with one command:

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    /bin/bash -c "$(curl -fsSL https://hub.platform.engineering/get/formae.sh)"
    ```

    Add the binary to your `PATH`:

    <CodeGroup>
      ```bash zsh theme={"languages":{"custom":["/languages/pkl.json"]}}
      echo 'export PATH=/opt/pel/bin:$PATH' >> ~/.zshrc
      source ~/.zshrc
      ```

      ```bash bash theme={"languages":{"custom":["/languages/pkl.json"]}}
      echo 'export PATH=/opt/pel/bin:$PATH' >> ~/.bashrc
      source ~/.bashrc
      ```

      ```fish fish theme={"languages":{"custom":["/languages/pkl.json"]}}
      fish_add_path /opt/pel/bin
      ```
    </CodeGroup>

    Verify the install:

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    formae --version
    ```
  </Step>

  <Step title="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:

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    formae agent start
    ```

    It prints its banner, confirms it has started, and registers the bundled
    providers:

    <div className="fa-term">
      <img className="fa-term-banner" src="https://mintcdn.com/platform-engineering-labs/wpqcuCReLcOeeHo1/images/documentation/get-started/formae-agent-banner.svg?fit=max&auto=format&n=wpqcuCReLcOeeHo1&q=85&s=023207ec4a4b1858d0cd9c76bda3c38a" alt="formae" width="458" height="80" data-path="images/documentation/get-started/formae-agent-banner.svg" />

      <div className="fa-term-body">2026-07-20T16:52:21-07:00 <span style={{color:'#56d364'}}>INF</span> Starting agent id=37MG2qUmBGgcOdFOg2kaHU2xk6P<br />2026-07-20T16:52:21-07:00 <span style={{color:'#56d364'}}>INF</span> Agent started<br />2026-07-20T16:52:21-07:00 <span style={{color:'#56d364'}}>INF</span> Plugin registered: namespace=AZURE node=formae-azure-plugin\@localhost rateLimit=10 resources=43 \[pid=<span style={{color:'#58a6ff'}}>\<8E428C64.0.1009></span>] \[name=<span style={{color:'#3fb950'}}>'PluginCoordinator'</span>] \[behavior=<span style={{color:'#3fb950'}}>plugin\_coordinator.PluginCoordinator</span>]<br />2026-07-20T16:52:21-07:00 <span style={{color:'#56d364'}}>INF</span> Plugin registered: namespace=GCP node=formae-gcp-plugin\@localhost rateLimit=10 resources=65 \[pid=<span style={{color:'#58a6ff'}}>\<8E428C64.0.1009></span>] \[name=<span style={{color:'#3fb950'}}>'PluginCoordinator'</span>] \[behavior=<span style={{color:'#3fb950'}}>plugin\_coordinator.PluginCoordinator</span>]<br />2026-07-20T16:52:23-07:00 <span style={{color:'#56d364'}}>INF</span> Plugin registered: namespace=AWS node=formae-aws-plugin\@localhost rateLimit=2 resources=239 \[pid=<span style={{color:'#58a6ff'}}>\<8E428C64.0.1009></span>] \[name=<span style={{color:'#3fb950'}}>'PluginCoordinator'</span>] \[behavior=<span style={{color:'#3fb950'}}>plugin\_coordinator.PluginCoordinator</span>]<br />2026-07-20T16:52:28-07:00 <span style={{color:'#56d364'}}>INF</span> Plugin registered: namespace=K8S node=formae-k8s-plugin\@localhost rateLimit=10 resources=575 \[pid=<span style={{color:'#58a6ff'}}>\<8E428C64.0.1009></span>] \[name=<span style={{color:'#3fb950'}}>'PluginCoordinator'</span>] \[behavior=<span style={{color:'#3fb950'}}>plugin\_coordinator.PluginCoordinator</span>]</div>
    </div>

    Leave it running in this terminal, and open a **second terminal** for the
    remaining steps.
  </Step>

  <Step title="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.

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    ls /opt/pel/formae/examples/
    ```
  </Step>

  <Step title="Deploy to your cloud">
    <Tabs>
      <Tab title="AWS">
        **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:

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        mkdir -p ~/projects && cd ~/projects
        cp -R /opt/pel/formae/examples/aws/ecs-hello-world ./
        cp /opt/pel/formae/examples/aws/PklProject* ./ecs-hello-world/
        cd ecs-hello-world
        ```

        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:

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae apply --mode reconcile --region eu-central-1 ecs_hello_world.pkl
        ```
      </Tab>

      <Tab title="Azure">
        **Prerequisites:** Azure CLI signed in (`az login`) and an SSH public key.

        This example provisions an SSH-accessible Ubuntu 22.04 VM with its
        networking: resource group, virtual network, subnet, security group,
        public IP, and network interface.

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        export SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)

        mkdir -p ~/projects && cd ~/projects
        cp -R /opt/pel/formae/examples/azure/virtual-machine ./
        cp /opt/pel/formae/examples/azure/PklProject* ./virtual-machine/
        cd virtual-machine
        ```

        Set your `subscriptionId` in `vars.pkl`, then apply. formae shows the plan
        and asks you to confirm before making changes, then opens a live view:

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae apply --mode reconcile main.pkl
        ```
      </Tab>

      <Tab title="GCP">
        **Prerequisites:** GCP credentials exported as `GCP_CREDENTIALS_FILE`
        (path to a service account key) or `GCP_CREDENTIALS_JSON` (the key
        itself).

        This example provisions a global external HTTP(S) load balancer.

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        export GCP_CREDENTIALS_FILE=~/.config/gcloud/my-service-account.json

        mkdir -p ~/projects && cd ~/projects
        cp -R /opt/pel/formae/examples/gcp/gcp-loadbalancer ./
        cp /opt/pel/formae/examples/gcp/PklProject* ./gcp-loadbalancer/
        cd gcp-loadbalancer
        ```

        Open `gcp_loadbalancer.pkl` and set `Project` near the top of the file to
        your GCP project ID:

        ```kotlin theme={"languages":{"custom":["/languages/pkl.json"]}}
        local Project = "your-project-id"
        ```

        Apply the change. formae shows the plan and asks you to confirm before
        making changes, then opens a live view:

        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae apply --mode reconcile gcp_loadbalancer.pkl
        ```
      </Tab>
    </Tabs>

    `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:

    <div className="fa-term">
      <div className="fa-term-body">  <span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>formae</span> <span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>apply · reconcile</span>                                                                       ecs\_hello\_world.pkl<br /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{color:'rgb(232,232,232)'}}>+</span> 22 <span style={{color:'rgb(232,232,232)'}}>create</span><br /><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Targets</span><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Operation ▲   </span><span style={{color:'rgb(170,170,170)'}}>Label</span><br />  <span style={{color:'rgb(232,232,232)'}}>+ create      default-aws-target</span><br /><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Stacks</span><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Operation ▲   </span><span style={{color:'rgb(170,170,170)'}}>Label</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-hello-world</span><br /><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Resources</span><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Operation ▲   </span><span style={{color:'rgb(170,170,170)'}}>Label                                                       Type</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-vpc                                                     </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::VPC</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-igw                                                     </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::InternetGateway</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-igw-attachment                                          </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::VPCGatewayAttachment</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-subnet-1                                         </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::Subnet</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-subnet-2                                         </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::Subnet</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-rt                                               </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::RouteTable</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-route                                            </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::Route</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-subnet-1-assoc                                   </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::SubnetRouteTableAssociation</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-public-subnet-2-assoc                                   </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::SubnetRouteTableAssociation</span><br />  <span style={{color:'rgb(170,170,170)'}}>+ create      </span><span style={{color:'rgb(129,209,219)'}}>ecs-alb-sg                                                  </span><span style={{color:'rgb(170,170,170)'}}>AWS::EC2::SecurityGroup</span><br /><span style={{color:'rgb(153,153,153)'}}>      ↓ show 10 more (10 remaining)</span><br /><br /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>↑↓</span><span style={{color:'rgb(153,153,153)'}}>: select</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>space</span><span style={{color:'rgb(153,153,153)'}}>: expand</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>→←</span><span style={{color:'rgb(153,153,153)'}}>: column</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>s</span><span style={{color:'rgb(153,153,153)'}}>: sort</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>y</span><span style={{color:'rgb(153,153,153)'}}>: confirm</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>q</span><span style={{color:'rgb(153,153,153)'}}>: abort</span> This operation will create 1 stack(s), create<br />1 target(s) and create 20 resource(s).  Do you want to continue? (y/N)  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>?</span><span style={{color:'rgb(153,153,153)'}}>: help</span></div>
    </div>

    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:

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    formae status command
    ```

    When the run finishes, every resource is applied:

    <div className="fa-term">
      <div className="fa-term-body">  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>formae</span> <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>status command</span>                                                                                     <span style={{color:'rgb(129,209,219)'}}>↻ live</span><br /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} /><span style={{color:'rgb(85,85,102)',fontWeight:'600'}} /><span style={{color:'rgb(170,170,170)',fontWeight:'600'}}>     ID                          Command   Mode        Progress                         ✓    ✗    ◐    ○    Time</span><br /><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)'}}>✓    </span><span style={{color:'rgb(129,209,219)'}}>3Gmw76N43M4ysS54phFL3naR57p </span><span style={{color:'rgb(232,232,232)'}}>apply     reconcile   completed 22/22                  22   0    0    0    04:19</span><br /><span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} /><br /><span style={{color:'rgb(85,85,102)'}}>  </span><span style={{color:'rgb(85,85,102)',fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Targets</span><br />  <span style={{color:'rgb(170,170,170)'}}>      </span><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Label ▲                                                                                   </span><span style={{color:'rgb(170,170,170)'}}>Operation   Time</span><br />   <span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(170,170,170)'}}>default-aws-target</span>                                                                        <span style={{color:'rgb(170,170,170)'}}>create</span>      <span style={{color:'rgb(170,170,170)'}}>00:00</span><br /><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Stacks</span><br />  <span style={{color:'rgb(170,170,170)'}}>      </span><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Label ▲                                                                                   </span><span style={{color:'rgb(170,170,170)'}}>Operation   Time</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-world</span>                                                                           <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:00</span><br /><br />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Resources</span><br />  <span style={{color:'rgb(170,170,170)'}}>      </span><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Label ▲                                               </span><span style={{color:'rgb(170,170,170)'}}>Type                                Operation   Time</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-alb</span>                                               <span style={{color:'rgb(153,153,153)'}}>AWS::ElasticLoadBalancingV2::Load…</span>  <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>02:45</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-alb-sg</span>                                            <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroup</span>             <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-alb-sg-ingress</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroupIngress</span>      <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-cluster2</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::Cluster</span>                   <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:23</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-task-def</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::TaskDefinition</span>            <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:24</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-world-cluster</span>                               <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::Cluster</span>                   <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-igw</span>                                               <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::InternetGateway</span>           <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:23</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-igw-attachment</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::VPCGatewayAttachment</span>      <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-listener</span>                                          <span style={{color:'rgb(153,153,153)'}}>AWS::ElasticLoadBalancingV2::List…</span>  <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:23</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-route</span>                                      <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Route</span>                     <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:02</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-rt</span>                                         <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::RouteTable</span>                <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-1</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Subnet</span>                    <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-1-assoc</span>                             <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SubnetRouteTableAssocia…</span>  <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:24</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-2</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Subnet</span>                    <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-2-assoc</span>                             <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SubnetRouteTableAssocia…</span>  <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:23</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-exec-role</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::IAM::Role</span>                      <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-sg</span>                                           <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroup</span>             <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-sg-ingress</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroupIngress</span>      <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-tg</span>                                                <span style={{color:'rgb(153,153,153)'}}>AWS::ElasticLoadBalancingV2::Targ…</span>  <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-vpc</span>                                               <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::VPC</span>                       <span style={{color:'rgb(153,153,153)'}}>create</span>      <span style={{color:'rgb(153,153,153)'}}>00:23</span><br /><br /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>→←</span><span style={{color:'rgb(153,153,153)'}}>: column</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>s</span><span style={{color:'rgb(153,153,153)'}}>: toggle sort</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>space</span><span style={{color:'rgb(153,153,153)'}}>: expand</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>d</span><span style={{color:'rgb(153,153,153)'}}>: details</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>q</span><span style={{color:'rgb(153,153,153)'}}>: quit</span>                                           <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>?</span><span style={{color:'rgb(153,153,153)'}}>: help</span></div>
    </div>

    <Note>
      `--mode` is required on `apply`. Learn the difference between reconcile and
      patch in [Apply modes](/documentation/concepts/apply-modes).
    </Note>
  </Step>

  <Step title="Verify your deployment">
    Confirm formae created the resources. Filter the inventory by the stack you
    just deployed:

    ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
    formae inventory resources --query "stack:ecs-hello-world"
    ```

    For the AWS example, that lists the stack it just deployed:

    <div className="fa-term">
      <div className="fa-term-body">  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>formae</span> <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>inventory</span><br /><span style={{color:'rgb(85,85,102)'}}>──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} /> <span style={{color:'rgb(129,209,219)'}}>╭─────────────╮</span><br /> <span style={{color:'rgb(129,209,219)'}}>│</span><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}> 1 Resources </span><span style={{color:'rgb(129,209,219)'}}>│</span>  <span style={{color:'rgb(170,170,170)'}}> 2 Targets </span>  <span style={{color:'rgb(170,170,170)'}}> 3 Stacks </span>  <span style={{color:'rgb(170,170,170)'}}> 4 Policies </span><br /><span style={{color:'rgb(129,209,219)'}}>─╯             ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(129,209,219)'}} /><br /><span style={{color:'rgb(129,209,219)'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Label ▲                           </span><span style={{color:'rgb(170,170,170)',fontWeight:'600'}}>Stack                  Type                                   NativeID                                      </span><br /><span style={{color:'rgb(85,85,102)'}}>──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(232,232,232)'}}>ecs-alb                           ecs-hello-world        AWS::ElasticLoadBalancingV2::LoadBalan…arn:aws:elasticloadbalancing:eu-central-1:897…</span><br /><span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(232,232,232)'}}>ecs-alb-sg                        ecs-hello-world        AWS::EC2::SecurityGroup                sg-0ce41bacf1d67b147                          </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-alb-sg-ingress                ecs-hello-world        AWS::EC2::SecurityGroupIngress         sgr-0fbb692f2f8d5636d                         </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-hello-cluster2                ecs-hello-world        AWS::ECS::Cluster                      ecs-hello-world-cluster2                      </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-hello-task-def                ecs-hello-world        AWS::ECS::TaskDefinition               arn:aws:ecs:eu-central-1:897722706215:task-de…</span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-hello-world-cluster           ecs-hello-world        AWS::ECS::Cluster                      ecs-hello-world-cluster                       </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-igw                           ecs-hello-world        AWS::EC2::InternetGateway              igw-047bab59003537498                         </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-igw-attachment                ecs-hello-world        AWS::EC2::VPCGatewayAttachment         IGW|vpc-02e1b0b73a5730d65                     </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-listener                      ecs-hello-world        AWS::ElasticLoadBalancingV2::Listener  arn:aws:elasticloadbalancing:eu-central-1:897…</span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-route                  ecs-hello-world        AWS::EC2::Route                        rtb-0bab9fbbf4c0010e5|0.0.0.0/0|GatewayId=igw…</span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-rt                     ecs-hello-world        AWS::EC2::RouteTable                   rtb-0bab9fbbf4c0010e5                         </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-subnet-1               ecs-hello-world        AWS::EC2::Subnet                       subnet-0b38a309934e06276                      </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-subnet-1-assoc         ecs-hello-world        AWS::EC2::SubnetRouteTableAssociation  rtbassoc-013308e76c96ade7c                    </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-subnet-2               ecs-hello-world        AWS::EC2::Subnet                       subnet-08999cc2f4fb40e87                      </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-public-subnet-2-assoc         ecs-hello-world        AWS::EC2::SubnetRouteTableAssociation  rtbassoc-0d4512b6e49506eba                    </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-task-exec-role                ecs-hello-world        AWS::IAM::Role                         6cfPoszejP6KRJElRijPynvA8-SMXNaMlk1MfC        </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-task-sg                       ecs-hello-world        AWS::EC2::SecurityGroup                sg-075d33812aa776116                          </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-task-sg-ingress               ecs-hello-world        AWS::EC2::SecurityGroupIngress         sgr-068746b2de1bad0c0                         </span><br /><span style={{color:'rgb(232,232,232)'}}>ecs-tg                            ecs-hello-world        AWS::ElasticLoadBalancingV2::TargetGro…arn:aws:elasticloadbalancing:eu-central-1:897…</span><br />Showing 20 of 20 resources (filtered)<br /><span style={{color:'rgb(85,85,102)'}}>──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{color:'rgb(129,209,219)'}}>/</span> <span style={{color:'rgb(170,170,170)'}}>stack:ecs-hello-world</span>                                                                                                              <span style={{color:'rgb(153,153,153)'}}>/: edit query</span><br /><span style={{color:'rgb(85,85,102)'}}>──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>↑↓/j/k</span><span style={{color:'rgb(153,153,153)'}}>: navigate</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>enter</span><span style={{color:'rgb(153,153,153)'}}>: detail</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>/</span><span style={{color:'rgb(153,153,153)'}}>: search</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>s</span><span style={{color:'rgb(153,153,153)'}}>: sort</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>r</span><span style={{color:'rgb(153,153,153)'}}>: refresh</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>1-4</span><span style={{color:'rgb(153,153,153)'}}>: tab</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>q</span><span style={{color:'rgb(153,153,153)'}}>: quit</span>                                                         <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>?</span><span style={{color:'rgb(153,153,153)'}}>: help</span></div>
    </div>

    Each example uses its own stack name. You can also check your cloud's web
    console to see the created resources.
  </Step>

  <Step title="Clean up">
    To avoid ongoing charges, destroy what you created:

    <Tabs>
      <Tab title="AWS">
        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae destroy ecs_hello_world.pkl
        ```
      </Tab>

      <Tab title="Azure">
        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae destroy main.pkl
        ```
      </Tab>

      <Tab title="GCP">
        ```bash theme={"languages":{"custom":["/languages/pkl.json"]}}
        formae destroy gcp_loadbalancer.pkl
        ```
      </Tab>
    </Tabs>

    `destroy` shows a plan and asks you to confirm too; press `y` to proceed. The
    completed teardown looks like this:

    <div className="fa-term">
      <div className="fa-term-body">  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>formae</span> <span style={{fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>status command</span>                                                                                     <span style={{color:'rgb(129,209,219)'}}>↻ live</span><br /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} /><span style={{color:'rgb(85,85,102)',fontWeight:'600'}} /><span style={{color:'rgb(170,170,170)',fontWeight:'600'}}>     ID                          Command   Mode        Progress                         ✓    ✗    ◐    ○    Time</span><br /><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)'}}>✓    </span><span style={{color:'rgb(129,209,219)'}}>3Gmwiy52PNdn5rJiu3nWhLDPxJf </span><span style={{color:'rgb(232,232,232)'}}>destroy   -           completed 20/20                  20   0    0    0    02:35</span><br /><span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} /><br /><span style={{color:'rgb(85,85,102)'}}>  </span><span style={{color:'rgb(85,85,102)',fontWeight:'600'}} /><span style={{color:'rgb(255,133,51)',fontWeight:'600'}}>▌ Resources</span><br />  <span style={{color:'rgb(170,170,170)'}}>      </span><span style={{color:'rgb(170,170,170)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}} /><span style={{color:'rgb(232,232,232)',fontWeight:'600'}}>Label ▲                                               </span><span style={{color:'rgb(170,170,170)'}}>Type                                Operation   Time</span><br />   <span style={{color:'rgb(232,232,232)'}} /><span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(170,170,170)'}}>ecs-alb</span>                                               <span style={{color:'rgb(170,170,170)'}}>AWS::ElasticLoadBalancingV2::Load…</span>  <span style={{color:'rgb(170,170,170)'}}>delete</span>      <span style={{color:'rgb(170,170,170)'}}>01:02</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-alb-sg</span>                                            <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroup</span>             <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-alb-sg-ingress</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroupIngress</span>      <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-cluster2</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::Cluster</span>                   <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-task-def</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::TaskDefinition</span>            <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-hello-world-cluster</span>                               <span style={{color:'rgb(153,153,153)'}}>AWS::ECS::Cluster</span>                   <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-igw</span>                                               <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::InternetGateway</span>           <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-igw-attachment</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::VPCGatewayAttachment</span>      <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>01:02</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-listener</span>                                          <span style={{color:'rgb(153,153,153)'}}>AWS::ElasticLoadBalancingV2::List…</span>  <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-route</span>                                      <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Route</span>                     <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:01</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-rt</span>                                         <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::RouteTable</span>                <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-1</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Subnet</span>                    <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-1-assoc</span>                             <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SubnetRouteTableAssocia…</span>  <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-2</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::Subnet</span>                    <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-public-subnet-2-assoc</span>                             <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SubnetRouteTableAssocia…</span>  <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-exec-role</span>                                    <span style={{color:'rgb(153,153,153)'}}>AWS::IAM::Role</span>                      <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-sg</span>                                           <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroup</span>             <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-task-sg-ingress</span>                                   <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::SecurityGroupIngress</span>      <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-tg</span>                                                <span style={{color:'rgb(153,153,153)'}}>AWS::ElasticLoadBalancingV2::Targ…</span>  <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:21</span><br />   <span style={{color:'rgb(232,232,232)'}}>✓</span>    <span style={{color:'rgb(153,153,153)'}}>ecs-vpc</span>                                               <span style={{color:'rgb(153,153,153)'}}>AWS::EC2::VPC</span>                       <span style={{color:'rgb(153,153,153)'}}>delete</span>      <span style={{color:'rgb(153,153,153)'}}>00:22</span><br /><br /><span style={{color:'rgb(85,85,102)'}}>────────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span><br /><span style={{color:'rgb(85,85,102)'}} />  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>→←</span><span style={{color:'rgb(153,153,153)'}}>: column</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>s</span><span style={{color:'rgb(153,153,153)'}}>: toggle sort</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>space</span><span style={{color:'rgb(153,153,153)'}}>: expand</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>d</span><span style={{color:'rgb(153,153,153)'}}>: details</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>esc</span><span style={{color:'rgb(153,153,153)'}}>: back</span>  <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>q</span><span style={{color:'rgb(153,153,153)'}}>: quit</span>                                <span style={{fontWeight:'600'}} /><span style={{color:'rgb(129,209,219)',fontWeight:'600'}}>?</span><span style={{color:'rgb(153,153,153)'}}>: help</span></div>
    </div>

    <Note>
      `destroy` takes no `--mode`. It removes every resource in the forma, so there
      is nothing for reconcile or patch to differ on.
    </Note>
  </Step>
</Steps>

## What's next?

<CardGroup cols={2}>
  <Card title="Write your first forma" href="/documentation/get-started/write-your-first-forma">
    Build a forma from scratch and learn how properties and resource references work.
  </Card>

  <Card title="Quick start with an AI assistant" href="/documentation/get-started/quickstart-ai-assistant">
    Deploy by describing what you want to Claude Code, Codex, or another MCP client.
  </Card>

  <Card title="Core concepts" href="/documentation/concepts/label">
    Understand labels, resources, stacks, targets, and formas.
  </Card>

  <Card title="Configure Pkl in your IDE" href="/documentation/reference/pkl-ide-support">
    Set up your editor for Pkl authoring.
  </Card>

  <Card title="Architecture" href="/documentation/concepts/architecture">
    See how the agent, CLI, and plugins fit together.
  </Card>
</CardGroup>
