Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

Reference

Reference index

Runtime emulation tiers, the full service index with per-service coverage, supported event pipelines, and what the web management console shows.

Every guide and reference below, grouped by the job you are doing. To get a container answering the AWS APIs first:

docker run --rm -p 4566:4566 ghcr.io/overcast-sh/overcast:latest
export AWS_ENDPOINT_URL=http://localhost:4566
aws s3 mb s3://demo

Credentials, regions and per-language client setup are in Using AWS SDKs and CLI.

Get running

GuideFor
Install OvercastThe one-line installers for macOS, Linux and Windows, the Docker images, and installing by hand
Using AWS SDKs and CLIPointing the AWS CLI, Node.js, Python, Go, Java, .NET, Rust or Terraform at Overcast
CLI referenceEvery overcast subcommand — background instances, introspection, AWS helpers, mDNS and TLS
Using AWS CDKcdk bootstrap, cdk deploy, which resource types provision for real, and the local-VPC pattern
TestcontainersStarting Overcast from integration tests
Migrating from LocalStackSwapping the image and keeping your environment block
LocalStack compatibility matrixEvery port, URL, hostname, container convention and client tool, with its status

Build against it

GuideFor
Service referenceWhat each AWS service supports, operation by operation
Networking and host-based addressingHost-routed endpoints, wildcard DNS, sibling containers, VPC isolation
The inner loopEditing a file and seeing it take effect — cdk watch, Lambda and ECS hot reload
Step debugging inside emulated computeAttaching VS Code, a JetBrains IDE or Chrome DevTools to code running inside a Lambda function or ECS task
Debugging in the consoleBreakpoints, stepping, locals and watches in the function page’s Code tab, for Node.js functions
HTTPS and HTTP/2Browser-trusted TLS in two commands, in Docker, and by hand

Tune and inspect

GuideFor
ConfigurationWhere each setting lives, the handful most people change, and every variable with its default
Storage and persistenceChoosing a backend and knowing what survives a restart
PerformanceStartup and memory expectations, storage tuning, and where “feels slow” time goes
Debug endpointsHealth, metrics, state dump, request traces, pprof
TroubleshootingA symptom, and where its answer lives

Runtime emulation tiers

GET /_overcast/health, overcast services and the web console report a tier per running service. It answers “how much of this service is wired up”, and is a different axis from the coverage tier in the index below — see Service reference § Coverage tiers for that one and for the per-operation status tokens.

TierMeaning
FullP1+P2 operations implemented. Real SDK clients can use it end-to-end.
PartialP1 operations implemented. Basic workflows work.
InertFull CRUD works — resources are created and stored — but no side-effects or enforcement occur. For example, IAM stores users, roles, and policies but never enforces permissions.
StubRegistered so discovery works: at most a hardcoded, stateless answer to the service’s describe call; every other operation returns 501 Not Implemented.

Services

Shorter overview: the service reference index.

