New in 4.1

AI assistants can now work with your local AWS. Goku serves MCP, so Claude Code, Claude Desktop, Cursor, VS Code and Windsurf can create resources, call any AWS API and read logs on your machine, never real AWS. Connect yours.

New name

Mimir is now Goku, everywhere. Every name is Goku now: the image tanujsoni027/goku, the goku container and command, and GOKU_* settings. Existing installs move over automatically and the old names keep working for now, so start using the goku names.

What's new in Goku 4.1 →

Goku — Your Local AWS Cloud

Goku (formerly Mimir) is a local AWS cloud emulator: 73 AWS-compatible services — S3, Lambda, DynamoDB, RDS, Step Functions, API Gateway, Glue and more — on localhost:4566, with a web console for 60 services on localhost:8080, real container-backed engines, and zero AWS account. Free.

Install Goku What's new in 4.1
$ curl -fsSL https://tanuj24.github.io/goku/install.sh | sh

Then run goku start and open http://localhost:8080 — click “Load sample data” on any console page to explore a populated cloud.
Or run it with Docker directly — see all install options. Needs Docker Desktop on macOS and Windows, or Docker Engine or Docker Desktop on Linux.

73AWS-compatible services
60console services
$0.00everything free
amd64 + arm64multi-arch image
Release notes · 4.1.0

What's new in Goku 4.1

Goku 4.1 connects AI assistants to your local AWS. Claude Code, Claude Desktop, Cursor, VS Code, Windsurf and any other MCP client can now work with Goku directly: create and inspect resources, call any AWS API, read logs, take snapshots and inject faults, all against the sandbox on your machine and never real AWS.

An MCP server for Goku

Goku serves the Model Context Protocol at http://localhost:8080/mcp, on the console's port, over Streamable HTTP. 25 tools cover status, services, sample data, the Resource Center, logs, snapshots, fault injection, IAM and request journeys, and aws_call calls any operation of the emulated AWS services. Tool hints mark the ones that can delete.

Setup in one line: goku mcp

goku CLI 0.5.0 adds goku mcp, a stdio bridge that starts Goku when it isn't running. claude mcp add goku -- goku mcp is all Claude Code needs, and goku mcp config prints the setup for Claude Desktop, Cursor, VS Code and Windsurf.

The AI assistants page

MCP in the console's top bar shows the endpoint, copy-paste setup for each client, things to ask and every tool. Requests from other websites are refused, and GOKU_MCP=off turns the endpoint off.

Set it up in a minute: connect an AI assistant to Goku, with the setup for every client, the full tool list and how aws_call works.

Release notes · 4.0.0

Goku 4.0

Mimir is now Goku, everywhere. Goku tells you when a new version is out and updates itself from the console, and everything it keeps, including your databases, lives in a folder on your disk. It also adds AWS Glue 6.0, DynamoDB vector search, AWS Lambda runtime parity, a rebuilt ECS, the IAM Policy Lab, a lightweight start with per-service subscriptions, a Resource Center, real engines behind a dozen more services, and console pages for 33 more services — 60 in total, on a backend of 73.

Mimir is now Goku, everywhere. Start using the goku names.

Every name is Goku now: the image tanujsoni027/goku, the goku container and command, GOKU_* settings, /_goku paths, goku.local host names and the goku-ca.pem file. The site moved to tanuj24.github.io/goku.

Update now, from the console

The console shows when a new version is out. One click downloads it and replaces the running Goku with the same ports, settings and data; if the new version doesn't come up healthy within 3 minutes, Goku rolls back to the one you had. The check is one download of a static file, with nothing about you sent; GOKU_UPDATE_CHECK=off turns it off.

Everything in a folder on disk

Buckets, tables, functions and the data of every engine (RDS PostgreSQL databases, OpenSearch, MSK, ECR, DocumentDB, MemoryDB, Amazon MQ and Redshift) live in ~/.goku/data (%LOCALAPPDATA%\Goku\data on Windows). Reset Docker, update or reinstall: start Goku with the same folder and resume where you left off. Existing data moves in by itself.

goku CLI 0.4

goku update moves your install to the data folder on the way; goku update --cli updates the CLI itself, verified against its published checksums; goku data shows, opens or migrates the folder. The CLI tells you, at most once a day, when a new Goku or CLI is out.

