Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
glebis avatar

Browser Mate

  • 43 installs
  • 339 repo stars
  • Updated August 4, 2026
  • glebis/claude-skills

Automate a logged-in Chrome via a dedicated debug instance that coexists with the user's main browser, without quitting it or disturbing open tabs.

About

Launches or reuses a per-profile debug Chrome instance with its own user-data-dir and port so agent-browser can drive authenticated sessions non-destructively. A developer uses it to automate sites like ChatGPT or LinkedIn while preserving their existing browser windows.

  • Never quits or kills any browser; coexists with the user's main Chrome
  • Per-profile persistent login state, loopback-only debug port

Browser Mate by the numbers

  • 43 all-time installs (skills.sh)
  • Ranked #1,127 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/glebis/claude-skills --skill browser-mate

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs43
repo stars339
Last updatedAugust 4, 2026
Repositoryglebis/claude-skills

What it does

Automate a logged-in Chrome via a dedicated debug instance that coexists with the user's main browser, without quitting it or disturbing open tabs.

Files

SKILL.mdMarkdownGitHub ↗

browser-mate

Non-destructive Chrome automation. The problem it solves: to attach a CDP/agent-browser session, Chrome must run with --remote-debugging-port. The real-browser skill achieves this by quitting Chrome Beta first, destroying the user's open tabs. browser-mate instead runs a dedicated debug Chrome instance (its own --user-data-dir + port) that coexists with the user's main browser — Chrome permits concurrent instances when the data dirs differ, so no quit is needed.

The one invariant (never violate)

Never quit, `pkill`, or `osascript quit` any browser. The skill only ever launches a new dedicated instance or reuses an existing one. The single stop path sends SIGTERM only to a process matched by BOTH our dedicated user_data_dir AND our debug port — never the user's browser.

Usage

# Ensure a profile's debug Chrome is up (launch or reuse); prints the PORT on stdout
PORT=$(python3 scripts/browser.py chatgpt)

# Then drive it with agent-browser (always pass --cdp $PORT). See references/agent-browser.md
SID=$(LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 6)
agent-browser --cdp $PORT --session $SID open "https://chatgpt.com/"
agent-browser --cdp $PORT --session $SID snapshot -i

Other subcommands:

python3 scripts/browser.py list              # configured profiles
python3 scripts/browser.py status [profile]  # up/down
python3 scripts/browser.py stop chatgpt      # SIGTERM OUR instance only (graceful)

For the full agent-browser command set (click, fill, upload, screenshot, reliability, upgrade gotchas), read references/agent-browser.md.

Profiles

Config: ~/.config/browser-mate/profiles.json (auto-created from assets/profiles.example.json on first run). Each profile:

{ "default": "automation",
  "profiles": {
    "automation": { "binary": "<chrome binary>", "user_data_dir": "~/.browser-mate/automation", "port": 9222 },
    "chatgpt":     { "binary": "<chrome binary>", "user_data_dir": "~/.browser-mate/chatgpt", "port": 9223, "default_url": "https://chatgpt.com/" }
  } }
  • Each profile keeps its own login state — log in once per profile, it persists.
  • Add a profile by editing the JSON: pick a unique port and a dedicated `user_data_dir`

(the launcher validates uniqueness and refuses dirs that point at the user's real Chrome profile).

Authentication

Cannot enter passwords (and must not). For a first-time login, launch the profile, then ask the user to log in manually in that window once; the session persists in the profile's user_data_dir for all future runs.

Safety & limits

  • Loopback only. The debug port binds to 127.0.0.1 (Chrome default). CDP has no auth

— anyone local can drive it. Use on trusted machines; never pass --remote-debugging-address.

  • Dedicated data dir. A profile's user_data_dir must never be the user's real Chrome

profile (~/Library/Application Support/Google/Chrome*) — the launcher refuses these.

  • Locked dir. If a profile's dir is already open in a non-debug Chrome window, the

launcher fails loudly rather than killing it.

  • Replaces real-browser's launch step; interaction still uses agent-browser.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.