Getting started
Hate clicking through the AWS console for the same three things? This is the short path: install the CLI, log in, create something real, use it, then clean up.
Working name. The binary is
awsutopiauntil a trademark-safe product name lands. Tag keys stayutopia:project/utopia:env.
1. Install
git clone https://github.com/rafaelcg/awsdream.git
cd awsdream
bun install
bun link # optional: puts `awsutopia` on your PATH
bun run cli --helpNeeds Bun ≥ 1.3 and an AWS profile (SSO is the happy path).
2. Log in
awsutopia login --profile my-ssoThat wraps aws sso login, then checks who you are with STS. Prefer SSO over long-lived access keys. More detail: Auth & login.
3. Init a project
awsutopia init my-app --env devWrites .awsutopia/project.json. Every resource you create gets tagged with that project + env so list / destroy / share know what belongs to you.
4. Create something
awsutopia create bucket my-app-dev-assets
awsutopia create secret api-key --value 'replace-me'
awsutopia create fn hello --src ./fn # optional: Lambda + Function URL
awsutopia create site www --src ./dist # optional: S3 + CloudFront HTTPSYou'll get a private, encrypted, versioned S3 bucket, an SSM SecureString at /utopia/my-app/dev/api-key, and (if you ran them) a Lambda Function URL and/or a CloudFront site URL. No YAML. No console.
5. List what you own
awsutopia listShows utopia-tagged buckets, secrets, functions, crons, and sites for the current project. Cost shows COST_UNAVAILABLE until live cost enrichment exists — we won't invent dollar amounts.
6. Use it
# upload a file with the AWS CLI (or console), then:
awsutopia bucket share my-app-dev-assets path/file.txt --expires 1h
# you'll get a temporary HTTPS URL
awsutopia secret get api-key # value shown as ***
awsutopia secret get api-key --reveal # plaintext when you really need it
awsutopia logs hello --since 1h # short name → /aws/lambda/utopia-…
# or a full group: awsutopia logs /aws/lambda/my-fn --since 1h7. Destroy when you're done
awsutopia destroy site www --yes
awsutopia destroy fn hello --yes
awsutopia destroy secret api-key --yes
awsutopia destroy bucket my-app-dev-assets --yesDestroy only touches utopia-tagged resources that match your current project (unless you pass --force). Buckets get emptied of all versions first. Details: Destroy policy.
Nervous? Dry-run first
awsutopia create bucket example --dry-run --json
awsutopia destroy bucket example --dry-run --json--dry-run plans without mutating AWS (destroy may still read tags/versions to show the plan).