home/common/programs/ai/pi-coding-agent/skills/web-browser/SKILL.md
Interact with web pages using agent-browser CLI. MUST run 'browser connect 9222' FIRST to use existing browser with authenticated sessions.
npx skillsauth add megalithic/dotfiles web-browserInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Browser automation using agent-browser CLI connected to your running browser.
EVERY browser session MUST start with:
browser connect 9222
This connects to your running browser with all authenticated sessions (Asana, Figma, GitHub, etc.).
WITHOUT THIS STEP:
Before ANY browser operation, you MUST connect to the remote debugging port:
browser connect 9222
This is REQUIRED for accessing authenticated sessions. Without this step, commands will fail or create isolated sessions without your logins.
When navigating to a URL:
browser tab listbrowser tab <index>browser open <url>NEVER navigate an existing tab to a different URL - this destroys the user's work/context.
# 1. ALWAYS connect first (required every session)
browser connect 9222
# 2. Check for existing tab
browser tab list
# 3a. If tab exists for your URL, switch to it
browser tab 14
# 3b. If tab doesn't exist, open NEW tab
browser open https://app.asana.com/...
# 4. Interact
browser snapshot -i
browser click @e5
lsof -i :9222 -sTCP:LISTEN
After connecting, use standard agent-browser commands:
browser tab list # List all tabs
browser tab 14 # Switch to tab by index
browser open https://example.com # Open URL (NEW tab)
browser back # Go back
browser reload # Reload page
browser snapshot -i # Get interactive elements with @refs
browser screenshot # Take screenshot
browser get title # Get page title
browser get url # Get current URL
browser get text @e1 # Get text of element
browser click @e1 # Click element
browser fill @e2 "search text" # Clear and type
browser type @e3 "append text" # Type without clearing
browser select @e4 "option" # Select dropdown
browser press Enter # Press key
browser scroll down 500 # Scroll
browser wait @e1 # Wait for element
browser wait 2000 # Wait milliseconds
Instead of remembering tab numbers, find tabs by URL:
browser tab list | rg -i asana
browser tab list | rg -i localhost:4000
snapshot -i gives @refs like @e1, @e2 for clickingsnapshot -i--remote-debugging-port=9222testing
Apply Strunk's timeless writing rules to ANY prose humans will read - documentation, commit messages, error messages, explanations, reports, or UI text. Makes your writing clearer, stronger, and more professional.
tools
Web search using DuckDuckGo (free, unlimited). Falls back to pi-web-access extension for content extraction.
tools
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
tools
Work on a single tk ticket end-to-end. Use when the user says 'work on ticket X' or when spawned by work-tickets.sh.