This document describes how to use the official CAO devcontainer feature, how to validate it locally, and how it should be released.
Install CLI Agent Orchestrator inside a devcontainer with one feature block, optionally build Web UI assets, and optionally autostart cao-server.
The feature supports these options:
version(string, default:latest) - git ref to checkout (latest, tag, or commit SHA)webui(boolean, default:false) - build web assets during installport(string, default:9889) - server port used by entrypoint autostartautostart(boolean, default:false) - runcao-serverwhen container starts
Use after publishing to GHCR:
{
"features": {
"ghcr.io/awslabs/cli-agent-orchestrator/cao:2": {
"version": "latest",
"webui": false,
"port": "9889",
"autostart": false
}
}
}Use directly from the repository checkout:
{
"features": {
"./.devcontainer/features/cao": {
"version": "latest",
"webui": false,
"port": "9889",
"autostart": false
}
}
}If you enable webui: true, ensure npm is available in the container (for example by adding ghcr.io/devcontainers/features/node:1).
Run in the target container environment:
sudo VERSION=latest WEBUI=false AUTOSTART=false bash .devcontainer/features/cao/install.sh
cao --help
cao-server --helpsudo VERSION=latest WEBUI=true AUTOSTART=false bash .devcontainer/features/cao/install.shThen verify one of these web artifact layouts exists for the selected version:
/usr/local/share/cao/repo/web/dist/index.html(older layout)/usr/local/share/cao/repo/src/cli_agent_orchestrator/web_ui/index.html(current layout)
- Default repo source is official upstream:
https://github.com/awslabs/cli-agent-orchestrator.git REPO_URLmay be overridden only for testing/custom forks- Feature manifest depends on
ghcr.io/devcontainers/features/python:1to guaranteepipavailability
- Keep feature in draft PR until smoke checks pass.
- Merge into
mainafter review. - Build and publish feature artifact to
ghcr.io/awslabs/cli-agent-orchestrator/caowith major tag:2and immutable version tag. - Update repository docs/examples to use published registry reference.
- Run post-release verification by creating a fresh devcontainer from the published feature block.
- Announce availability in release notes and include rollback note (pin to previous known-good feature tag).