| name | Electron |
| description | Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) via Chrome DevTools Protocol. USE WHEN the user needs to interact with an Electron desktop app, automate a native app, connect to a running Electron app, or test an Electron application. |
| allowed-tools | Bash(agent-browser:*) |
Automate any Electron desktop app using agent-browser. Electron apps are built on Chromium and expose a Chrome DevTools Protocol (CDP) port that agent-browser can connect to, enabling the same snapshot-interact workflow used for web pages.
Core Workflow
- Launch the Electron app with remote debugging enabled
- Connect agent-browser to the CDP port
- Snapshot to discover interactive elements
- Interact using element refs
- Re-snapshot after navigation or state changes
slack --remote-debugging-port=9222
agent-browser connect 9222
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot slack-desktop.png
Launching Electron Apps with CDP
Every Electron app supports --remote-debugging-port since it is built into Chromium.
Important: If the app is already running, quit it first, then relaunch with the flag. The --remote-debugging-port flag must be present at launch time.
Linux
slack --remote-debugging-port=9222
code --remote-debugging-port=9223
discord --remote-debugging-port=9224
spotify --remote-debugging-port=9225
macOS
open -a "Slack" --args --remote-debugging-port=9222
open -a "Visual Studio Code" --args --remote-debugging-port=9223
open -a "Discord" --args --remote-debugging-port=9224
open -a "Figma" --args --remote-debugging-port=9225
open -a "Notion" --args --remote-debugging-port=9226
open -a "Spotify" --args --remote-debugging-port=9227
Connecting
agent-browser connect 9222
agent-browser --cdp 9222 snapshot -i
agent-browser --auto-connect snapshot -i
Tab Management
Electron apps often have multiple windows or webviews. Use tab commands to list and switch between them:
agent-browser tab
agent-browser tab 2
agent-browser tab --url "*settings*"
Webview Support
Electron <webview> elements are automatically discovered when using --native mode. Webviews appear as separate targets in the tab list:
agent-browser --native connect 9222
agent-browser tab
agent-browser tab 1
agent-browser snapshot -i
Note: Webview support requires --native mode. The Playwright-based mode does not support webview targets.
Common Patterns
Inspect and Navigate an App
slack --remote-debugging-port=9222
sleep 3
agent-browser connect 9222
agent-browser snapshot -i
agent-browser click @e10
agent-browser snapshot -i
Take Screenshots of Desktop Apps
agent-browser connect 9222
agent-browser screenshot app-state.png
agent-browser screenshot --full full-app.png
agent-browser screenshot --annotate annotated-app.png
Extract Data from a Desktop App
agent-browser connect 9222
agent-browser snapshot -i
agent-browser get text @e5
agent-browser snapshot --json > app-state.json
Fill Forms in Desktop Apps
agent-browser connect 9222
agent-browser snapshot -i
agent-browser fill @e3 "search query"
agent-browser press Enter
agent-browser wait 1000
agent-browser snapshot -i
Run Multiple Apps Simultaneously
Use named sessions to control multiple Electron apps at the same time:
agent-browser --session slack connect 9222
agent-browser --session vscode connect 9223
agent-browser --session slack snapshot -i
agent-browser --session vscode snapshot -i
Color Scheme
Playwright overrides the color scheme to light by default when connecting via CDP. To preserve dark mode:
agent-browser connect 9222
agent-browser --color-scheme dark snapshot -i
Or set it globally for the session:
AGENT_BROWSER_COLOR_SCHEME=dark agent-browser connect 9222
Troubleshooting
| Problem | Solution |
|---|
| "Connection refused" | Ensure the app was launched with --remote-debugging-port=NNNN |
| App running but connect fails | Quit and relaunch with the flag; wait a few seconds after launch (sleep 3) |
| Port in use | Check with lsof -i :9222; use a different port number |
| Elements missing from snapshot | Use agent-browser tab to list targets; app may use multiple webviews |
| Cannot type in input fields | Try agent-browser keyboard type "text" or agent-browser keyboard inserttext "text" for custom inputs |
Supported Apps
Any app built on Electron works, including:
- Communication: Slack, Discord, Microsoft Teams, Signal, Telegram Desktop
- Development: VS Code, GitHub Desktop, Postman, Insomnia
- Design: Figma, Notion, Obsidian
- Media: Spotify, Tidal
- Productivity: Todoist, Linear, 1Password