Cloud Parts

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.

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 terraform does 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 →

How it fits with other technologies

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 --verbose

Plans for LocalStack for AWS#

List prices per developer licence, checked on 6 October 2026. Every plan needs an account and an auth token.

HobbyBaseUltimateEnterprise
PriceFree$39/month billed annually, $45 monthly$89/month billed annually; monthly via AWS MarketplaceCustom
Commercial useNoYesYesYes
Emulated AWS services30+55+110+All
Runs in CIYesYesYesYes, at scale
Local state persistenceNoYesYesYes
IAM policy enforcementNoBasicAdvanced testingYes
Telemetry sharingEnforcedOn by defaultOn by defaultOptional
AlsoOne personal sandbox300 MB Cloud Pod storage per workspace3 GB Cloud Pod storage, AWS ReplicatorKubernetes 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 releases

Hobby 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

frozen

Release 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

MIT

An 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.0

The Python AWS mocking library run as a standalone server on port 5000, usable from any SDK.

AWS’s own single-service tools

free

DynamoDB 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

  1. 2016

    First commit at Atlassian in August, with eight AWS APIs

  2. 2019

    LocalStack Pro, the first paid edition, in July

  3. 2022

    Version 1.0 in July, with over 80 services

  4. 2024

    Snowflake emulator preview in May; 4.0 and a $25M Series A in November

  5. 2026

    One account-gated image from 23 March; the open-source repository is archived

  6. 2026

    lstk CLI and the WonderTwin AI acquisition in September

Sources23 · facts checked 6 October 2026

Improve this page on GitHub