Kumo
lastmod 2026-04-23created 2026-04-231 edits
Lightweight AWS service emulator written in Go
About
- Quickly sets up a compatible environment for local development and CI/CD testing without real AWS
- A single binary makes for a lightweight test environment; Docker-based execution is also possible
- Works without authentication, reducing the burden of preparing AWS credentials in automation pipelines
- Broad support for 76 AWS services, covering major areas such as S3, SQS, DynamoDB, Lambda, IAM, CloudWatch, ECS, and RDS
- Local AWS-compatible endpoint running on localhost:4566 by default
- Setting KUMO_DATA_DIR enables optional data persistence as per-service JSON files; when unset, it runs clean in memory
- Logs every request with structured log fields
- INFO: HTTP method, path, status code, latency, request ID, API target information, etc.
- DEBUG: Also logs the full request body, useful for debugging work that requires inspecting the request payload itself
- Not part of the official AWS API, but useful for verifying application behavior during testing
- Querying emails sent via SES v2
- GET /kumo/ses/v2/sent-emails returns the list of emails sent through the SES v2 SendEmail API
- Response: includes MessageId, sender address, recipients, subject, body, send time, etc.
- Querying messages sent via Pinpoint SMS Voice v2
- GET /kumo/pinpointsmsvoicev2/sent-messages returns the list of SMS messages sent through the SendTextMessage API
- Response: includes MessageId, destination phone number, origination identity, message body, send time, etc.
- Especially useful for verifying results without depending on external services when testing email and text message sending