Vercel Labs publicó agent-desktop el 30 de octubre de 2026: una herramienta de código abierto para que agentes de IA manejen aplicaciones de escritorio en macOS, Windows y Linux. La versión 1.0.2, con licencia Apache-2.0, lee la interfaz mediante las APIs de accesibilidad del sistema operativo, en lugar de interpretarla a partir de capturas de pantalla.
Un mando para agentes, no otro agente más
agent-desktop es una CLI escrita en Rust y una biblioteca C que otro agente puede invocar para observar y operar aplicaciones de escritorio. No incluye un modelo de lenguaje ni una interfaz gráfica, y tampoco decide qué hacer: el ciclo de observar, actuar y comprobar queda en manos del agente que la utiliza.
Cada comando devuelve un único envoltorio JSON y termina. El resultado se puede integrar en flujos existentes sin montar un servicio permanente ni añadir una interfaz propia. Cualquier agente capaz de ejecutar comandos de shell puede, en principio, usar la herramienta. El proyecto declara 60 nombres de comando, de los cuales 56 están operativos; esa cifra da una idea del alcance, pero no indica por sí sola cómo funciona cada operación en aplicaciones reales.
En vez de recibir una imagen que debe interpretar y convertir en coordenadas, el agente obtiene una representación estructurada de la interfaz. Los elementos accionables tienen referencias sobre las que puede solicitar una acción. Este enfoque no depende de un proveedor de modelos, aunque la calidad de las decisiones sigue dependiendo del agente y la compatibilidad, de cuánto exponga cada aplicación mediante el sistema de accesibilidad.
Árboles de accesibilidad, no adivinanzas con píxeles
La CLI o la biblioteca C llama a agent-desktop-core, que llega al sistema operativo a través de una interfaz llamada PlatformAdapter. Cada implementación se comunica con la API nativa correspondiente: AX en macOS, UI Automation en Windows y AT-SPI en Linux. El núcleo no importa directamente los paquetes de plataforma, y cada binario se compila para controlar un sistema concreto.
El árbol de accesibilidad describe los controles de una aplicación: qué elementos existen, de qué tipo son y cuáles pueden recibir acciones. Así, el agente no necesita inferir que un rectángulo gris probablemente sea un botón, como ocurre con el control basado en capturas. Tampoco hace falta una GPU ni un modelo de visión. La herramienta requiere una CPU y una instalación compatible: macOS 13 o posterior, Windows 10 versión 1809 o posterior —también Windows Server 2019 en adelante— y Ubuntu 24.04 o posterior, en x64 o ARM64.
Este método puede ser más estable que pulsar coordenadas, pero depende de que la aplicación exponga bien su interfaz. Si omite información o presenta controles inaccesibles, agent-desktop no puede completar lo que falta; algunas aplicaciones sencillamente no ofrecen un árbol útil. En esos casos, la visión por pantalla conserva una ventaja, aunque también tenga errores y costes. El uso de APIs nativas evita que cada interacción requiera procesar una imagen, a cambio de asumir las particularidades de cada sistema y aplicación.
Referencias que caducan: una virtud, no un fallo
En cada instantánea, los elementos reciben referencias calificadas, como @s8f3k2p9:e8, que incluyen el identificador de la instantánea. Si se intenta usar una referencia incompleta —por ejemplo, @e8—, la herramienta responde con INVALID_ARGS en lugar de adivinar el objetivo.
La interfaz puede cambiar cuando aparece un diálogo, se actualiza una lista o se reorganiza una ventana. Si una referencia ya no corresponde a la vista actual, la acción devuelve STALE_REF o AMBIGUOUS_TARGET. El agente debe tomar una instantánea nueva y resolver de nuevo el objetivo, en vez de actuar sobre un elemento que quizá se haya movido.
Los errores indican si es seguro reintentar. Así, el agente puede distinguir entre una operación que puede repetir y otra que exige observar de nuevo: repetir un clic al seleccionar una pestaña puede ser inocuo, pero hacerlo al enviar un formulario o confirmar una compra, no. Esto no impide todos los errores del agente, pero evita que la herramienta resuelva referencias obsoletas por aproximación.
Las acciones sobre referencias se ejecutan mediante la API de accesibilidad y, por defecto, no mueven el cursor ni roban el foco. El usuario puede seguir usando el equipo mientras el agente interactúa en segundo plano. Si hace falta entrada física, está disponible la opción global --headed. Antes de actuar, la herramienta espera automáticamente hasta 5.000 milisegundos a que el elemento esté visible, habilitado y estable.
Menos tokens en pantallas densas, con una advertencia grande
Aplicaciones como Slack, VS Code o Notion pueden exponer miles de nodos de accesibilidad. Para evitar volcar el árbol completo en cada consulta, agent-desktop ofrece --skeleton: una instantánea reducida que lee tres niveles de profundidad. Cuando encuentra contenedores recortados, indica cuántos hijos tienen y proporciona una referencia para explorar esa zona con snapshot --root, dentro de la misma instantánea.
Vercel Labs comunica una reducción del 78 % al 96 % en tokens frente a volcar el árbol completo en Slack, VS Code y Notion. En Apple Maps, su responsable afirma que el coste por observación bajó de 3.811 tokens a 273. Una tarea simulada de 52 pasos habría pasado de 198.000 a 31.000 tokens.
Son mediciones comunicadas por el propio proyecto, no resultados de un benchmark independiente de uso de ordenadores. No permiten concluir que agent-desktop sea más rápido o preciso en general, ni que todas las aplicaciones vayan a producir ahorros parecidos. El recorte depende de la densidad del árbol, del contexto que necesite el agente y de si puede recorrer la interfaz por partes sin perder información relevante.
La documentación de Anthropic estima que una captura puede costar aproximadamente entre 1.000 y 1.800 tokens de entrada, y que la definición de su conjunto de herramientas añade unos 4.500 tokens por solicitud. La herramienta de OpenAI también ofrece acciones como hacer clic, escribir o desplazarse, ejecutadas por el código del usuario. agent-desktop devuelve estructura en vez de imágenes y no exige un modelo específico. Para comparar el coste total y la tasa de éxito en tareas equivalentes, todavía hacen falta pruebas independientes.
Instalarlo es fácil; hacer que resulte útil es otra historia
La instalación recomendada es npm install -g agent-desktop. También hay paquetes para Bun, Yarn y pnpm, con binarios nativos para x64 y ARM64. En macOS hay que conceder permiso de Accesibilidad; el comando agent-desktop permissions --guide ayuda con ese paso. Windows no requiere una autorización adicional para aplicaciones que corran al mismo nivel de integridad que el terminal. Linux necesita una sesión gráfica y at-spi2-core.
El proyecto incluye documentación para que el agente aprenda a usar las operaciones disponibles, que se obtiene con agent-desktop skills get desktop; también hay una skill en skills.sh. La biblioteca C permite que anfitriones escritos en Python, Swift, Go, Ruby o Node llamen a la herramienta en el mismo proceso. Para trabajar con contenido web dentro de Electron, la opción --cdp abre un puerto de DevTools que permite usar agent-browser.
Este conjunto de opciones puede servir a equipos con agentes internos que quieran automatizar aplicaciones nativas sin depender de un servicio de visión concreto. La licencia Apache-2.0 permite inspeccionar, modificar y distribuir el código, aunque integrarlo y mantenerlo sigue requiriendo pruebas y trabajo para resolver las particularidades de cada aplicación.
Microsoft UFO² también usa UI Automation, pero es un marco de agente completo para Windows, con un enfoque híbrido que combina UIA y visión. agent-desktop, en cambio, es una pieza de infraestructura multiplataforma y no incluye modelo. No son herramientas de la misma categoría. Claude y OpenAI trabajan mediante herramientas de uso del ordenador basadas en capturas o acciones visuales; Vercel ofrece una capa de acceso al árbol nativo.
La arquitectura de agent-desktop es coherente, la ejecución sin foco evita interferir con el uso normal del equipo y el recorrido por esqueletos podría reducir el contexto necesario. Su utilidad práctica dependerá de cómo se comporte en aplicaciones distintas y de los fallos que aparezcan en pruebas independientes, especialmente cuando el árbol de accesibilidad de una aplicación sea incompleto o deficiente.
