Skip to main content
AgentOS is a secure, scalable platform for running agents. The agentos-aws codebase runs AgentOS locally using Docker and deploys to production on AWS. It comes with:
  • 2 platform agents that build and run the platform for you. Agent Builder creates agents, teams, and workflows. Platform Manager monitors and manages the platform.
  • 5 skills that let coding agents build, test, and improve the platform for you.
Because the trace data, agent code, evals, and system logs all live in one place, the platform can inspect and improve itself automatically. Production runs in your own AWS account: the deploy scripts use ECS Express Mode for the service and RDS for Postgres.

Get started

The fastest way to get started is using a coding agent. Copy the prompt below into Claude Code, Cursor or Codex and it’ll take you from zero to a running platform.
Prefer to drive yourself? Follow the manual steps below.

Manual setup

Prerequisites: Docker installed and running. An OpenAI API key.
1

Clone and configure

Edit .env and set OPENAI_API_KEY.
2

Start the platform

The first build takes a few minutes. Confirm the API is available at localhost:8000/docs.
3

Verify end to end

Prints MCP OK with the tool count and a real agent answer through the MCP endpoint.
4

Connect the AgentOS UI

  1. Open os.agno.com and sign in.
  2. Click Connect OS, enter http://localhost:8000, and name it Local AgentOS.
5

Build your first agent

  1. Chat with Agent Builder: “Build an agent that tracks AI news and writes a daily brief”. Go through the agent development process.
  2. Once created, click Refresh on the top right, pick the new agent from the Agents dropdown, and ask: “What’s new with Anthropic?”
  3. Ask Platform Manager: “How healthy is the platform?” It answers from eval history, deployment checks, schedules, and the agent you just built.
At this point, your AgentOS is running locally.

Connect your frontends

Deploy to production

Prerequisites: AWS CLI v2 recent enough for ECS Express Mode (aws ecs create-express-gateway-service help must work), credentials configured (aws sts get-caller-identity succeeds), and Docker running. The image is built locally and pushed to ECR.
1

Create a production env

Edit .env.production with production values: a different OpenAI key, production-only credentials, a different Slack workspace.
2

Deploy

Provisions an ECR repo, a private RDS PostgreSQL 17 instance, and Secrets Manager secrets, then makes one aws ecs create-express-gateway-service call. That call brings the Fargate service, an ALB with HTTPS, security groups, autoscaling, CloudWatch logs and alarms, and a public URL (https://ag-<id>.ecs.<region>.on.aws, generated per service). The script pins scaling to a single always-on task so the in-process scheduler never double-fires, and sets AGENTOS_URL to the generated URL so scheduled jobs reach the platform. It also generates MCP_CONNECT_SECRET into .env.production when it’s missing, so chat apps can connect over OAuth from the first deploy.The first run takes 30-45 minutes end to end. Certificate and DNS provisioning is the long pole, and the script waits until the gateway actually answers before declaring success. Redeploys take minutes. Region comes from AWS_REGION (default us-east-1).
This stack idles at roughly 100110/month:about100-110/month: about 70/mo for Fargate (2 vCPU/4 GB), 1725/mofortheALB(sharedacrossupto25Expressservices),and17-25/mo for the ALB (shared across up to 25 Express services), and 14/mo for the RDS db.t4g.micro. AWS bills idle resources. Tear down what you don’t use with ./scripts/aws/down.sh.
3

Mint your JWT key

The script pauses for a JWT_VERIFICATION_KEY. Token-Based Authorization is on by default and without a verification key or a JWT_JWKS_FILE, the platform refuses to serve production traffic.
  1. Open os.agno.com, click Connect OSLive, enter your service URL, and name it Live AgentOS.
  2. Go to SettingsOS & Security and turn on Token-Based Authorization (JWT).
  3. Copy the public key and paste the full PEM into the up.sh prompt. The script saves it to your env file, pushes it to Secrets Manager, and rolls a fresh task-definition revision.
If you skip the prompt, add the key to .env.production later and run ./scripts/aws/env-sync.sh. If .env.production sets JWT_JWKS_FILE instead, the script skips the prompt and delivers the path through the task-definition env.
Live AgentOS connections are a paid feature. Use code PLATFORM30 for one month off.
4

Connect your MCP clients

Re-run uvx agno connect, this time pointed at your deployed domain:
For claude.ai and ChatGPT on the web: add https://<service-url>/mcp as a custom connector in the chat app’s connector settings. Leave the form’s optional OAuth fields (client ID / client secret) empty. Click Connect and, on the consent page, enter the MCP_CONNECT_SECRET that up.sh generated during deploy (saved in .env.production).
5

Confirm it's live

The app finishes rolling out behind the gateway; first boot pulls the image and waits for the database. Open https://<service-url>/docs to confirm the API is serving.
Your AgentOS is live on AWS.

Redeploy after code changes

Sync environment variables

Tear down

Deletes the Express service (its ALB wiring, security groups, and autoscaling with it), the RDS instance and all its data with no final snapshot, the ECR repo and its images, the agentos/* secrets, and the log group. If no other Express service shares the gateway ALB, the script removes that too, then prints verification commands so you can confirm nothing is left billing.

Next steps

Build with coding agents

Skills to create → improve → evaluate your platform using coding agents.

AWS reference

Commands, environment variables, troubleshooting.