browser-auth-flow — Claude Code skill: what it does, how to install
Drives your login flow once, then probes it for redirect leaks, missing CSRF tokens, weak session cookies and OAuth mistakes. Writes a findings.md with a verdict.
npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-codeWhat browser-auth-flow does
The skill opens a login page in a browser, walks through the sign-in and records the trajectory. Probes then run over that recording: csrf, redirect, cookie, oauth, chosen with --probes. You get one findings.md with a section per probe, a severity per finding and a pass, warn or fail verdict.
It is built on MCP browser tools (browser_open, browser_fill, browser_eval, browser_get-url) and keeps output inside an RVF container. Captured tokens and PII stay there instead of coming back to the model unredacted. Credentials arrive from a vaulted handle through --credentials <handle>, or you type them in.
Know the weak spot before you schedule the run: document.cookie exposes only non-HttpOnly names and values, so Secure, SameSite and expiry have to be read from Set-Cookie headers before login. Post-login attributes get marked not-assessed, and the skill asks for a HAR export rather than guessing. It probes, it does not exploit, and it must refuse a third-party production site; written permission belongs in the report. Budget 15–40 trajectory steps for an auth pass.
What it helps with
- catch a token leaked in a cross-origin redirect
- confirm the login POST carries a CSRF token
- spot a session cookie readable from JavaScript
- check
stateandnonceon the OAuth request - keep a baseline for the next audit run
Example prompts for the agent
- Run `browser-auth-flow` against `<login-url>` with `--probes csrf,redirect`.
- Probe the OAuth leg: `browser-auth-flow <login-url> --probes oauth`.
- Re-auth check using the vaulted handle: `--credentials <handle>`.
How to install browser-auth-flow
1Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-code2Manually: put the files in place
~/.claude/skills/browser-auth-flow/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/browser-auth-flow/
1Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a codex2Manually: put the files in place
.agents/skills/browser-auth-flow/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a cursor2Manually: put the files in place
.cursor/skills/browser-auth-flow/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install ruvnet/ruflo browser-auth-flow2Manually: put the files in place
.github/skills/browser-auth-flow/SKILL.md1Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a gemini-cli2Platform CLI
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-browser/skills/browser-auth-flowManually: put the files in place
.devin/skills/browser-auth-flow/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill browser-auth-flow -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set104
The whole set →Similar
Questions about browser-auth-flow
How do I install browser-auth-flow in Claude Code?
One command: npx skills add ruvnet/ruflo --skill browser-auth-flow -a claude-code. The skill file then sits at ~/.claude/skills/browser-auth-flow/SKILL.md.
What does browser-auth-flow do?
It walks a site's login and checks it for redirect leaks, a missing CSRF token, weak session cookies and OAuth misconfiguration. Findings land in findings.md, each with a severity rating.
Which sites is it safe to run against?
Only one you own or have written permission to test, and that permission goes into the report. The skill must refuse a third-party production site.
Source text
SKILL.md · MIT
--- name: browser-auth-flow description: Probe a site's authentication flow for redirect leaks, missing CSRF, weak session cookies, and OAuth misconfiguration; produces an auth findings.md argument-hint: "<login-url> [--credentials <handle>] [--probes csrf,redirect,cookie,oauth]" allowed-tools: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_fill mcp__plugin_ruflo-core_ruflo__browser_type mcp__plugin_ruflo-core_ruflo__browser_click mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__browser_eval mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__browser_get-url mcp__plugin_ruflo-core_ruflo__aidefence_has_pii mcp__plugin_ruflo-core_ruflo__aidefence_scan Bash Read Write --- # Browser Auth Flow Adversarial probe of a site's authentication. Drives the login flow once, records the trajectory, then runs a configurable set of probes against the captured artifacts and live page. Output is a structured `findings.md` inside the RVF container. ## When to use - Pre-deployment audit of a new auth flow. - Investigating a suspected token leak or redirect issue. - Establishing a baseline for ongoing regression checks. ## Steps 1. **Open a recorded session** via `browser-record`. 2. **Drive the auth flow** as in `browser-login` (credentials come from `--credentials <handle>` referencing `browser-cookies` if the run is a re-auth probe). 3. **Run probes**: - **`csrf`**: inspect the login POST in the trajectory; verify a same-origin token field is present and non-empty. - **`redirect`**: watch `browser_get-url` after each nav for cross-origin redirects with auth state in the URL or fragment. Flag any token-bearing URL that crosses an origin boundary. - **`cookie`**: `document.cookie` exposes only name=value of non-`HttpOnly` cookies; it cannot show `Secure`, `SameSite` or expiry. Via `browser_eval`, return only each visible cookie's name, value length and entropy estimate (never the values themselves), and flag any session-looking name that is visible at all, because a visible cookie is by definition not `HttpOnly`. For `Secure`/`HttpOnly`/`SameSite`/expiry, read the `Set-Cookie` response headers (for example `curl -sS -D - -o /dev/null <login-url>` for pre-auth cookies); post-login attributes are not observable with these tools, so mark them `not-assessed` and ask for a HAR or devtools export instead of guessing. - **`oauth`**: if the flow involves a third-party provider, capture the authorization request, verify `state` and `nonce` are present and high-entropy, verify `redirect_uri` matches the registered callback domain. 4. **Quarantine** any token / credential / PII captured during probing — it stays inside the RVF container's findings, never returns to the model unredacted (`aidefence_is_safe` gate from `browser-extract` applies if you read the findings back). 5. **Write `findings.md`** with one section per probe, severity rating per finding, and a `verdict` (pass / warn / fail). 6. **Index** the session in `browser-sessions` with `tag: auth-probe` so future audits compare against it. ## Caveats - **Authorization first.** Only probe a site you own or have written permission to test; state which in the report. The skill must refuse third-party production sites. - This skill probes; it does not exploit. Do not chain follow-up requests using a captured token. - Credentials must come from a vaulted handle or interactive entry. Never hardcode them in the field map. - Some probes require multiple page loads. Trajectory step count for an auth probe typically lands at 15–40 steps; budget accordingly. - The output is structured for human review. Do not auto-act on findings without surfacing them to the user first.
© ruvnet · MIT · ruvnet/ruflo