Inspiration I wanted to host a side project on AWS but was immediately overwhelmed — 200+ services, confusing dashboards, and surprise bills at the end of the month. I figured if I struggled, complete beginners had it even worse.

Nimbus AI was born from a simple idea: deploying to the cloud should be as easy as describing what you want in plain English.

What it does Nimbus AI lets users deploy and manage AWS infrastructure through natural language chat. You type something like:

"I need a REST API with a database"

and three AI agents handle the rest:

Agent Role Architect Plans infrastructure using Amazon Nova, generates cost estimates Executor Provisions AWS resources (EC2, S3, DynamoDB, Lambda) Bodyguard Monitors resources 24/7, auto-stops idle instances to prevent surprise bills It also includes a built-in code editor, terminal with GitHub integration, automatic file generation (setup scripts, docker-compose, manifests), and a real-time resource dashboard.

How I built it Backend — A Python FastAPI server orchestrates the three agents. The Architect calls Amazon Nova via Amazon Bedrock's converse() API to analyze requests and return structured infrastructure plans. The Executor takes approved plans and provisions resources through boto3. The Bodyguard runs as a background thread, polling CloudWatch metrics and stopping instances whose CPU utilization drops below a threshold:

$$\text{idle} = \begin{cases} \text{true} & \text{if } \bar{x}_{\text{CPU}} < 5% \text{ over } T = 30\text{ min} \ \text{false} & \text{otherwise} \end{cases}$$

Frontend — A Next.js app (TypeScript, Tailwind CSS, Framer Motion) with four integrated panels: chat, agent activity feed, a VS Code-style code editor, and a sandboxed terminal. Authentication is handled by Clerk.

File generation — After each deployment, Nimbus automatically generates setup scripts, teardown scripts, docker-compose files, and infrastructure manifests, writes them to a workspace directory, and makes them available in the editor and terminal for git push.

Challenges I ran into Amazon Nova quota limits — My model quotas were stuck at $0$ tokens/min, and AWS support denied my increase request mid-hackathon. I solved this by building a multi-model fallback chain that tries 6 Nova model variants (us.amazon.nova-lite-v1:0, amazon.nova-2-lite-v1:0, etc.) before falling back to an intelligent keyword-based plan generator that still produces realistic, context-aware architecture plans.

Workspace sandboxing — I needed to give users real shell access (cd, git, mkdir, etc.) without allowing directory traversal outside the workspace. I built a path resolver that canonicalizes every path and rejects anything above the sandbox root.

Agent coordination — Getting three agents to share context and hand off work cleanly (Architect → Executor → Bodyguard) required careful session management and state tracking across async operations.

Accomplishments that I'm proud of A fully functional agentic system where three AI agents collaborate autonomously from a single chat message An integrated workspace with real terminal, code editor, and GitHub integration that makes it feel like a cloud IDE, not just a chatbot The Bodyguard agent genuinely prevents cost overruns by monitoring and stopping idle resources automatically A resilient fallback architecture that turned a quota crisis into a feature — the app works even when model access is limited What I learned How to orchestrate multiple AI agents that share context and hand off work The nuances of Amazon Bedrock — inference profiles, regional model availability, quota tiers, and the converse() API That building resilient AI applications means planning for failure — my fallback system turned a potential showstopper into a strength How to sandbox user-facing terminals securely while preserving real functionality What's next for Nimbus AI Multi-cloud support — extend to GCP and Azure Team workspaces — collaborative mode where multiple users share a deployment environment Predictive cost analysis — Bodyguard estimates spend before deployment using pricing: $$\hat{C} = \sum_{i=1}^{n} r_i \cdot h_i \cdot p_i$$ where $r_i$ is the resource count, $h_i$ is estimated hours, and $p_i$ is the per-hour price IaC export — generate Terraform or CloudFormation templates from Nimbus plans Complex architectures — VPCs, load balancers, ECS clusters, and multi-region deployments

Built With

  • amazon-bedrock
  • amazon-nova
  • aws-(ec2
  • boto3
  • clerk
  • dynamodb
  • fastapi
  • framer-motion
  • lambda
  • next.js
  • python
  • s3
  • tailwind-css
  • typescript
Share this project:

Updates