ServiceDocOpsCoverage tier
S3S3 — Simple Storage Service53Comprehensive / broad support
SQSSQS — Simple Queue Service21Comprehensive / broad support
DynamoDBDynamoDB — Amazon DynamoDB28Comprehensive / broad support
LambdaLambda — AWS Lambda62Comprehensive / broad support
API GatewayAPI Gateway — Amazon API Gateway104Comprehensive / broad support
AppSyncAppSync — AWS AppSync81Comprehensive / broad support
CloudFrontCloudFront — Amazon CloudFront88Comprehensive / broad support
CognitoCognito — Amazon Cognito User Pools70Comprehensive / broad support
EC2 / VPCEC2 — Elastic Compute Cloud79Comprehensive / broad support
SNSSNS — Simple Notification Service30Comprehensive / broad support
Step FunctionsStep Functions — AWS Step Functions37Comprehensive / broad support
IAMIAM — Identity and Access Management74Core CRUD + common workflows
ECSECS — Elastic Container Service48Core CRUD + common workflows
ECRECR — Elastic Container Registry25Core CRUD + common workflows
KMSKMS — Key Management Service34Core CRUD + common workflows
KinesisKinesis — Amazon Kinesis Data Streams23Core CRUD + common workflows
EventBridgeEventBridge — Amazon EventBridge31Core CRUD + common workflows
SchedulerScheduler — Amazon EventBridge Scheduler12Core CRUD + common workflows
CloudFormationCloudFormation — AWS CloudFormation53Core CRUD + common workflows
RDSRDS — Relational Database Service34Core CRUD + common workflows
ElastiCacheElastiCache — Managed In-Memory Cache24Core CRUD + common workflows
EFSEFS — Amazon Elastic File System31Core CRUD + common workflows
S3 TablesS3 Tables — Amazon S3 Tables49Core CRUD + common workflows
AppConfigAppConfig — AWS AppConfig20Core CRUD + common workflows
AppConfigDataAppConfigData — AWS AppConfig Data Plane2Core CRUD + common workflows
Secrets ManagerSecrets Manager — AWS Secrets Manager22Core CRUD + common workflows
SSMSSM Parameter Store — AWS Systems Manager18Core CRUD + common workflows
CloudWatch LogsCloudWatch Logs — Amazon CloudWatch Logs26Core CRUD + common workflows
SESSES — Simple Email Service45Core CRUD + common workflows
STSSTS — Security Token Service11Core CRUD + common workflows
Route 53Route 53 — Amazon Route 5325Core CRUD + common workflows
Auto ScalingAuto Scaling — AWS Auto Scaling25Core CRUD + common workflows
PipesPipes — Amazon EventBridge Pipes8Minimal / targeted support
WAF v2WAF — AWS WAF v27Minimal / targeted support
ShieldShield — AWS Shield8Minimal / targeted support
ACMACM — AWS Certificate Manager11Minimal / targeted support
AthenaAthena — Amazon Athena12Minimal / targeted support
BedrockBedrock — Amazon Bedrock Runtime2Minimal / targeted support
CloudWatchCloudWatch — Amazon CloudWatch17Minimal / targeted support
DynamoDB StreamsDynamoDB Streams — Amazon DynamoDB Streams4Minimal / targeted support
FirehoseFirehose — Amazon Data Firehose9Minimal / targeted support
GlueGlue — AWS Glue Data Catalog26Minimal / targeted support
OpenSearchOpenSearch — Amazon OpenSearch Service8Minimal / targeted support
AppRegistryAppRegistry — Service Catalog AppRegistry22IaC/discovery-oriented stub
BackupBackup — AWS Backup18IaC/discovery-oriented stub
CloudTrailCloudTrail — AWS CloudTrail12IaC/discovery-oriented stub
EKSEKS — Amazon Elastic Kubernetes Service49IaC/discovery-oriented stub
ELBv2ELBv2 — Elastic Load Balancing v2 (ALB/NLB)22IaC/discovery-oriented stub
MSKMSK — Managed Streaming for Kafka30IaC/discovery-oriented stub
OrganizationsOrganizations — AWS Organizations15IaC/discovery-oriented stub
Transfer FamilyTransfer Family — AWS Transfer Family13IaC/discovery-oriented stub

Want to add support for a new AWS service? See CONTRIBUTING.md § How to add a service in the repository.


Event pipelines

PipelineStatus
SNS → SQS subscription✅ Supported
SQS → Lambda event source mapping✅ Supported
DynamoDB Streams → SQS (Pipes)✅ Supported
DynamoDB Streams → Lambda (ESM)✅ Supported

Web management console

The full image (ghcr.io/overcast-sh/overcast) serves a web management console on http://localhost:4567 — in-process, from the same binary, so there is no second server to start and the AWS API on 4566 never depends on it. Set OVERCAST_UI_PORT (or --ui-port) to move it; 0 disables it. A tour with screenshots is at overcast.sh/console.

FeatureWhat it does
DashboardService cards with live status and emulation tier
Per-service UIS3 browser, SQS message inspector, DynamoDB item editor, Lambda test/invoke, and more
Live activity feedEvery API call as it happens — operation, resource, status code, latency
Request tracesFull bodies, headers, log lines and internal hops for any call, searchable. Needs OVERCAST_DEBUG=true
InboxEverything Overcast would have sent: SES mail, SNS email subscriptions and Cognito verification mail via the built-in SMTP server on :1025, plus SNS SMS and HTTP webhook deliveries — searchable, headers and bodies included, with no third-party mail catcher
Topology mapCross-service resource relationships
Real-time updatesServer-sent events push changes as they happen

If the console stops responding to clicks while many Lambdas run or transfers are in flight, you are hitting the browser’s 6-connection HTTP/1.1 limit — the live feed and progress streams hold the sockets. Serving the console over HTTPS unlocks HTTP/2 and fixes it: see HTTPS and HTTP/2.

Tip

Request traces are the console’s strongest debugging tool and the one thing it cannot show by default. Start the daemon with OVERCAST_DEBUG=true and every call gets a full trace — see Debug endpoints.