From ottonomous
Automates browsers for web apps and Electron desktop apps: navigation, screenshots, ARIA snapshots, form interactions, data extraction, UI verification. Use for inspecting UI, verifying frontend behavior, automating workflows.
npx claudepluginhub brsbl/ottonomous --plugin ottonomousThis skill is limited to using the following tools:
**Argument:** $ARGUMENTS
Automates headless browser via agent-browser CLI: open/navigate sites, snapshot interactive elements for refs, click/fill forms, verify UI, scrape data, e2e test web apps.
Automates browser interactions via agent-browser CLI: opens URLs, snapshots interactive elements for ref-based clicks/fills, screenshots, scraping for UI debugging and web app checks.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Share bugs, ideas, or general feedback.
Argument: $ARGUMENTS
| Command | Behavior |
|---|---|
{url} | Navigate to URL, capture screenshot + ARIA snapshot |
explore | Interactive exploration — navigate, inspect, understand UI |
verify {description} | Verify specific UI behavior or state |
extract {description} | Extract data from frontend |
electron {app} | Automate Electron/VS Code desktop app |
agent-browser open {url}
agent-browser wait 3000
agent-browser snapshot -i
agent-browser screenshot .otto/screenshots/page.png
# Click by ref from snapshot
agent-browser click @e5
# Fill input
agent-browser fill @e3 "user@example.com"
# Press keys
agent-browser press Enter
# Re-snapshot after interaction
agent-browser snapshot -i
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, etc.) via Chrome DevTools Protocol.
The app must be launched with --remote-debugging-port:
# VS Code
open -a "Visual Studio Code" --args --remote-debugging-port=9333
# VS Code with extension development
code --extensionDevelopmentPath=./ --disable-extensions \
--remote-debugging-port=9333 --skip-release-notes .
# Generic Electron app
open -a "AppName" --args --remote-debugging-port=9333
# Linux
code --remote-debugging-port=9333
Important: Quit the app first if already running. The flag must be present at launch.
# Wait for app startup
sleep 5
# Connect
agent-browser connect 9333
# Standard snapshot-interact workflow
agent-browser snapshot -i
agent-browser click @e5
agent-browser screenshot .otto/screenshots/electron.png
Electron apps embed webviews as separate targets. Use tab management:
# List all targets (windows + webviews)
agent-browser tab
# Output:
# 0: [page] VS Code - main window
# 1: [webview] Chat Panel content
# 2: [webview] Settings editor
# Switch to webview
agent-browser tab 1
agent-browser snapshot -i
agent-browser screenshot .otto/screenshots/webview.png
# 1. Build the extension
npm run compile
# 2. Launch VS Code with extension
code --extensionDevelopmentPath=./ --disable-extensions \
--remote-debugging-port=9333 --skip-release-notes . &
APP_PID=$!
sleep 8
# 3. Connect
agent-browser connect 9333
# 4. Check main window
agent-browser snapshot -i
# 5. Check webviews (if extension has webview panels)
agent-browser tab
agent-browser tab 1
agent-browser snapshot -i
agent-browser screenshot .otto/screenshots/extension.png
# 6. Cleanup
agent-browser close
kill $APP_PID
# Snapshot diff — see what changed after an action
agent-browser snapshot -i
agent-browser click @e2
agent-browser diff snapshot
# Screenshot diff — visual regression
agent-browser screenshot baseline.png
# ... make changes ...
agent-browser diff screenshot --baseline baseline.png
agent-browser close
rm -rf .otto/screenshots
- banner:
- link "Home" [ref=e1]
- main:
- heading "Welcome" [ref=e2]
- form:
- textbox "Email" [ref=e3]
- button "Submit" [disabled] [ref=e4]
Use @eN values (e.g., @e3) with interaction commands.