Repository navigation
Validate desktop tool use in Ace and track known gaps #427
Copy link
Copy link
Open
Description
Validate the desktop tools as Ace ships them, and keep the known gaps in one place. The engine and its roadmap live in githubnext/desktop-tools (the former meta is githubnext/desktop-tools#11). This issue covers only what Ace owns: the pinned package, the channel setting, sharing, and the agent's experience in real runs.
Done when: every check below has passed in a signed Canary with a real provider run, with that Canary's version noted, and every gap is fixed or explicitly accepted.
Validation
- An agent drives TextEdit, then screenshots and reads its window. The screenshots stream to a teammate. (Study scenario 20, 0.0.36.)
- The agent fills a Save sheet's name, picks a folder and saves (Desktop tools can't operate a Save sheet: target could not be revalidated before mutation #378 via fix(desktop): resolve Save sheet controls to their parent window #382 and desktop-tools#8, 20b, 0.0.38).
-
desktop_inserttypes into a Save sheet's filename field (desktop_insert can't type into a Save sheet's filename field #390 via fix: pin desktop-tools with keyboard input for sheet fields #402 and desktop-tools#9, 20c). - Turning desktop tools off refuses every
desktop_*call. The refusal is clear, and turning them back on works without restarting the channel. (Study D2, 0.0.46.50.) - A teammate's invocation with sharing on reaches desktop tools as the owner allowed. With sharing off it is refused. The sharing text matches what happens.
- Stopping a run, or losing the connection, during a desktop action settles it as completed, refused or unknown, and the action isn't replayed after the worker reopens. (Study D3b/D3c, 0.0.46.50.)
- Two channels with desktop tools on at the same time don't act on each other's targets. (Study D4 and R1, 0.0.46.51 and .52. Agents can't yet tell whose new window is whose: Say which windows a menu command, launch or open created desktop-tools#17.)
- Peekaboo patch tests pass at the pinned commit (desktop-tools#10, Ace fix: pin desktop-tools with passing Peekaboo patch tests #425). Every pin bump re-runs them. (8801b31 in full; 4618b33 adds one bridge patch, and its bridge tests pass.)
Known gaps
- Shell capture: with desktop tools off, the shell can still capture the screen with Ace's macOS permissions. Isolating that is not planned (Turning desktop tools off doesn't stop shell screen capture #379). The wording in fix(app): say desktop tools off still leaves shell with Ace's macOS permissions #380 and fix(app): mention Ace's macOS permissions in the sharing tooltip #389 documents it.
- Background key presses:
desktop_keycan't verify a background Cmd+W. The recovery hint suggests--foreground, which the tool doesn't expose ([Meta] Complete native computer use in Ace desktop-tools#11, comment from October 7). - Engine gaps, tracked in desktop-tools:
- focus and paste in WebKit (Focus and paste into WebKit composers with native desktop tools desktop-tools#5);
- temporary clipboard paste (Add temporary clipboard paste and lifecycle validation desktop-tools#3);
- pointer delivery and multiple displays (Finish native pointer delivery and validation desktop-tools#2);
- Chrome's Accessibility titles (Inspect Chrome windows with Accessibility when the page title changes desktop-tools#6);
- why inspection is unavailable (Explain native inspection failure when the desktop or target window becomes unavailable desktop-tools#1);
- window, menu and dialog workflows, including Ace's own Open Folder picker (Finish native window, menu, and dialog workflows desktop-tools#4);
- patch drift in dev builds (Expose native patch drift and cache recovery in desktop dev builds desktop-tools#7).
- Not available everywhere: cloud compute channels have no desktop, so their toggle is hidden (fix(app): describe cloud compute channels' container workspace #422). Hosted channels use the workspace host's desktop. Operating a teammate's desktop is deferred (Operate a teammate host's desktop from an Ace channel #202).
- Upstream test failures: two Peekaboo tests fail on unpatched 4.8.0 as well (
native/patches/README.mdin desktop-tools).
Tracked by #5.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
fix: say why a key has no receiver and point to the menu (#14)
fix: name the unmatched menu title and its siblings (#15)
fix(channel): pin desktop-tools with clearer menu and key refusals (#441
fix: refuse file URLs whose query or fragment would be dropped (#20)
fix: re-read a restored window until the Dock animation ends (#22)
fix: inspect windows whose title changes during the read (#26)
iamnbutler commentedon Oct 15, 2026
Desktop tools study, single player (2026-10-15)
Setup. One Mac, Ace Canary, model
anthropic/claude-opus-5-5, channelsdtanddt2in a sandbox project.Validation results
desktop_*call; on again without restartkill -9of the worker mid-insert →unknown, the agent inspected and didn't retype)Also passed:
Shipped during the study
Open findings
Stretch: Claude Code and Codex on desktop-tools
Both work today through the MCP server in desktop-tools#12, pointed at Ace's client and socket.
That only works because of #24. My recommendation:
Details are on desktop-tools#12.
Next steps
iamnbutler commentedon Oct 16, 2026
Re-checks on Canary 0.0.46.53 (68d9450, desktop-tools 73c0513):
@githubnext/desktop-tools/tools, which the new MCP server and Desktop Tools.app (Ship a signed Desktop Tools app for agents outside Ace desktop-tools#27) also use.