Bounded, dual-world desktop control for agents
Agents already write code and run terminal commands with real autonomy — but they can't click a dialog or fill a form with any grounded, bounded discipline. amplifier-bundle-cua closes that gap as a clean-room, Amplifier-native bundle: tools, agents, and recipes, not a foreign runtime.
And it isn't a sketch — the evidence is next.
cua namespace, version 0.1.0 — tools + agents + recipesMichael J. Jabbour built the whole bundle in 41 commits over 5 days (2026-03-06 to 2026-03-10), merged through 3 pull requests. The public repo michaeljabbour/amplifier-bundle-cua ships with 147 passing tests.
So what does all that capability actually hang off of?
A single tool named cua exposes a fixed set of 12 desktop actions — observe the screen, then click, type, press keys, and scroll. Everything the argument leans on routes through this one surface.
First question: how does the agent actually see the desktop?
A single Observation carries the visual world — screenshot, screen geometry, cursor, windows — together with the semantic accessibility tree of roles, labels, and values. Neither is treated as secondary; both are co-equal, first-class inputs.
Seeing is half of it — now the discipline of acting.
A bounded observe-act-verify loop keeps action honest: Observe, Analyze, Plan, Act — exactly one atomic action — Verify by re-observing, then Decide. The agent never claims success without evidence.
But driving a real desktop this way carries real risk.
Capability alone isn't enough. An agent that assumes success — or hallucinates desktop state it can't actually see — can do real damage. Unbounded desktop control is a hazard, not a feature.
So the bundle layers safety in, deliberately.
Every action returns one of four normalized statuses. The bounded-task recipe gates both the plan and the result behind human approval, with a default budget of 20 actions and 2 retries per step. Detection fails fast — the macOS backend raises rather than silently returning fixture data.
Put it together and a plain sentence becomes a workflow.
A single plain sentence resolves into a fully observed, approval-gated, verified desktop workflow the agent actually drives — running on a real macOS backend (Quartz input, screencapture, AXUIElement accessibility) with a deterministic fixture backend for CI.
Status: v0.1.0 — working & tested (fixture + macOS)Data as of: HEAD 5f127bc, development window 2026-03-06 to 2026-03-10
Feature status: v0.1.0 — working and tested for fixture + macOS backends; Windows/Linux backends are stubs
Repository: michaeljabbour/amplifier-bundle-cua (public, default branch main). Cloned fresh from GitHub into /tmp/cua-src; not present locally under /home/ramparte/dev/ANext.
Research performed:
gh repo view michaeljabbour/amplifier-bundle-cua --json name,visibility,defaultBranchRef,isPrivate ; cat bundle.md (namespace cua, v0.1.0)git rev-list --count HEAD (41 commits)git log --reverse --format="%ai %h %s" (2026-03-06 → 2026-03-10)git log --format="%an <%ae>" | sort | uniq -c (Michael J. Jabbour, all 41)git log --oneline --merges (PR #1, #2, #3)uv run pytest tests/ -q (147 passed)read tool.py ; read models.py ; read backends/registry.py ; grep -c 'async def' backends/macos.pyGaps: macOS backend was not executed against a live desktop (no macOS host available); macOS claims are grounded in source (17 async methods, Quartz/screencapture/AXUIElement) and the passing mocked test suite. GitHub-side PR metadata (reviews, CI runs) was not queried; PR facts come from local merge commits.
Primary contributor: Michael J. Jabbour — sole author, all 41 commits (100%).