Introducing Emulators: Run Real Cloud Infrastructure Locally
Atmos now has first-class emulators — long-running, containerized stand-ins for AWS, GCP, Azure,
Kubernetes, and an OCI registry that you provision and manage as ordinary Atmos components. Bring one up
and run the full Atmos workflow — auth, secrets, vendoring, toolchain, and terraform apply — against
cloud APIs on your laptop, with no cloud account and no credentials.
What's New
An emulator is a new Atmos component kind. You declare it in a stack and drive it with the new
atmos emulator command:
atmos emulator up aws -s local # start a local AWS emulator
atmos terraform apply s3-bucket -s local # apply real Terraform against it — no AWS account
atmos emulator down aws -s local # stop it (state is kept by default)
Atmos wires the emulator into the rest of the system automatically:
- No credentials. Atmos binds a local identity to the emulator and points both in-process AWS calls and the Terraform provider at the emulator endpoint — so the same stacks that target real AWS run unmodified against the emulator.
- Multiple backends. Built-in drivers cover AWS/GCP/Azure (via Floci or LocalStack), Kubernetes (k3s), an OCI registry, and Vault/OpenBao.
- Persistent by default. State survives
down/up;atmos emulator resetwipes it, and--ephemeralopts out per run.
Why This Matters
Emulators give you the full Atmos workflow — the same auth, secrets, vendoring, toolchain, and
terraform apply you run in CI — on a laptop with nothing to log into. That means:
- Fast, hermetic iteration. Apply, destroy, and re-apply against a local cloud in seconds, without touching a real account or spending money.
- Onboarding without a cloud account. Contributors can run real tutorials and reproduce issues with zero access to your infrastructure.
- The same stacks everywhere. Because the emulator is bound through Atmos identity and provider generation, your component code doesn't change between local and real cloud — laptop and CI run the identical configuration.
Try It: the Advanced Quick Start
The advanced quick start now deploys a real event-driven AWS backend — a KMS key, an encrypted S3 bucket, a DynamoDB table, an SNS topic, an SQS queue, and an SSM Parameter Store config — entirely on your laptop, start to finish, with no AWS account and no credentials.
Persistence and Reset
Emulators persist their state by default. Atmos bind-mounts a per-instance host directory under the XDG
cache ($XDG_CACHE_HOME/atmos/emulator/<instance>) onto each emulator's data directory, so resources,
images, clusters, and secrets all survive a restart:
atmos emulator up registry -s local # start the registry
# ... push images ...
atmos emulator down registry -s local # stop it — state is kept
atmos emulator up registry -s local # back up — your images are still there
Use reset for a clean slate, or --ephemeral for a throwaway instance that never persists:
atmos emulator reset registry -s local --force
atmos emulator up registry -s local --ephemeral
How to Use It
atmos emulator up <component> -s <stack>to start an emulator, then run your normalatmos terraform …commands against it.atmos emulator reset <component> -s <stack>to wipe persisted state.--ephemeral(orephemeral: trueon the component) for a throwaway instance.
See the emulator component reference and the
atmos emulator command docs for details.