Coming from Mimir?

Install the CLI and run goku update: it saves your state, moves it into the data folder, renames your mimir container to goku and starts the newest Goku on the same ports. Your old mimir-data volume stays as a backup. Using plain Docker? See upgrading an existing install.

AWS Glue 6.0

Glue 6.0 (Spark 4.1.1, Python 3.13, Java 17) and Glue 5.1, per job or notebook. AWS publishes no Glue 6.0 image, so Goku builds one locally the first time a 6.0 job runs — a one-time step of a few minutes. New jobs default to Glue 5.1, as on AWS.

DynamoDB vector search

The VectorIndexes and SearchVectors APIs with cosine, Euclidean and dot-product distance, and a console tab to search by text, by a similar item or by raw vector. Plus a rebuilt item explorer and a PartiQL editor.

Lambda runtime parity

Every runtime AWS Lambda supports today — Node.js, Python, Java, .NET, Ruby and provided.al2023 — on arm64 and x86_64, with AWS's lifecycle dates. Also provisioned concurrency, SnapStart, container-image functions and response streaming.

A rebuilt ECS

Self-healing services, rolling deployments and a circuit breaker with rollback; health checks, secrets and volumes; ECS Exec from the AWS CLI, Service Connect and AWS Cloud Map; and a browser terminal into running containers.

IAM Policy Lab

Answers “if I ship this IAM change, who gains or loses what access, and why?” before you ship it: effective access with evidence, policy drafts you can diff, simulate and size by blast radius, and IAM tests with regression reports — for Goku or, read-only, a real AWS account.

Start light, subscribe to what you use

A new installation starts only the core services — S3, DynamoDB, Lambda, SQS, SNS, IAM/STS, CloudWatch, KMS, Secrets Manager and Systems Manager. Subscribe to more, or to a preset such as Containers, Databases or Analytics, on the Services page.

Resource Center

Everything Goku runs — databases, brokers, clusters, functions and build containers — with live memory and CPU. Pause, stop, restart or remove any of it from one place, with a memory budget, idle auto-stop and disk cleanup.

Real engines for a dozen more services

Bedrock through a local Ollama, Redshift and its Data API, Amazon MWAA on real Airflow, EMR Serverless on real Spark, MemoryDB on real Valkey, DocumentDB on real MongoDB and Amazon MQ on real RabbitMQ or ActiveMQ.

33 more console pages

60 in total. New pages include Route 53, Elastic Load Balancing, CloudFront, CodeBuild, CodeDeploy, AWS Backup, AWS Config, Bedrock, Cost Explorer, Redshift, Amazon MWAA, CloudTrail, X-Ray and AWS Organizations.

Build, test and debug faster

New developer tools, in the console, the API and the goku CLI:

Also new in 4.0: real engines behind a dozen more services — including Bedrock through a local Ollama, Redshift, Amazon MWAA on real Airflow, EMR Serverless on real Spark, MemoryDB, DocumentDB and Amazon MQ — and console pages for 33 more services, from Route 53 and CloudFront to Cost Explorer and AWS Organizations.

Live execution

Watch Step Functions run — locally

A real-time workflow graph: states color in as the execution progresses, Choice branches show their conditions, and Task nodes deep-link to the local resources they invoke.

AWS Step Functions running locally with a live workflow graph in the Goku console
Every service, a real console

Pick a service, see its console

A tour of the bundled web console: 27 of its 60 service consoles, grouped the way AWS groups them, plus tools new in Goku 4.0. Click any one to see its page.

Storage
Databases
Compute
Containers
App Integration
Analytics
Security & Identity
Management
Observability
Goku tools
S3 console in Goku — local AWS S3 emulation

Storage · S3 console in Goku

Console

60 AWS service consoles, one image

The bundled web console covers 60 services, and every service page has a one-click “Load sample data” button, so you can explore a populated cloud in under a minute.

Goku web console home with local AWS services: S3, DynamoDB, Lambda, SQS, SNS, CloudWatch, EC2, ECS, EKS, Glue and more
Features

What you get

Real engines, not mocks

