AWS on localhost:4566
A free, MIT-licensed AWS emulator and drop-in replacement for LocalStack. Give your coding agents a real AWS to build and test against: no auth token, no account, no bill.
# Install floci-cli, then start floci curl -fsSL https://floci.io/install.sh | sh floci start eval $(floci env)
24 ms startup · ~13 MiB idle · MIT licensed · no auth token
Homebrew, Windows and Docker optionsEvery way to run it.
One CLI installs and runs all four emulators: use Homebrew, the install script or PowerShell. Or skip the CLI and run the Docker image.
1 · Install floci CLI
brew install floci-io/floci/floci2 · Start the emulator
floci start3 · Export env vars
eval $(floci env) # exports AWS_ENDPOINT_URL, AWS_ACCESS_KEY_ID, # AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION
4 · Upload a file
# Create a bucket aws s3 mb s3://my-bucket # Write a file and upload it echo "Why pay for S3 when floci is free?" > hello-floci.txt aws s3 cp hello-floci.txt \ s3://my-bucket/hello-floci.txt # Download it back and read it aws s3 cp s3://my-bucket/hello-floci.txt \ hello-back.txt cat hello-back.txt
Teach your coding agent
# Asks which agents to install it for npx skills add floci-io/floci-cli
The Floci skill teaches Claude Code, Codex, Cursor, Kiro and other coding agents to run the emulators with floci-cli.
Other useful commands
# Check status floci status # View logs floci logs --follow # Stop the emulator floci stop # Run health diagnostics floci doctor
Start with persistence
floci start --persist ./data # state survives container restarts
Save & restore state
floci snapshot save my-snapshot floci snapshot load my-snapshot
Recipes that span several services.
End-to-end recipes for complex services. No cloud account needed.
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
# Create EKS cluster (Floci spins up a real k3s node)
aws eks create-cluster \
--name dev-cluster \
--role-arn arn:aws:iam::000000000000:role/eks-role \
--resources-vpc-config subnetIds=subnet-default-us-east-1-a
# Pull kubeconfig and use kubectl
aws eks wait cluster-active --name dev-cluster
# kubectl needs a real IAM key: floci rejects test/test for cluster-admin
aws iam create-user --user-name eks-admin
read AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY <<< "$(aws iam create-access-key \
--user-name eks-admin --query 'AccessKey.[AccessKeyId,SecretAccessKey]' --output text)"
export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
aws eks update-kubeconfig --name dev-cluster
kubectl run nginx --image=nginx:alpine --port=80
kubectl get pods,svc
126 AWS services. All of them free.
Every service is fully unlocked. Related APIs share a chip, such as DynamoDB + Streams.
Storage
8
Databases
9
Compute
9
Containers
3
Networking & APIs
10
Messaging & Events
10
Identity
8
Security & Secrets
12
Observability
7
Analytics
12
AI & ML
8
Developer Tools
18
Cost & Billing
6
Runs a Docker container Only in Floci among free emulators
Same calls, same port, no lock-in.
Point the AWS SDK at port 4566 and keep your code. Everything below is in the free, MIT-licensed build.
Truly MIT licensed
Fork it, embed it, extend it. No "community edition" sunset. No "enterprise" feature flags. Every service available to every developer, always.
Drop-in compatible
Same port 4566, same wire protocols, same AWS SDK calls. Point the endpoint at Floci and your application code stays as it is.
Optional TLS / HTTPS
Enable HTTPS with one env var. Floci auto-generates a self-signed certificate at startup so you can test TLS-sensitive code paths locally.
Per-account isolation
Full multi-tenancy: each AWS account ID gets its own isolated storage. Run dev, staging, and test on a single Floci instance.
Real engines, real IAM, on your laptop.
Floci doesn't mock responses. For complex data services it runs the real engine in Docker and speaks its wire protocol, and Lambda, ElastiCache, RDS, ECS, EC2, MSK, EKS, OpenSearch, ECR and CodeBuild all authenticate with real IAM and SigV4.
Lambda Runtimes
Execution in isolated Docker containers using real AWS runtimes. Node.js, Python, Java, Go, and more with identical environment variables.
RDS Engines
Real PostgreSQL, MySQL, or MariaDB instances. Full lifecycle, snapshot/restore, and JDBC traffic with IAM database authentication.
ElastiCache (Redis)
Real Redis container. Floci acts as a SigV4 proxy for IAM authentication against your local Redis cluster.
Amazon ECS
Orchestrates real Docker containers for task definitions, providing a local control plane for task lifecycle management.
OpenSearch
Real OpenSearch clusters. Floci manages the underlying engine nodes, fully functional with the complete OpenSearch API suite.
MSK (Kafka)
Real Apache Kafka via Redpanda. Perfect for testing event-driven architectures with the same performance and semantics as Amazon MSK.
ECR Registry
Real OCI-compatible registry (registry:2). Push and pull with the stock Docker client, including image-backed Lambdas.
Athena
Query execution in a DuckDB sidecar container. Same execution model as AWS Athena, no mocking.
EC2 Instances
RunInstances launches real Docker containers. SSH key injection, UserData execution, and IMDS (IMDSv1 + IMDSv2) with IAM credential serving.
Switching from LocalStack?
Same port, same credentials, same SDK endpoint override and CLI flags. Swap the image and keep going: 138× faster startup and 91% less memory.
# Before image: localstack/localstack # After image: floci/floci:latest # After, if init scripts need the AWS CLI or boto3 image: floci/floci:latest-compat
LocalStack settings, translated automatically
Init scripts under /etc/localstack/init/ run unchanged, and /_localstack/health is still served. Set LOCALSTACK_PARITY=false to opt out of the translation.
| LocalStack | Floci |
|---|---|
LOCALSTACK_HOST | FLOCI_HOSTNAME |
PERSISTENCE=1 | FLOCI_STORAGE_MODE=persistent |
LAMBDA_DOCKER_NETWORK | FLOCI_SERVICES_LAMBDA_DOCKER_NETWORK |
LAMBDA_REMOVE_CONTAINERS=1 | FLOCI_SERVICES_LAMBDA_EPHEMERAL=true |
DEBUG=1 | QUARKUS_LOG_LEVEL=DEBUG |
AWS, without the bill.
Like cirrocumulus floccus, the cloud formation that gave Floci its name. Small, lightweight, and always there when you need it.
- license
- MIT
- real credentials
- none
- cloud account
- none
- cost
- $0