connect-chrome
Reuse your real Chrome's logged-in cookies in the browse daemon, so authenticated pages work without re-logging-in.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 8
- Forks
- 0
01 前言 Front Matter
- name
- connect-chrome
- triggers
- [ "connect to chrome", "use my chrome session", "reuse browser login", "import chrome cookies", "browse as me" ]
- description
- Reuse your real Chrome's logged-in cookies in the browse daemon, so authenticated pages work without re-logging-in.
- allowed-tools
- [ "Bash" ]
03 SKILL.md 正文
If this session was compacted, the copy of this skill in context may be cut off.
Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.
When to invoke
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.
/connect-chrome — Reuse your Chrome session
{{include lib/snippets/browse-setup.md}}
If BROWSE_NOT_AVAILABLE: tell the user the browse shim is required and stop.
1. Probe for the direct cookie import
$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>'
- Any other answer (an import, or an error such as a domain mismatch or a
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-cookiesfor the picker, and stop here. - It prints
NOT_SUPPORTED:cookie-import-browser: the stateless shim is running. Continue with the CDP path below.
2. Shim only: start Chrome with remote debugging
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:
- macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-debug-profile" - Linux:
google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-debug-profile" - Windows:
chrome.exe --remote-debugging-port=9222 --user-data-dir=%USERPROFILE%\chrome-debug-profile
Then 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.
3. Shim only: start the daemon and import the cookies
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:9222
4. Shim only: verify
Navigate 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.