# AWS Emulator

> A free local stand-in for the AWS APIs, for tests, CI and AI coding agents

- Category: Agents & Automation / Code Sandboxes & Isolation
- Language: Rust
- Licence: CC0-1.0
- Repository: https://github.com/aws/aws-emulator
- Website: https://docs.aws.amazon.com/emulator/latest/userguide/what-is-service.html
- Canonical page: https://ai-tldr.dev/tools/aws-emulator/
- Updated: 2026-11-11

## In short

AWS Emulator is a local emulator of the AWS APIs, published by Amazon Web Services. It sits in the Code Sandboxes & Isolation category of the Agents & Automation tools and is open-source, written in Rust and licensed CC0-1.0. To get started: install the package (Debian, amd64).

## Overview

AWS Emulator is a local emulator of the AWS APIs, published by Amazon Web Services. You run it on your own machine, a development server or a CI runner, set a few environment variables, and the AWS CLI and AWS SDKs send their requests to emulated resources instead of to AWS. Your code does not change, you do not need an AWS account, and there is no service fee. It has no graphical interface: it is a single endpoint that speaks the AWS APIs.

The emulator is written in Rust and serves HTTPS on 127.0.0.1:9297 by default. On each start it generates fresh access keys, a config file and a certificate under ~/.aws/emulator/<port>/, and it checks SigV4 signatures like AWS does, so only callers that use those keys get through. All resources live in memory and are deleted when the emulator stops, which gives every test run a clean state. Calls to operations it has not implemented return HTTP 501, so tests fail loudly instead of passing by accident.

The project is also an experiment in agent-built software. Amazon says three teams of AI agents build and maintain it from the AWS API models, with real AWS as the reference: test writers verify scenarios against AWS, issue finders replay those fidelity tests against the emulator and file failures, and fixers merge one fix per issue through an automated gate for build, review, security and fidelity. AWS says its engineers have not written or reviewed the code. Each release publishes per-service fidelity scores, and the tests themselves are public.

## What it does

- Works with the AWS CLI and AWS SDKs through environment variables, with no code changes
- One local HTTPS endpoint for every emulated service, with SigV4 checks and per-run keys
- In-memory state that is wiped on stop, plus several emulators side by side on different ports
- Native RPM and Debian packages for x86_64 and aarch64 Linux; Docker on macOS and Windows
- Embedded mode for Rust tests (aws-emulator-embedded), with separate state per instance
- An aws-emulator skill that lets AI coding agents install, start and connect the emulator
- Per-service fidelity scores with each release and a public fidelity test suite
- No service fee; CC0-1.0 source on GitHub (Apache-2.0 for vendor/)

## Getting started

On Linux, install the package, start the emulator in one terminal and point your shell at it from another. On macOS and Windows, follow the Docker guide in the user guide instead.

1. Install the package (Debian, amd64)

   RPM packages for dnf and arm64 builds are also published; the user guide lists each command.

```bash
curl -fsSLo aws-emulator.deb https://downloads.aws.com/aws-emulator/packages/aws-emulator/LTS/latest/aws-emulator_amd64.deb
sudo apt-get install -y ./aws-emulator.deb
aws-emulator -v
```

2. Start the emulator

   It keeps running in this terminal and serves HTTPS on 127.0.0.1:9297. Use -p to pick another port.

```bash
aws-emulator
```

3. Point the AWS CLI and SDKs at it

   In a second terminal, set the endpoint, the emulator's credential, config and certificate files, and unset any real credentials.

```bash
export AWS_ENDPOINT_URL=https://127.0.0.1:9297
export AWS_SHARED_CREDENTIALS_FILE=~/.aws/emulator/9297/emulator_credentials
export AWS_CONFIG_FILE=~/.aws/emulator/9297/config
export AWS_CA_BUNDLE=~/.aws/emulator/9297/ca.pem
export AWS_EC2_METADATA_DISABLED=true
export AWS_DISABLE_HOST_PREFIX_INJECTION=true
export AWS_REGION=us-east-1
export AWS_DEFAULT_REGION=us-east-1
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_PROFILE
```

4. Check you are talking to the emulator

   The emulator uses the single account 000000000000. If you see your own account ID, your requests are going to AWS.

```bash
aws sts get-caller-identity
aws s3api create-bucket --bucket amzn-s3-demo-bucket
aws s3api list-buckets --query 'Buckets[].Name'
```

5. Or let a coding agent set it up

   With AWS CLI 2.35.0 or later, add the aws-emulator skill so an AI coding agent can install, start and connect the emulator itself.

```bash
aws agent-toolkit add-skill --skill-name aws-emulator --region us-east-1
```

## When to use it

- Run integration tests against S3, DynamoDB, SQS and other services on a laptop without an AWS account
- Give CI pipelines AWS-shaped tests with no credentials and no cloud resources to clean up
- Let an AI coding agent build and try AWS code without handing it real credentials
- Check validation errors and API behaviour before deploying, then restart for a clean state

## Version history

- 2026-11-11: AWS launched AWS Emulator, a free local emulator of the AWS APIs for Linux, Docker and Rust tests, and published its CC0 source and fidelity tests on GitHub.
