Get Local Web Services running with a sample project in under five minutes. Choose your IaC tool below.
Clone a sample CDK project and run it locally in five steps.
npm install -g aws-cdk)git clone https://github.com/local-web-services/local-web-services.git
cd local-web-services/sample-project/cdk
npm installcdk synthuvx --from local-web-services ldk setup lambdaThis pulls the official AWS Lambda base images from ECR Public, which include the AWS SDK pre-installed. You only need to do this once.
uvx --from local-web-services ldk devThe ldk dev command reads the cloud assembly and starts local providers for every resource in the stack — DynamoDB tables, SQS queues, S3 buckets, Lambda functions, API Gateway, SSM parameters, and Secrets Manager secrets — all wired together.
Once started, open http://localhost:3000/_ldk/gui to access the web dashboard with real-time logs, resource explorer, and system status.
# Create an order via API Gateway
curl -X POST http://localhost:3000/orders \
-H "Content-Type: application/json" \
-d '{"customerName": "Jane", "items": ["Widget"], "total": 29.99}'
# Get the order
curl http://localhost:3000/orders/{orderId}
# Inspect data with lws
uvx --from local-web-services lws dynamodb scan --table-name OrdersTable
uvx --from local-web-services lws sqs receive-message --queue-name OrderQueue
uvx --from local-web-services lws s3api list-objects-v2 --bucket order-documentsThe sample project is an order processing system with API Gateway, Lambda, DynamoDB, SQS, SNS, S3, and Step Functions — all running on your machine. Use lws commands to inspect the data your application creates.
Clone a sample HCL project and run it locally in six steps.
git clone https://github.com/local-web-services/local-web-services.git
cd local-web-services/sample-project/hcl
cd lambda/create-order && npm install && cd ../..
cd lambda/get-order && npm install && cd ../..
cd lambda/process-order && npm install && cd ../..
cd lambda/generate-receipt && npm install && cd ../..tofu inituvx --from local-web-services ldk setup lambdaThis pulls the official AWS Lambda base images from ECR Public, which include the AWS SDK pre-installed. You only need to do this once.
uvx --from local-web-services ldk devThe ldk dev command auto-detects your HCL project, starts all AWS service providers in always-on mode, and generates a _lws_override.tf file that redirects Terraform's AWS provider to your local endpoints.
In another terminal, apply your HCL configuration against the local services:
tofu apply -auto-approveYour HCL tool creates all resources (DynamoDB tables, SQS queues, Lambda functions, API Gateway routes, etc.) against your local endpoints. No AWS account needed.
# Run the end-to-end test script
bash test-orders.sh
# Or test manually with lws commands
uvx --from local-web-services lws dynamodb scan --table-name Orders
uvx --from local-web-services lws stepfunctions start-execution \
--name OrderWorkflow \
--input '{"orderId": "test-123", "items": ["widget"], "total": 29.99}'Set up slash commands and context for AI code editors so Claude can manage your local AWS fakes and chaos testing.
uvx --from local-web-services lws initThis creates three files in your project:
CLAUDE.md — LWS quick reference and CLI commands that Claude reads automatically.claude/commands/lws/fake.md — The /lws:fake slash command.claude/commands/lws/chaos.md — The /lws:chaos slash commandThe command is idempotent — running it again updates existing files without duplicating content.
Once initialized, two slash commands are available in Claude Code:
Guides Claude through creating and configuring AWS operation fakes. Supports file-based fakes (persist across restarts) and runtime fakes (configured on the fly). Includes service-aware helpers for DynamoDB JSON, S3 XML, SQS messages, and more.
Guides Claude through enabling chaos engineering on AWS services. Configure error rates, latency injection, timeouts, and connection resets. Includes common scenarios for testing retry logic, circuit breakers, and timeout handling.
The CLAUDE.md snippet gives Claude context about your LWS environment, including how to start the dev server, check status, and use fake and chaos commands. This context is read automatically by Claude Code when working in your project.