setup-browser-cookies
Skill8 starsChanged 6 months agoMITView on GitHub
Import cookies from your real Chromium browser into the headless browse session to QA authenticated pages.
33 other projects use a version of this, 9 of them edited.
Adopted by
Most recently taken up by
- trungtm78/ClaudeSkillstheir own version, first seen Oct 25, 2026
- ignavm1/claude-skillstheir own version, first seen Oct 13, 2026
- leishifu666/skillstheir own version, first seen Oct 9, 2026
- chriswestt/claude-skillstheir own version, first seen Oct 9, 2026
- IyedBecheikh/bstacktheir own version, first seen Oct 9, 2026
- garrytan/gstacktheir own version, first seen Oct 7, 2026
Used with
Projects with it also use ios-clean, ios-fix and 5 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Saqlain-811Skillios-clean
Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)
Also in 5 projects that use this
Saqlain-811Skillios-fix
Autonomous iOS bug fixer. (gstack)
Also in 5 projects that use this
ShreyRaviSkillsetup-gbrain
Set up gbrain for this coding agent: install the CLI, initialize a local PGLite or Supabase brain, register MCP, capture per-remote trust policy. One command from zero to "gbrain is running, and this agent can call it." Use when: "setup gbrain", "connect gbrain", "start gbrain", "install gbrain", "configure gbrain for this machine". (gstack)
Also in 6 projects that use this
ShreyRaviSkillsync-gbrain
Keep gbrain current with this repo's code and refresh agent search guidance in CLAUDE.md. Wraps the gstack-gbrain-sync orchestrator with state probing, native code-surface registration, capability checks, and a verdict block. Re-runnable, idempotent. Use when: "sync gbrain", "refresh gbrain", "re-index this repo", "gbrain search isn't finding things". (gstack)
Also in 6 projects that use this
bastosSkillios-design-review
Review iOS app UI/UX design quality using Apple's design principles and the Liquid Glass-era design language from WWDC25/26. Use when asked for a design review, UX critique, visual design assessment, or evaluation of an app's interface quality, design intent, alignment with the new Apple design system, or usability. Triggers: "design review", "UX review", "visual design critique", "review the UI", "does this design work", "evaluate this interface", "design feedback", "Liquid Glass review".
Also in 5 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 7 projects that use this
- +1 more from Saqlain-811
Other versions33 projects use a version of this.
Word for word · 0
None found.
Edited · 9
- no-session/pstack★ 9613% same
- lucas-flatwhite/gstack-ko★ 4513% same
- WillNigri/Agentic-Tool-Optimization★ 3411% same
- CarbeneAI/Forge★ 910% same
- Samin12/skills★ 810% same
- CodeWithBehnam/cc-docs★ 235% same
- waseemnasir2k26/skynetlabs-all-claude-code★ 240% same
- qinchenox/claude-code-agents★ 135% same
- PeterYang888/claude-skills★ 010% same
Wrote their own version · 24
- garrytan/gstack★ 141ksame name
- mr-daedalium/ostack-saas★ 108same name
- aryaniyaps/dot-ai★ 1same name
- chloropine/cgstack★ 1same name
- IyedBecheikh/bstack★ 1same name
- jpoindexter/theft-kit★ 1same name
- leishifu666/skills★ 1same name
- mahiunfiltered/claude-code-skills★ 1same name
- nileshteji/skills★ 1same name
- sagnikmitra/skills★ 1same name
14 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository62 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- address-pr-reviewSkill
- agent-evalSkill
- ai-cost-guardSkill
- autoplanSkill
- aws-costSkill
- bedrock-guardrailsSkill
- benchmarkSkill
- browseSkill
- canarySkill
- carefulSkill
- claudeSkill
- codexSkill
- connect-chromeSkill
- connect-reviewSkill
- context-restoreSkill
- context-saveSkill
- csoSkill
- design-consultationSkill
- design-htmlSkill
- design-reviewSkill
- design-shotgunSkill
- devex-reviewSkill
- diagramSkill
- document-generateSkill
- document-releaseSkill
- freezeSkill
- guardSkill
- healthSkill
- iac-reviewSkill
- improve-archSkill
- investigateSkill
- kb-reviewSkill
- land-and-deploySkill
- landing-reportSkill
- learnSkill
- make-pdfSkill
- mcp-reviewSkill
- office-hoursSkill
- open-browserSkill
- pair-agentSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- plan-devex-reviewSkill
- plan-eng-reviewSkill
- plan-tuneSkill
- pr-summarySkill
- qa-onlySkill
- qaSkill
- retroSkill
- reviewSkill
- scrapeSkill
- setup-deploySkill
- shipSkill
- skillifySkill
- specSkill
- telegramSkill
- unfreezeSkill
- unslopSkill
- vibe-gcSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
12 rules. 1 is common, 4 are distinctive, and 7 are very specific to this project.
1
Common
Most of the 26 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
If this session was compacted, the copy of this skill in context may be cut off.
- Very specific: line 16
Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and resume at the step you are on.
- Distinctive: line 20
Use when asked to "import cookies", "login to the site", or "authenticate the browser".
- Common: line 48
Import logged-in sessions from your real Chromium browser into the headless browse session.
- Very specific: line 53
Run cookie-import-browser to detect installed browsers and open the picker UI
- Very specific: line 72
Every Bash call starts a fresh shell, so $B is unset in every later block.
- Very specific: line 76
If NEEDS_SETUP, stop and tell the user the browse binary could not be found or could not start — node is missing, or first-run setup was …
- Very specific: line 108
If the user names a domain directly (e.g., /setup-browser-cookies github.com), skip the UI — but only with a browser the user named.
- Very specific: line 133
Never run $B cookies or $B storage to "show what was imported", and never put a cookie value, token, password, or session detail into the …
- Distinctive: line 137
Keep three states apart, and name the one you are in:
- Distinctive: line 145
Stop at Not checked unless the user asked you to check.
- Distinctive: line 152
Only domain names and cookie counts are shown in the UI — no cookie values are exposed
“Common” is measured: kept by at least 6 in 10 of the 26 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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 asked to "import cookies", "login to the site", or "authenticate the browser".
Preamble
eval "$("${VIBESTACK_HOME:-$HOME/.vibestack}/bin/vibe-slug" 2>/dev/null)" 2>/dev/null || SLUG="unknown"
_LEARN_FILE="${VIBESTACK_HOME:-$HOME/.vibestack}/projects/${SLUG:-unknown}/learnings.jsonl"
if [ -f "$_LEARN_FILE" ]; then
_LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ')
echo "LEARNINGS: $_LEARN_COUNT entries loaded"
if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then
"${VIBESTACK_HOME:-$HOME/.vibestack}/bin/vibe-learnings-search" --limit 5 2>/dev/null || true
fi
else
echo "LEARNINGS: none yet"
fi{{include lib/snippets/session-host.md}}
{{include lib/snippets/decision-brief.md}}
{{include lib/snippets/working-protocols.md}}
{{include lib/snippets/state-protocols.md}}
Setup Browser Cookies
Import logged-in sessions from your real Chromium browser into the headless browse session.
How it works
- Find the browse binary
- Run
cookie-import-browserto detect installed browsers and open the picker UI - User selects which cookie domains to import in their browser
- Cookies are decrypted and loaded into the Playwright session
Steps
1. Find the browse binary
B="${CLAUDE_SKILL_DIR:-$HOME/.claude/skills/setup-browser-cookies}/../browse/bin/vibe-browse"
[ -x "$B" ] || B="$(command -v vibe-browse || true)"
if [ -n "$B" ] && [ -x "$B" ] && [ "$("$B" status 2>/dev/null)" != "BROWSE_NOT_AVAILABLE" ]; then
echo "READY: $B"
echo "BROWSE_BIN: $B"
else
echo "NEEDS_SETUP"
fiEvery Bash call starts a fresh shell, so $B is unset in every later block.
A block that runs a browse command starts with B='<BROWSE_BIN>': replace
<BROWSE_BIN> with the path printed on the BROWSE_BIN: line.
If NEEDS_SETUP, stop and tell the user the browse binary could not be found or
could not start — node is missing, or first-run setup was declined.
Cookie import needs the full browse daemon; the stateless fallback shim cannot
decrypt a real browser's cookie store. If any command below answers
NOT_SUPPORTED:cookie-import-browser, that is what happened: tell the user the
full daemon is not running in this checkout and stop, rather than reporting a
half-import that never occurred. Point them at /connect-chrome, which imports
cookies into the shim from a Chrome started with a remote debugging port.
2. Open the cookie picker
B='<BROWSE_BIN>'
$B cookie-import-browserThis auto-detects installed Chromium browsers and opens an interactive picker UI in your default browser where you can:
- Switch between installed browsers
- Search domains
- Click "+" to import a domain's cookies
- Click trash to remove imported cookies
Tell the user: "Cookie picker opened — choose the browser, the profile, and the domains you want to import, then tell me when you're done."
The choice of browser, profile and domains is the user's. Never pick one for them, and never treat whichever browser the CLI falls back to as consent. A profile you could not read is unknown, not empty.
3. Direct import (alternative)
If the user names a domain directly (e.g., /setup-browser-cookies github.com),
skip the UI — but only with a browser the user named. If they did not name one,
ask via AskUserQuestion which browser to import from — this path skips the
picker, so you have no detected list: name the supported ones (Chrome, Chromium,
Arc, Brave, Edge, Comet) and let the user answer; never fill one in yourself. The import is scoped to the page the daemon is on,
so navigate to the domain first:
B='<BROWSE_BIN>'
$B goto https://github.com
$B cookie-import-browser <browser> --domain github.com<browser> is the one the user chose. --profile takes a profile directory
(Default, Profile 1), not a display name; omit it only when the user's
browser has a single relevant profile, otherwise use the picker. --all imports
every non-expired cookie from the browser — run it only when the user asked for
exactly that.
4. Report honestly
Report what the import itself returned: the receipt line (Imported N cookies
for <domain> from <browser>, plus any failed to decrypt count) or the picker's
per-domain counts, and say plainly when an import was partial, zero, or errored.
Never run $B cookies or $B storage to "show what was imported", and never
put a cookie value, token, password, or session detail into the transcript or a
report. Counts and domain names are the whole summary.
Keep three states apart, and name the one you are in:
- Not checked — cookies were copied; nobody looked at whether they sign you in.
- Not verified — you checked, and the target did not show a signed-in state.
- Verified — a page on the target showed positive signed-in evidence (an account-only page rendered instead of the sign-in wall).
An import count, a zero-error import, or an HTTP 200 never proves a login. Stop at Not checked unless the user asked you to check.
Notes
- On macOS, the first import per browser may trigger a Keychain dialog — click "Allow" / "Always Allow"
- On Linux,
v11cookies may requiresecret-tool/libsecret access;v10cookies use Chromium's standard fallback key - Cookie picker is served on the same port as the browse server (no extra process)
- Only domain names and cookie counts are shown in the UI — no cookie values are exposed
- The browse session persists cookies between commands, so imported cookies work immediately
- Imported cookies apply to the whole browser context: every tab, and any agent paired into this daemon, sends them
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

