gitmyhub

microvm-dev-environment

JavaScript ★ 15 updated 11d ago

A browser based terminal that runs Claude Code inside a per user AWS Lambda MicroVM with persistent storage, usable from an iPad or any browser.

AWS LambdaNode.jsAmazon S3CognitoCloudFrontAWS SAMsetup: hardcomplexity 4/5

This project sets up a browser based terminal that runs Claude Code inside its own isolated AWS Lambda MicroVM, so it can be used from an iPad or any device with a browser rather than a local terminal. A user opens a web page, signs in, and lands in a real shell running Claude Code connected to Amazon Bedrock. Closing the browser tab and coming back later returns to the same environment, since each user's home directory is stored persistently in Amazon S3 and mounted back into their MicroVM.

The README describes the pieces involved: a static frontend served through CloudFront with a terminal built on xterm.js, sign in handled by Amazon Cognito, an API Gateway endpoint that checks the Cognito login before anything else runs, and a small Lambda function that finds or creates a user's storage, starts or resumes their MicroVM, and issues a short lived access token. The MicroVM image itself runs Amazon Linux with Node.js, Python, the AWS command line tools, and Claude Code preconfigured to use Bedrock models, with Claude Opus set as the default and Claude Sonnet 5, Haiku 4.5, or Fable 5 available as alternatives.

Every user gets their own separate MicroVM and their own storage space, and a new user only needs to be added to the Cognito pool for their environment to be created automatically on first login. The whole setup, including the virtual network, storage, sign in system, and lambda functions, is deployed with a single AWS SAM template, and the README provides both a one command deploy script and a manual step by step walkthrough of the same process.

The README is direct about the project's maturity, describing it as a demo or small team project rather than a hardened product, and it points to a security section that should be read before deploying it anywhere sensitive, since the sandboxed environment runs with a broadly privileged AWS role.

Where it fits