
LocalStack
The best-known AWS emulator: one Docker container that answers more than 100 AWS APIs on localhost:4566, now free only for non-commercial use.
- What it is
- Local cloud emulators
- Type
- Commercial product
- Made by
- LocalStack
- License
- Proprietary since the March 2026 single image (an account and auth token are needed for current releases); the archived Community edition source, up to v4.14.0, stays Apache 2.0
- Facts checked
- 6 October 2026
What it is
LocalStack runs as one Docker container on a laptop or CI runner. A gateway on port 4566 accepts AWS API calls from the normal SDKs, the aws CLI, Terraform, CDK or SAM, works out which service each request is for, and answers from emulated services that keep their state in memory. State is gone when the container stops unless persistence is switched on, and IAM policies are only evaluated if you start it with ENFORCE_IAM=1. Lambda functions run in separate containers that the emulator starts next to itself. The lstk CLI (September 2026) starts the container, logs in, and wraps Terraform and the AWS CLI so they point at the local endpoint; a web app shows the resources inside a running instance.
How it is sold changed in 2026. LocalStack started at Atlassian in 2016 as an Apache 2.0 project, and for years shipped a free Community image beside a paid Pro image. Since 23 March 2026 there is one image, and current releases need a LocalStack account and an auth token, including in CI; the open-source repository is archived and read-only. The free Hobby plan is for non-commercial use only and covers about 30 services. Commercial use needs a per-developer licence: Base at $39 a month billed annually ($45 monthly) or Ultimate at $89 billed annually, plus custom Enterprise deals, with CI use unrestricted on every plan within a fair-use policy (prices checked 6 October 2026). The same company sells a Snowflake emulator, has an Azure emulator in early access, and in September 2026 bought WonderTwin AI, which emulates SaaS APIs such as GitHub and Stripe.
Why teams pick it
- Wide coverage: more than 110 AWS services on the Ultimate plan, from S3, SQS and DynamoDB to EKS, Glue and Athena
- Drop-in for existing tools: SDKs, CLI, Terraform, CDK, SAM and Pulumi only need the endpoint changed, and
lstk terraformdoes that for unmodified Terraform code - More than emulation on paid plans: IAM policy enforcement and policy streams, Cloud Pods snapshots of local state, chaos testing and a replicator that copies resources from a real AWS account
- Ten years of use, monthly releases and commercial support; CI runs are no longer metered by credits
Watch out for
- No longer free for companies: since March 2026 every current release needs an account and auth token, the Hobby plan bans commercial use, and teams pay per developer
- The open-source Community edition is frozen at v4.14.0 (February 2026); pinning an old tag avoids the token but gets no security fixes
- The free Hobby plan leaves out services such as RDS, ElastiCache, ECS and ECR, and enforces telemetry sharing (as do trials)
- Emulation, not AWS: IAM is off and state is ephemeral by default, and per-operation coverage varies by service, so read the coverage pages
- Needs Docker, and Lambda functions run as extra containers beside the emulator, which makes it heavy on small CI runners
Alternatives
What all local cloud emulators have in common →
FlociOpen sourceA young, MIT-licensed family of local emulators for AWS, Azure, Google Cloud and Oracle Cloud, built as a free drop-in for LocalStack and pitched at AI coding agents.How it fits with other technologies
What LocalStack uses
- LocalStackemulates the API ofAmazon S3
- LocalStackemulates the API ofAmazon DynamoDB
- LocalStackemulates the API ofAmazon SQS
- LocalStackruns functions in containers, likeAWS Lambda
- LocalStackemulates state machines ofAWS Step Functions
- LocalStackis a local deploy target forTerraform
- LocalStackruns in CI jobs onGitHub Actions
- LocalStackships as a container image forDocker
- LocalStackhas a separate emulator forSnowflake
What uses LocalStack
GitHub Actions: deploy the real Terraform code to LocalStack, then run integration tests · yaml
# .github/workflows/integration.yml
name: integration
on: [push]
jobs:
test:
runs-on: ubuntu-latest
env:
LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} # a CI auth token: required since March 2026
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- run: npm install -g @localstack/lstk
- name: Start LocalStack # pulls the image, checks the licence, waits until ready
run: lstk start
- name: Create the stack locally # same main.tf as production, endpoints pointed at :4566
run: |
lstk terraform init
lstk terraform apply -auto-approve
- name: Integration tests
env:
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: test
AWS_SECRET_ACCESS_KEY: test
AWS_DEFAULT_REGION: us-east-1
run: |
pip install -r requirements.txt
pytest tests/integration
- name: LocalStack logs
if: always()
run: lstk logs --verbosePlans for LocalStack for AWS#
List prices per developer licence, checked on 6 October 2026. Every plan needs an account and an auth token.
| Hobby | Base | Ultimate | Enterprise | |
|---|---|---|---|---|
| Price | Free | $39/month billed annually, $45 monthly | $89/month billed annually; monthly via AWS Marketplace | Custom |
| Commercial use | No | Yes | Yes | Yes |
| Emulated AWS services | 30+ | 55+ | 110+ | All |
| Runs in CI | Yes | Yes | Yes | Yes, at scale |
| Local state persistence | No | Yes | Yes | Yes |
| IAM policy enforcement | No | Basic | Advanced testing | Yes |
| Telemetry sharing | Enforced | On by default | On by default | Optional |
| Also | One personal sandbox | 300 MB Cloud Pod storage per workspace | 3 GB Cloud Pod storage, AWS Replicator | Kubernetes delivery, air-gapped images, GovCloud, SSO and SCIM |
- Students with GitHub Education and approved non-commercial open-source projects get free licences (Ultimate for open-source projects).
- LocalStack for Snowflake is priced separately: Base at $29 per licence per month billed annually ($35 monthly), or Enterprise.
If you used the Community image#
Pipelines that pulled localstack/localstack:latest without a token stopped working on 23 March 2026. The options:
Sign up for a plan
current releasesHobby for non-commercial work, a paid licence per developer otherwise. Set LOCALSTACK_AUTH_TOKEN (a CI auth token in pipelines).
Pin a last Community tag
frozenRelease tags from before the switch (LocalStack suggests 4.12) still run without authentication, locally and in CI, but get no service updates or security patches.
Floci
MITAn open-source emulator built as a drop-in replacement: same port 4566, LocalStack’s environment variables and init-script paths, no account.
moto in server mode
Apache 2.0The Python AWS mocking library run as a standalone server on port 5000, usable from any SDK.
AWS’s own single-service tools
freeDynamoDB Local for DynamoDB and sam local for Lambda and API routes. Narrow, but maintained by AWS.
See it in a real stack
No architecture uses LocalStack yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2016–2026
Building on AWS in the mid-2010s meant a slow loop: change the code, package it, upload it, deploy, test, repeat, with a bill and a network connection every time. In August 2016 Waldemar Hummer made the first commit of LocalStack at Atlassian, which holds the original copyright. It added eight core AWS APIs, including API Gateway, Lambda and DynamoDB, each on its own local port. The team later said the first goal was simple: to help friends and colleagues turn train commutes into productive time.
The project grew into a company. LocalStack Pro, the first paid edition, arrived in July 2019 and added more APIs and features on top of the free Community image. By May 2021 the project had 30,000 GitHub stars and 40 million Docker pulls. Version 1.0 in July 2022 covered more than 80 services across both editions, and November 2024 brought version 4.0 and a $25 million Series A.
In December 2025 Waldemar Hummer and Gerta Sheganaku announced the end of the two-edition model. From 23 March 2026 one image needed an account, the GitHub repository was archived, and the free tier became non-commercial. LocalStack has since moved to calendar versions, launched the lstk CLI and bought WonderTwin AI to emulate SaaS APIs.
Why it’s built this way
- Real AWS wire protocols on local ports
- Instead of a library that mocks calls inside one language, LocalStack is a server, so any SDK, the CLI and IaC tools work by changing the endpoint. Early releases used one port per service (4567 for API Gateway up to 4576 for SQS); today everything answers on port 4566.
- Open core: a free Community image and a paid Pro image
- The company funded itself by selling advanced APIs and team features from 2019 while the core stayed Apache 2.0 and drew a large community of users and contributors.
- Run Lambda functions in real containers
- Re-creating a language runtime is hard to get right, so functions run in containers that call back into the LocalStack container for runtime APIs, credentials, logs and other emulated services.
- One image behind an account, for everyone
- LocalStack said its users had split into engaged account holders and a large anonymous group that only pulled the image, and that keeping emulation accurate and secure needed a distribution model where it knows its users and can invest sustainably.
Timeline
- 2016
First commit at Atlassian in August, with eight AWS APIs
- 2019
LocalStack Pro, the first paid edition, in July
- 2022
Version 1.0 in July, with over 80 services
- 2024
Snowflake emulator preview in May; 4.0 and a $25M Series A in November
- 2026
One account-gated image from 23 March; the open-source repository is archived
- 2026
lstkCLI and the WonderTwin AI acquisition in September
- localstack/localstack on GitHub: initial commit by Waldemar Hummer (August 2016)
- localstack/localstack: LICENSE.txt (Apache 2.0, copyright 2016 Atlassian)
- localstack/localstack: README at v0.2.0 (one port per service, December 2016)
- LocalStack blog: 30k stars, 40M pulls, and a brief history (May 2021)
- LocalStack: About (milestones: Pro in 2019, Series A in 2024)
- LocalStack blog: Announcing LocalStack 1.0 general availability (July 2022)
- LocalStack blog: The road ahead for LocalStack (Waldemar Hummer and Gerta Sheganaku, December 2025)
- LocalStack blog: Introducing application emulators, WonderTwin AI (September 2026)
Sources23 · facts checked 6 October 2026
- LocalStack pricing (checked 6 October 2026)
- LocalStack docs: Plans and licensing (services per plan, Hobby non-commercial, student and OSS licences)
- LocalStack: Fair usage policy (per-developer licences, March 2026)
- LocalStack blog: Updates to pricing and packaging (February 2026, updated July 2026)
- LocalStack blog: LocalStack for AWS is moving to a single image (March 2026)
- LocalStack blog: The road ahead for LocalStack (FAQ: old tags, Community image, repository)
- localstack/localstack on GitHub (archived, read-only; last release v4.14.0)
- LocalStack blog: Switching to calendar versioning (March 2026)
- LocalStack blog: Introducing the LocalStack for Open Source program (March 2026)
- LocalStack blog: Meet lstk (September 2026)
- LocalStack docs: Installation (Docker required, auth token)
- LocalStack docs: Docker images and tags
- LocalStack docs: Accessing LocalStack via the endpoint URL (port 4566)
- LocalStack docs: Persistence (ephemeral by default)
- LocalStack docs: IAM policy enforcement (`ENFORCE_IAM`, off by default)
- LocalStack docs: Lambda (execution environments in containers)
- LocalStack docs: Terraform (`lstk terraform`)
- LocalStack docs: GitHub Actions (CI auth token, `lstk start`)
- LocalStack docs: LocalStack for Snowflake
- LocalStack: LocalStack for Azure (public preview waitlist)
- LocalStack docs: LocalStack for Azure changelog (0.1.0 services)
- Floci: Migrating from LocalStack
- Moto docs: Server mode