Skip to content

plan

Terminal window
alchemy plan [options]

plan previews what would change without applying anything — it is equivalent to alchemy deploy --dry-run.

Plan: 1 to create, 1 to update

+ Queue (AWS.SQS.Queue)
~ Worker (Cloudflare.Worker)

The plan uses + for creates, ~ for updates, - for deletes, and for no-ops. No approval prompt is shown and no changes are made.

Pass --detailed to show declared resource inputs as YAML:

Terminal window
alchemy plan --detailed
Plan: 1 to create, 1 to update

+ EventsQueue
  properties:
    fifo: true
    visibilityTimeout: 30

~ OrderHandler
  before:
    memorySize: 512
    env:
[s6]MODE: development
  after:
    memorySize: 1024
    env:
[s6]MODE: production

Creates show their desired properties. Updates and replacements show the previously persisted declared properties followed by the desired properties; this is a declaration diff, not a live-cloud drift read. Outputs appear as (known after apply), computed values as (computed), and secrets remain redacted. Deletes stay compact.

Option Description
--config, -c <file> Stack file to plan (defaults to alchemy.run.ts)
--stage <name> Stage to plan against (defaults to $ALCHEMY_STAGE or live_$USER)
--profile <name> Auth profile to use (defaults to $ALCHEMY_PROFILE or default)
--env-file <path> Load environment variables from a file
--adopt Plan adoption of pre-existing cloud resources that conflict with this stack instead of failing (see Adopting Resources)
--detailed Show declared resource properties as YAML