-
Notifications
You must be signed in to change notification settings - Fork 81
[feat] Official devcontainer feature for CAO #153
Description
Summary
Publish an official devcontainer feature that installs CAO + web UI into any devcontainer with a single line:
"features": {
"ghcr.io/awslabs/cli-agent-orchestrator/cao": {
"version": "latest",
"webui": true,
"port": 9889
}
}Motivation
CAO is designed to orchestrate multiple CLI agents, which is a perfect fit for devcontainers — isolated environments where you can install multiple agent CLIs and run them together. Currently, setting up CAO in a devcontainer requires:
- Install system deps (tmux, git, curl)
pip installCAO from GitHub- Clone the repo separately to build the web UI (
npm install && npm run build) - Copy the built web UI to the correct location inside the installed package
- Configure CORS, networking, and agent pre-configuration
A devcontainer feature would reduce this to a single JSON line.
Proposed Feature Structure
features/
└── cao/
├── devcontainer-feature.json
└── install.sh
devcontainer-feature.json
{
"id": "cao",
"version": "1.0.0",
"name": "CLI Agent Orchestrator",
"description": "Multi-agent orchestration framework for CLI-based AI coding agents",
"options": {
"version": {
"type": "string",
"default": "latest",
"description": "CAO version (git ref or 'latest')"
},
"webui": {
"type": "boolean",
"default": true,
"description": "Build and include the web UI"
},
"port": {
"type": "string",
"default": "9889",
"description": "Server port"
},
"headless": {
"type": "boolean",
"default": true,
"description": "Auto-configure agents for non-interactive use"
}
},
"installsAfter": [
"ghcr.io/devcontainers/features/node",
"ghcr.io/devcontainers/features/python"
],
"entrypoint": "/usr/local/share/cao/entrypoint.sh"
}install.sh
The install script would handle:
- System deps (tmux)
- pip install CAO
- Web UI build (if
webui=true) - Entrypoint creation for auto-start and headless config
Companion Features
Individual agent CLI features could also be published:
ghcr.io/awslabs/cli-agent-orchestrator/claude-codeghcr.io/awslabs/cli-agent-orchestrator/codex- etc.
These would handle CLI installation + auth config mounting, and could be used independently or with the CAO feature.
Reference Implementation
We have a working devcontainer feature setup at cao-poc with features for CAO, Claude Code, Codex, and Devin CLI — all tested in devcontainers on Docker Desktop / WSL2.
Related
- [feat] Non-interactive / headless mode for containerized deployments #152 (Non-interactive/headless mode) — the
headlessoption in the feature would use this - [feat] Make CORS origins configurable #151 (Configurable CORS) — the
portoption needs CORS to follow - [bug] WebSocket PTY rejects connections from Docker bridge IPs #149 (Docker bridge IPs) — required for the web UI to work from the host