connect-chrome — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited connect-chrome (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use when the browse daemon needs to act as your logged-in self — reuse the cookies/sessions from your real Chrome (e.g. QA-ing a page behind a login) without typing credentials into the automated browser.
{{include lib/snippets/browse-setup.md}}
If BROWSE_NOT_AVAILABLE: tell the user the browse shim is required and stop.
$B resolves to the full browse daemon when its dependencies are installed, and to the stateless shim otherwise. Only the full daemon can read the installed browser's cookie database directly, so probe for it with the site the user wants (a bare hostname, e.g. github.com):
B='<BROWSE_BIN>'
"$B" cookie-import-browser --domain '<site>'missing browser name): the full daemon is up, and this is the path — it reads the installed browser's cookie store directly, no relaunch, no debugging port. Do not retry the import here; the browser and profile are the user's choice. Hand off to /setup-browser-cookies for the picker, and stop here.
running. Continue with the CDP path below.
Chrome 136 and later refuse --remote-debugging-port on the default profile. The port only opens with a separate --user-data-dir, and that profile starts empty — none of the user's logins. Say so plainly: the user must sign in once in that window before the import has anything to copy.
Ask the user to launch Chrome with a debugging port and its own profile dir:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-debug-profile"google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-debug-profile"chrome.exe --remote-debugging-port=9222 --user-data-dir=%USERPROFILE%\chrome-debug-profileThen have them sign in to the target site in that window. Confirm the port is reachable:
curl -s http://127.0.0.1:9222/json/version >/dev/null 2>&1 && echo "CHROME_CDP_OK" || echo "CHROME_CDP_UNREACHABLE"If CHROME_CDP_UNREACHABLE: the port differs or Chrome isn't in debug mode — ask the user to confirm the launch flags and port.
B='<BROWSE_BIN>'
"$B" daemon >/dev/null 2>&1 & # persistent session (skip if already running)
sleep 1
"$B" cookies import-cdp http://127.0.0.1:9222Navigate to a page that requires login and confirm you're signed in:
B='<BROWSE_BIN>'
"$B" goto <authenticated-url>
"$B" snapshot # look for signed-in markers (account name, logout link)Report whether the session carried over. Stop the daemon with "$B" daemon-stop when done. Cookies stay in the daemon's session only — they are never written to the repo or logged.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.