External Electron App Automation
cashew-labs/libretto
Drives desktop Electron apps already installed on your machine, such as Slack, Discord or VS Code, by relaunching them with a debugging port and using the Libretto CLI.
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
$ npx skills add vercel-labs/agent-browser --skill electron -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vercel-labs/agent-browser electron --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skill-data/electron .claude/skills/electron && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .claude/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electronType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vercel-labs/agent-browser --skill electron -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vercel-labs/agent-browser electron --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skill-data/electron .agents/skills/electron && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .agents/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel-labs/agent-browser --skill electron -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vercel-labs/agent-browser electron --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skill-data/electron .cursor/skills/electron && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .cursor/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vercel-labs/agent-browser.git --path skill-data/electron--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vercel-labs/agent-browser --skill electron -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vercel-labs/agent-browser electron --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skill-data/electron .gemini/skills/electron && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .gemini/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vercel-labs/agent-browser electronInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vercel-labs/agent-browser --skill electron -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .github/skills && cp -r skills-src/skill-data/electron .github/skills/electron && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .github/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vercel-labs/agent-browser --skill electron -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vercel-labs/agent-browser electron --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vercel-labs/agent-browser.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skill-data/electron .opencode/skills/electron && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "electron" agent skill from https://github.com/vercel-labs/agent-browser/tree/main/skill-data/electron into .opencode/skills/electron/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "electron", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
electronAutomates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
Because Electron apps are built on Chromium, any of them can be started with a remote debugging port, and agent-browser can then connect to it and use the same snapshot-and-interact loop as for web pages. The workflow is: launch the app with --remote-debugging-port, connect, take a snapshot to find interactive elements, act through element refs and snapshot again after state changes.
Launch commands are given for macOS, Linux and Windows. If the app is already running, it must be quit first, because the flag only works at launch time. Multiple windows and webviews appear as separate targets that tab commands can list and switch between, and webview support works through a raw CDP connection. Common patterns include inspecting an app and taking screenshots of desktop apps. The allowed tools are limited to agent-browser commands.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0207911. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(agent-browser:*)Bash(npx agent-browser:*)From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Electron App Automation loads about 1.7k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 416 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vercel-labs/agent-browser at commit 0207911, republished under its Apache-2.0 licence (© vercel-labs). 416 words, ~1,682 tokens.
.claude/skills/electron/SKILL.md (or your agent's skills folder).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.
# Launch an Electron app with remote debugging
open -a "Slack" --args --remote-debugging-port=9222
# Connect agent-browser to the app
agent-browser connect 9222
# Standard workflow from here
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot slack-desktop.pngEvery Electron app supports the --remote-debugging-port flag since it's built into Chromium.
# 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=9227slack --remote-debugging-port=9222
code --remote-debugging-port=9223
discord --remote-debugging-port=9224"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=9223Important: 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.
# Connect to a specific port
agent-browser connect 9222
# Or use --cdp on each command
agent-browser --cdp 9222 snapshot -i
# Auto-discover a running Chromium-based app
agent-browser --auto-connect snapshot -iAfter connect, all subsequent commands target the connected app without needing --cdp.
Electron apps often have multiple windows or webviews. Use tab commands to list and switch between them:
# List all available targets (windows, webviews, etc.)
agent-browser tab
# Switch to a specific tab by index
agent-browser tab 2
# Switch by URL pattern
agent-browser tab --url "*settings*"Electron <webview> elements are automatically discovered and can be controlled like regular pages. Webviews appear as separate targets in the tab list with type: "webview":
# Connect to running Electron app
agent-browser connect 9222
# List targets -- webviews appear alongside pages
agent-browser tab
# Example output:
# 0: [page] Slack - Main Window https://app.slack.com/
# 1: [webview] Embedded Content https://example.com/widget
# Switch to a webview
agent-browser tab 1
# Interact with the webview normally
agent-browser snapshot -i
agent-browser click @e3
agent-browser screenshot webview.pngNote: Webview support works via raw CDP connection.
open -a "Slack" --args --remote-debugging-port=9222
sleep 3 # Wait for app to start
agent-browser connect 9222
agent-browser snapshot -i
# Read the snapshot output to identify UI elements
agent-browser click @e10 # Navigate to a section
agent-browser snapshot -i # Re-snapshot after navigationagent-browser connect 9222
agent-browser screenshot app-state.png
agent-browser screenshot --full full-app.png
agent-browser screenshot --annotate annotated-app.pngagent-browser connect 9222
agent-browser snapshot -i
agent-browser get text @e5
agent-browser snapshot --json > app-state.jsonagent-browser connect 9222
agent-browser snapshot -i
agent-browser fill @e3 "search query"
agent-browser press Enter
agent-browser wait 1000
agent-browser snapshot -iUse named sessions to control multiple Electron apps at the same time:
# Connect to Slack
agent-browser --session slack connect 9222
# Connect to VS Code
agent-browser --session vscode connect 9223
# Interact with each independently
agent-browser --session slack snapshot -i
agent-browser --session vscode snapshot -iThe default color scheme when connecting via CDP may be light. To preserve dark mode:
agent-browser connect 9222
agent-browser --color-scheme dark snapshot -iOr set it globally:
AGENT_BROWSER_COLOR_SCHEME=dark agent-browser connect 9222--remote-debugging-port=NNNNlsof -i :9222sleep 3)agent-browser tab to list targets and switch to the right oneagent-browser keyboard type "text" to type at the current focus without a selectoragent-browser keyboard inserttext "text" to bypass key eventsAny app built on Electron works, including:
If an app is built with Electron, it supports --remote-debugging-port and can be automated with agent-browser.
© vercel-labs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skill-data/electron of vercel-labs/agent-browser.
Open the folder on GitHubat commit 0207911
We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 5 other GitHub owners. This page covers the copy in vercel-labs/agent-browser, which our catalogue first saw on October 7, 2026.
Electron App Automation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Electron App Automation this skillvercel-labs/agent-browser | 44k | 5 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| External Electron App Automationcashew-labs/libretto | 904 | — | ~967 | Automated safety check: Pass | MIT | |
| Actionbook Browser Action Manualssmallnest/goclaw | 598 | 1 repos | ~4.1k | Automated safety check: Warn | MIT | |
| Electron Devtools Testingankitvgupta/exo | 496 | — | ~2.4k | Automated safety check: Pass | Custom licence | |
| Flow Next Drivegmickel/flow-next | 707 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Agent Browser Electronmoeru-ai/airi | 50k | — | ~3.1k | Automated safety check: Pass | MIT |
cashew-labs/libretto
Drives desktop Electron apps already installed on your machine, such as Slack, Discord or VS Code, by relaunching them with a debugging port and using the Libretto CLI.
smallnest/goclaw
Looks up action manuals with verified selectors for multi-step website tasks, then drives the browser with the actionbook CLI in a dedicated or an existing Chrome session.
ankitvgupta/exo
Test the Electron app interactively using Chrome DevTools Protocol.
gmickel/flow-next
Drive any UI surface like a real user - a web app, a Chromium-backed desktop app (Electron / WebView2, reached over CDP), or a genuinely native app (macOS AppKit/SwiftUI, or a non-CDP webview)…
moeru-ai/airi
A skill your agent uses when Codex needs to inspect, debug, or automate an Electron app through agent-browser and Chrome DevTools Protocol, especially when the app has multiple BrowserWindow…
different-ai/openwork
Attaches OpenCode browser tools to the OpenWork Electron dev app through CDP to explore its UI, send a composer task and debug, not to give test verdicts.
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
vercel-labs/agent-browser
Explores a web app with the agent-browser CLI to find bugs and UX problems, then writes a report with screenshots, repro videos and step-by-step reproduction for each issue.
vercel-labs/agent-browser
Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.
vercel-labs/agent-browser
Core usage guide for the agent-browser CLI: the snapshot-and-ref workflow for navigating, clicking, filling forms, extracting data and running parallel sessions.
vercel-labs/agent-browser
Records a site's browser traffic into a HAR file, then builds a standalone client or CLI that calls its internal endpoints directly with no browser.
vercel-labs/agent-browser
Builds and validates experimental WebMCP tools that expose a web page's real workflows to agents, with a manifest, init script and evals compared against accessibility-tree automation.
Categories
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port. Because Electron apps are built on Chromium, any of them can be started with a remote debugging port, and agent-browser can then connect to it and use the same snapshot-and-interact loop as for web pages. The workflow is: launch the app with --remote-debugging-port, connect, take a snapshot to find interactive elements, act through element refs and snapshot again after state changes.
Electron App Automation fits situations like: automating a desktop app built on Electron; testing an Electron application from the outside; connecting to an already-open app to read or click through it; capturing screenshots of a desktop app's state.
Run `npx skills add vercel-labs/agent-browser --skill electron -a claude-code`. Or copy the skill folder (skill-data/electron in vercel-labs/agent-browser) into .claude/skills/electron in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vercel-labs/agent-browser --skill electron -a codex`. Or copy the skill folder (skill-data/electron in vercel-labs/agent-browser) into .agents/skills/electron in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vercel-labs/agent-browser --skill electron -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/electron, .gemini/skills/electron, .github/skills/electron and .opencode/skills/electron in your project.
SKILL.md names no scripts, command-line tools or credentials: Electron App Automation is instructions for the agent only. Our summary lists: agent-browser; An Electron app launched with --remote-debugging-port. Its frontmatter pre-approves these tools: Bash(agent-browser:*), Bash(npx agent-browser:*).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Electron App Automation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Electron App Automation: External Electron App Automation (cashew-labs/libretto, 904 stars), Actionbook Browser Action Manuals (smallnest/goclaw, 598 stars), Electron Devtools Testing (ankitvgupta/exo, 496 stars) and Flow Next Drive (gmickel/flow-next, 707 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vercel-labs (a GitHub organization, an official publisher) maintains it in vercel-labs/agent-browser, which has 43,634 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 8, 2026.
Source: vercel-labs/agent-browser on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.