openclaw-dev is an alpha template for hosting a personal OpenClaw assistant on Azure Container Apps instead of a laptop. The container calls Azure OpenAI in Foundry Models (default gpt-5.4-mini) through a Managed Identity with local auth disabled, so no API keys exist in the system. Entra ID Easy Auth requires a Microsoft sign-in scoped to your tenant before any request reaches the WebChat UI, and an optional Microsoft Teams channel makes the assistant reachable from a phone.
Deployment goes through devclaw, a thin wrapper over the Azure Developer CLI, with commands for up, deploy, status, logs, start, stop, teams, exec-mode, and down. The repository also ships an agent skill in the open Agent Skills format, so GitHub Copilot Chat, Claude Code, Cursor, or Codex can run the same playbook from plain-English requests such as deploying to a region, enabling sandboxes, or tearing everything down, and confirms before destructive actions.
Tool execution can stay in-process or be offloaded: in sandbox mode, each untrusted shell, code, or browser run is handed to an ephemeral ACA Sandbox through a sandbox MCP server and destroyed afterward. Inside the container, a gateway-proxy routes Teams traffic to the msteams plugin and everything else to the OpenClaw gateway, while an auth-proxy injects a fresh Entra ID bearer token on every forwarded model request. State lives on Azure Files, so tearing down and redeploying rebuilds a clean instance in about six minutes, and a stopped deployment costs nothing.
| Mode | Where tools run |
|---|---|
| In-process (default) | Inside the gateway container |
| Sandbox execution | Throwaway ACA Sandboxes, while the gateway stays on ACA and Teams keeps working |
| Sandbox host (experimental) | The whole gateway runs in a sandbox, with no Teams |
Features
- Azure Container Apps hosting: an ephemeral OpenClaw gateway container with public HTTPS ingress and Azure Files for credentials, workspace, and sessions
- Keyless model access: Managed Identity tokens to Azure OpenAI in Foundry Models with local auth disabled
- Entra ID Easy Auth: tenant-scoped Microsoft login enforced before the WebChat UI, with the Bot Framework messages endpoint excluded
- Sandbox execution mode: untrusted tool runs offloaded to throwaway ACA Sandboxes via a sandbox MCP server, and an experimental sandbox-host mode runs the whole gateway in a sandbox
- Microsoft Teams channel: Azure Bot Service plus the @openclaw/msteams plugin, with a sideload package built by the CLI
- devclaw CLI: deploy, stop to zero replicas, restart, stream logs, switch execution mode, clone, and delete all resources
- Agent skill: a playbook for Copilot Chat, Claude Code, Cursor, and Codex that uses the repo's own scripts, env-var contract, region list, and error catalog
- Gateway token layer: a random per-container token injected into the SPA so authenticated users still need it to reach the WebSocket API
- Cost profile: roughly $2 to $5 per day while running and $0 when stopped