You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Declarative YAML manifests for composable VM provisioning. Loadouts define what tools, runtimes, AI providers, and AIWG frameworks get installed in a VM.
Quick Start
# Single-provider VM with Claude Code
./provision-vm.sh agent-01 --loadout profiles/claude-only.yaml --agentshare --start
# Two providers for cross-checking
./provision-vm.sh agent-02 --loadout profiles/dual-review.yaml --start
# Isolated security audit environment
./provision-vm.sh agent-03 --loadout profiles/security-audit.yaml --start
# Full suite - all 9 providers with the consumer framework bundle
./provision-vm.sh agent-04 --loadout profiles/full-suite.yaml --cpus 8 --memory 32G --start
Pre-Built Profiles
Per-Provider
Profile
AI Tools
AIWG Framework
Resources
claude-only
Claude Code
all consumer bundle -> claude
4 CPU, 8G
codex-only
Codex CLI
sdlc -> codex
4 CPU, 8G
copilot-only
Copilot CLI
sdlc -> copilot
4 CPU, 8G
Collaboration
Profile
AI Tools
AIWG Framework
Resources
dual-review
Claude + Codex
sdlc -> [claude, codex]
4 CPU, 12G
multi-provider
Claude + Codex + Copilot
sdlc -> [claude, codex, copilot]
6 CPU, 16G
full-suite
Claude Code + Aider + Codex + Copilot
all consumer framework bundle -> all 9 providers
8 CPU, 32G
Task-Focused
Profile
Purpose
Network
AIWG Framework
security-audit
Forensics/security analysis
isolated
forensics + sdlc
research-station
Deep research tasks
full
research + sdlc
sdlc-team
Collaborative SDLC development
full
sdlc + ops
browser-qa
Trusted-input browser QA (carbonyl + uinput + Xorg) — VM fallback when Docker hot-plug is unavailable (carbonyl-agent#120). Provisions a private carbonyl session mount at /home/agent/.local/share/carbonyl-agent/sessions; verify with scripts/validate-browser-qa.sh <vm-name> after provision.
full
none
automation-control
Orchestrator-driven TUI control blueprint with Observer-first workflow, Codex, ops/sdlc AIWG frameworks, and credential-free provider inventory helper.
full
ops + sdlc
Browser-QA Session Persistence
The browser-qa profile creates a per-VM host directory for carbonyl-agent session material:
The directory is mounted into the VM with the carbonylsessions virtiofs tag and is not deleted when a loadout is changed. Cookie/session files placed there should be mode 0600. The sandbox does not import, prepopulate, or transform cookie material; higher-level tooling owns that workflow.
browser-qa declares readiness.setup_timeout_seconds: 1200 because its setup path installs the browser automation stack and can exceed the generic 300 second profile setup budget on loaded hosts. Operators can override the setup wait for any loadout with AGENTIC_VM_SETUP_WAIT_SECONDS or LOADOUT_SETUP_WAIT_SECONDS. vm-info.json is written before readiness waits begin, so timeout diagnostics still include the VM IP, storage path, loadout profile, and generated SSH key path.
Host IOMMU enabled (intel_iommu=on or amd_iommu=on in kernel cmdline)
GPU bound to vfio-pci driver on the host
PCI device ID from lspci -nn (e.g., 0000:01:00.0)
What Happens
The loadout generator writes a gpu-config sidecar file
provision-vm.sh adds a <hostdev> PCI passthrough element to the libvirt XML
Cloud-init installs GPU drivers via ubuntu-drivers install --gpgpu
The GPU is exclusively owned by the VM (not shared with host)
Example
# Security audit with GPU for accelerated hash cracking
./provision-vm.sh agent-01 --loadout profiles/security-audit.yaml --start
# (edit security-audit.yaml to set resources.gpu.enabled: true and device)
AIWG Provider Matrix
Provider
Native Features
Emulated Features
claude-code
cron, agent_teams, tasks, MCP
behaviors, mission_control
codex
(none)
all via aiwg-mc
copilot
(none)
all via aiwg-mc
factory
(none)
all via aiwg-mc
cursor
(none)
all via aiwg-mc
opencode
(none)
all via aiwg-mc
warp
(none)
all via aiwg-mc
windsurf
(none)
all via aiwg-mc
openclaw
MCP, behaviors
cron, tasks via aiwg-mc
AIWG Frameworks
Framework
Purpose
all
Reserved bundle for all consumer-facing frameworks: sdlc, ops, forensics, and research
aiwg-dev
Reserved contributor tooling bundle; opt in explicitly, not included in all
sdlc
Software development lifecycle workflows
ops
Operations and infrastructure workflows
forensics
Digital forensics and incident response workflows
research
Research synthesis and knowledge management workflows
# Paths are relative to images/qemu/loadouts/
./provision-vm.sh agent-01 --loadout profiles/claude-only.yaml # correct
./provision-vm.sh agent-01 --loadout /absolute/path/to/manifest.yaml # also works
Package conflicts
The resolver deduplicates string arrays. If two layers specify the same package, it appears once.
Debugging resolution
# See the fully resolved manifestcd images/qemu/loadouts
./resolve-manifest.sh profiles/full-suite.yaml