Skip to main content
Choose Azure when your team wants AgentOS deployment resources and persisted platform data in its own Azure subscription. The agentos-azure template uses Docker locally and provisions Container Apps, Flexible Server for PostgreSQL, ACR, and networking for production.
  • Agent Builder, which creates agents, teams, and workflows when prompted.
  • Platform Manager, which inspects registered agents, eval history, deployment checks, and schedules.
  • Six skills. setup-platform configures the local platform. Five lifecycle skills create, extend, improve, evaluate, and review it.
Coding agents can use the repository skills, live AgentOS API, evals, and container logs to inspect and improve the platform. The deployment resources live in one Azure resource group. Model calls and optional interfaces use the providers you configure.

Get started

Copy the prompt below into Claude Code, Cursor, or Codex to clone the template, start AgentOS locally, and build your first agent.
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: Azure CLI installed and az login completed. Docker running; the image is built locally.
Use a new, dedicated AZURE_RESOURCE_GROUP. down.sh deletes the entire selected group, including unrelated resources if you point it at a shared group.
1

Create a production env

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

Deploy

The first run takes 15-20 minutes. PostgreSQL Flexible Server takes most of that time. The script creates everything inside the selected resource group, agentos by default: a VNet with private DNS, a container registry with the locally built image, PostgreSQL 17 Flexible Server with private access and pgvector allowlisted, the Container Apps environment, and the agent-os app pinned to one replica. The app URL is only known after create. Once the app is up, the script writes AGENTOS_URL back to your env file so scheduled jobs reach the platform. It also generates MCP_CONNECT_SECRET, the OAuth consent secret for connecting chat apps, into the same file.
3

Mint your JWT key

The script pauses for a JWT_VERIFICATION_KEY. Token-Based Authorization is on by default. Production startup requires that verification key or a readable JWKS file at the container path in JWT_JWKS_FILE; otherwise the process exits.
  1. Open os.agno.com, click Connect OSLive, enter your Container Apps 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, stores it as a Container Apps secret, and applies it together with AGENTOS_URL in a second revision.
If your env file already sets JWT_JWKS_FILE, the script skips the pause and applies the path. Bake or mount the file before deployment. If you skip the prompt, add JWT_VERIFICATION_KEY to .env.production and run ./scripts/azure/env-sync.sh. Adding JWKS later requires an image rebuild or mount plus a redeploy. Env sync applies only the path.
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://<container-app-domain>/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 script prints your app URL. Give the revision a couple of minutes to converge. /health and /docs remain public. Protected AgentOS routes such as /agents require a valid token.
Your AgentOS is live on Azure Container Apps.

Redeploy after code changes

Sync environment variables

Tear down

Deletes the entire resource group, agentos by default: the agent-os app, the Container Apps environment, the Postgres server and all its data, the container registry, the VNet, and the private DNS zone. The script lists the group’s resources and asks you to type the group name before deleting. It also comments out the stale AGENTOS_URL in your env files so a future up.sh derives a fresh domain; custom domains are left alone.

Next steps

Build with coding agents

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

Azure Container Apps reference

Commands, environment variables, troubleshooting.