RDS starts a real PostgreSQL, MySQL or MariaDB container — connect with psql on localhost:5500. ElastiCache and MemoryDB run real Redis or Valkey, DocumentDB runs real MongoDB, Amazon MQ runs real RabbitMQ or ActiveMQ, OpenSearch is the real engine and EKS boots real k3s. Lambda functions run in real runtime containers.

API Gateway you can curl

Build REST, HTTP and WebSocket APIs in the console, attach a Lambda integration, and invoke them on localhost seconds later — no deploy pipeline, no waiting.

Glue that actually runs

Real PySpark jobs and interactive notebooks with the real awsglue libraries, Glue 6.0 back to 2.0, with Hudi, Delta Lake and Iceberg. Step Functions Task states really invoke your local Lambdas.

Everything on disk

Your buckets, tables, functions and jobs, and the data of every database and broker, live in a folder on your disk. Stop, update, reinstall or reset Docker: start Goku with the same folder and carry on.

No port roulette

Data endpoints live in a dedicated 5500–5659 range, so they never clash with a local Redis, Postgres or Elasticsearch. RDS, ElastiCache and Neptune use the published 5500–5524 ports; the rest bind on your host automatically.

CloudWatch everywhere

CloudFormation stacks actually provision the buckets, queues and topics in your template, and every container-backed service streams logs to its AWS-convention CloudWatch log group, exactly like the real cloud.

Zero code changes: point your AWS CLI, SDK or app at http://localhost:4566, region us-east-1, with any local credentials such as test / test — or let goku env set it all for you.

Guides

Guides: run and test AWS locally

Step-by-step walkthroughs with commands you can paste, for the things developers most often run locally.

Run AWS locally without an account

Install Goku, point the AWS CLI at localhost:4566 and create S3 buckets, DynamoDB tables, SQS queues and Lambda functions on your machine.

Test AWS Lambda locally

Create, invoke and debug functions in real runtime containers, read their CloudWatch logs and stop on breakpoints in VS Code or JetBrains IDEs.

DynamoDB on your machine

Tables, items, GSI queries, PartiQL, Streams and vector search on localhost, with your data kept between restarts.

Run AWS Glue jobs locally

Glue 6.0 and 5.1 jobs and notebooks on real Spark with the awsglue libraries, a local Data Catalog and S3.

Connect AI assistants to local AWS

Give Claude Code, Claude Desktop, Cursor, VS Code or Windsurf 25 tools and any AWS API call on a local sandbox, never your real AWS account.

FAQ

FAQ

Goku was formerly Mimir. What changed?

Only the name. Goku is the same product, renamed in Goku 4.0, where every name became Goku: the image tanujsoni027/goku, the goku container and command, GOKU_* settings, /_goku paths and goku.local hostnames. Existing installs move over automatically, and the old Mimir names keep working for now, so start using the goku names. See old and new names.

How do I run AWS locally without an AWS account?

Install Goku and point your AWS CLI or SDK at http://localhost:4566, region us-east-1, with any local credentials such as test / test — goku env sets these for you. No account and no sign-up. Once the image and any runtime images your services need are pulled, everything runs on your machine without internet access. Walkthrough: how to run AWS locally.

Can I test and debug Lambda functions locally?

Yes. Functions run in real runtime containers for every runtime AWS Lambda supports today, with logs, versions, aliases, function URLs and event source mappings. Step through a handler from VS Code, IntelliJ, PyCharm or GoLand. See testing AWS Lambda locally.

Does my data survive restarts and updates?

Yes. Everything Goku keeps, databases included, lives in a data folder on your disk (~/.goku/data, or %LOCALAPPDATA%\Goku\data on Windows). It survives stops, updates, reinstalls and Docker resets. Environment snapshots can save and restore the whole local cloud.

Does Goku run on Windows and Apple Silicon?

Yes. The goku CLI installs natively on macOS, Linux and Windows and runs Goku in Docker. The image is multi-arch (arm64 + amd64), so it runs natively on Apple Silicon.

What do I need to run Goku?

Docker: Docker Desktop on macOS and Windows, and Docker Engine or Docker Desktop on Linux. See all install options.

Is Goku a production AWS replacement?

No. Goku is a local development and testing sandbox — build and iterate locally, then deploy to real AWS for production.