Skip to content

Commands

Verbs over nouns. Type what you want to happen; awsutopia talks to AWS.

CommandWhat you get
initA project file so resources get tagged
loginSSO session + identity check
create bucketPrivate encrypted versioned S3 bucket
create secretSSM SecureString under /utopia/…
create fnLambda + Function URL from a source folder
create cronEventBridge schedule → utopia function
create sitePrivate S3 + CloudFront static site
create domainACM + Route53 → attach a custom domain
create serverEC2 + SSM (no SSH keys, closed SG)
create dbPrivate Postgres RDS + connection secret
create kvDynamoDB on-demand (pk/sk)
create queueStandard SQS queue
listUtopia-tagged inventory (+ best-effort CE costs)
costsInventory costs + static create hints
connect / sshSSM Session Manager shell
db connectTunnel to private RDS via a server
bucket shareTemporary HTTPS URL for an object
secret set / getUpdate or read a secret
logsCloudWatch Logs tail (short fn names resolve)
destroy bucketEmpty + delete a tagged bucket
destroy secretDelete a tagged SSM parameter
destroy fnDelete a tagged Lambda
destroy cronDelete a tagged EventBridge rule
destroy siteTear down CloudFront + origin bucket
destroy serverTerminate a tagged EC2 instance
destroy dbDelete RDS (--keep-data snapshot)
destroy kvDelete DynamoDB table
destroy queueDelete SQS queue (+ messages)

deploy fn / deploy site are aliases for create with --src.

Flow that sticks

bash
awsutopia login --profile my-sso
awsutopia init my-app --env dev
awsutopia create db postgres app --size small
awsutopia create kv sessions
awsutopia create queue jobs
awsutopia create server web --image ubuntu-24 --size small
awsutopia db connect app --via web --dry-run
awsutopia list
awsutopia costs
awsutopia destroy kv sessions --yes
awsutopia destroy db app --keep-data --yes

Next up

Hosted dashboard is on the roadmap after costs ships.

Working name — your AWS account, your bill.