agent-desktop

Vercel Labs' Apache-2.0 Rust CLI giving coding agents desktop app control through OS accessibility trees instead of screenshots.

Vercel · Open-source momentum unrelated to any model · open-source

Published in Feed

Overview

agent-desktop is an open-source tool from Vercel Labs, announced October 31, 2026 by Chris Tate, that gives coding agents computer use on native desktop apps. It reads each operating system's accessibility tree (AX API on macOS, UI Automation on Windows, AT-SPI on Linux) and returns a JSON snapshot with a reference for every element; the agent acts on those references and re-snapshots to confirm. It is a Rust command-line tool with a C library, includes no language model, and works with agents that can run shell commands such as Claude Code or Codex. Requirements are macOS 13+, Windows 10 1809+ or Ubuntu 24.04+; install with npm install -g agent-desktop. It cannot drive apps without an accessibility tree and is not meant for web pages, where Vercel points to agent-browser.

This is a sourced directory entry. Features and capabilities are reported in the linked sources; this entry does not document independent Aymorphic testing.

Key features

  • Accessibility-tree snapshots as JSON with element references, not screenshots
  • Background actions by default without moving the real mouse; headed mode for real input
  • Rust CLI plus C library, no bundled model
  • macOS 13+, Windows 10 1809+, Ubuntu 24.04+ on x64 and ARM64
  • Per-subagent overlay cursors in multi-agent sessions

Use cases

  • Letting Claude Code or Codex operate native desktop apps
  • Automating GUI workflows that have no API
  • Testing desktop applications with agent-driven scripts

Pricing

Free and open source under Apache 2.0.

Pricing reflects the source record and may change. Confirm current terms with the provider.

Dates and sources

Released
31 Oct 2026
Record updated
2 Nov 2026
Record last checked
2 Nov 2026

Explore the Feed

Other entries filed under open-source momentum unrelated to any model; inclusion does not imply equivalent features.

Browse the Feed