Automatización de aplicaciones Electron
Automatiza cualquier aplicación de escritorio Electron usando agent-browser. Las aplicaciones Electron están construidas sobre Chromium y exponen un puerto del Protocolo de Herramientas para Desarrolladores de Chrome (CDP) al que agent-browser puede conectarse, permitiendo el mismo flujo de trabajo de instantánea e interacción utilizado para páginas web.
Flujo de trabajo principal
- Inicia la aplicación Electron con la depuración remota habilitada
- Conecta agent-browser al puerto CDP
- Toma una instantánea para descubrir elementos interactivos
- Interactúa usando referencias de elementos
- Vuelve a tomar instantánea después de navegación o cambios de estado
# Inicia una aplicación Electron con depuración remota
open -a "Slack" --args --remote-debugging-port=9222
# Conecta agent-browser a la aplicación
agent-browser connect 9222
# Flujo de trabajo estándar desde aquí
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot slack-desktop.png
Iniciar aplicaciones Electron con CDP
Todas las aplicaciones Electron soportan el flag --remote-debugging-port, ya que está integrado en Chromium.
macOS
# Slack
open -a "Slack" --args --remote-debugging-port=9222
# VS Code
open -a "Visual Studio Code" --args --remote-debugging-port=9223
# Discord
open -a "Discord" --args --remote-debugging-port=9224
# Figma
open -a "Figma" --args --remote-debugging-port=9225
# Notion
open -a "Notion" --args --remote-debugging-port=9226
# Spotify
open -a "Spotify" --args --remote-debugging-port=9227
Linux
slack --remote-debugging-port=9222
code --remote-debugging-port=9223
discord --remote-debugging-port=9224
Windows
"C:\Users\%USERNAME%\AppData\Local\slack\slack.exe" --remote-debugging-port=9222
"C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code\Code.exe" --remote-debugging-port=9223
Importante: Si la aplicación ya está en ejecución, ciérrala primero y luego relánzala con el flag. El flag --remote-debugging-port debe estar presente al momento del lanzamiento.
Conexión
# Conecta a un puerto específico
agent-browser connect 9222
# O usa --cdp en cada comando
agent-browser --cdp 9222 snapshot -i
# Descubre automáticamente una aplicación basada en Chromium en ejecución
agent-browser --auto-connect snapshot -i
Después de connect, todos los comandos subsiguientes apuntan a la aplicación conectada sin necesidad de --cdp.
Gestión de pestañas
Las aplicaciones Electron a menudo tienen múltiples ventanas o webviews. Usa los comandos de pestañas para listar y cambiar entre ellas:
# Lista todos los objetivos disponibles (ventanas, webviews, etc.)
agent-browser tab
# Cambia a una pestaña específica por índice
agent-browser tab 2
# Cambia por patrón de URL
agent-browser tab --url "*settings*"
Soporte para Webviews
Los elementos <webview> de Electron se descubren automáticamente y pueden controlarse como páginas normales. Los webviews aparecen como objetivos separados en la lista de pestañas con type: "webview":
# Conecta a la aplicación Electron en ejecución
agent-browser connect 9222
# Lista objetivos – los webviews aparecen junto a las páginas
agent-browser tab
# Ejemplo de salida:
# 0: [page] Slack - Main Window https://app.slack.com/
# 1: [webview] Contenido incrustado https://example.com/widget
# Cambia a un webview
agent-browser tab 1
# Interactúa con el webview normalmente
agent-browser snapshot -i
agent-browser click @e3
agent-browser screenshot webview.png
Nota: El soporte para webviews funciona a través de la conexión CDP directa.
Patrones comunes
Inspeccionar y navegar en una aplicación
open -a "Slack" --args --remote-debugging-port=9222
sleep 3 # Espera a que la aplicación se inicie
agent-browser connect 9222
agent-browser snapshot -i
# Lee la salida de la instantánea para identificar elementos de la interfaz
agent-browser click @e10 # Navega a una sección
agent-browser snapshot -i # Vuelve a tomar instantánea después de la navegación
Tomar capturas de pantalla de aplicaciones de escritorio
agent-browser connect 9222
agent-browser screenshot app-state.png
agent-browser screenshot --full full-app.png
agent-browser screenshot --annotate annotated-app.png
Extraer datos de una aplicación de escritorio
agent-browser connect 9222
agent-browser snapshot -i
agent-browser get text @e5
agent-browser snapshot --json > app-state.json
Rellenar formularios en aplicaciones de escritorio
agent-browser connect 9222
agent-browser snapshot -i
agent-browser fill @e3 "consulta de búsqueda"
agent-browser press Enter
agent-browser wait 1000
agent-browser snapshot -i
Ejecutar múltiples aplicaciones simultáneamente
Usa sesiones nombradas para controlar varias aplicaciones Electron al mismo tiempo:
# Conecta a Slack
agent-browser --session slack connect 9222
# Conecta a VS Code
agent-browser --session vscode connect 9223
# Interactúa con cada una de forma independiente
agent-browser --session slack snapshot -i
agent-browser --session vscode snapshot -i
Esquema de color
El esquema de color predeterminado al conectarse vía CDP puede ser light. Para conservar el modo oscuro:
agent-browser connect 9222
agent-browser --color-scheme dark snapshot -i
O establécela globalmente:
AGENT_BROWSER_COLOR_SCHEME=dark agent-browser connect 9222
Solución de problemas
"Conexión rechazada" o "No se puede conectar"
- Asegúrate de que la aplicación se haya iniciado con
--remote-debugging-port=NNNN - Si la aplicación ya estaba en ejecución, ciérrala y relánzala con el flag
- Verifica que el puerto no esté en uso por otro proceso:
lsof -i :9222
La aplicación se inicia pero la conexión falla
- Espera unos segundos después del lanzamiento antes de conectar (
sleep 3) - Algunas aplicaciones tardan en inicializar su webview
Los elementos no aparecen en la instantánea
- La aplicación puede usar múltiples webviews. Usa
agent-browser tabpara listar objetivos y cambiar al correcto
No se puede escribir en campos de entrada
- Prueba con
agent-browser keyboard type "texto"para escribir en el foco actual sin un selector - Algunas aplicaciones Electron usan componentes de entrada personalizados; usa
agent-browser keyboard inserttext "texto"para omitir los eventos de teclado
Aplicaciones compatibles
Cualquier aplicación construida con Electron funciona, incluyendo:
- Comunicación: Slack, Discord, Microsoft Teams, Signal, Telegram Desktop
- Desarrollo: VS Code, GitHub Desktop, Postman, Insomnia
- Diseño: Figma, Notion, Obsidian
- Medios: Spotify, Tidal
- Productividad: Todoist, Linear, 1Password
Si una aplicación está construida con Electron, soporta --remote-debugging-port y puede automatizarse con agent-browser.