# Browser Login > Ejecuta un flujo de autenticación una vez, sanitiza las cookies con AIDefence y guarda un handle reutilizable en browser-cookies para futuras sesiones. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/browser-login Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/browser-login.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 36 tok instalada, 802 tok al activarse, 802 tok con todos los archivos del bundle Bundle: 1 archivo, 3 KB Permisos que pide: 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__aidefence_scan mcp__plugin_ruflo-core_ruflo__aidefence_has_pii bash read write ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill browser-login --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill browser-login --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill browser-login --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill browser-login --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill browser-login --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill browser-login --agent cline ``` ## Qué hace - Ejecuta un flujo de autenticación una sola vez y guarda un handle de cookies reutilizable en browser-cookies para futuras sesiones. - Captura las cookies tras el login, las sanitiza con aidefence_scan y envuelve en un vault los tokens que parezcan secretos crudos antes de guardarlos en AgentDB. - Soporta MFA pausando para entrada del usuario, y nunca registra credenciales ni valores de cookie crudos en la trayectoria. ## Cuándo usarla - Se necesita autenticación reutilizable para un host que el agente visitará repetidamente, o refrescar un set de cookies vencido. ## Cuándo no - No es una solución de almacenamiento de credenciales: protege contra fugas en AgentDB, no contra el compromiso del entorno del agente, según el propio archivo. ## Qué la activa - "Haz login en este sitio y guarda la sesión para reutilizarla" ## Antes de instalar - Requiere las herramientas MCP browser_* y aidefence_* del plugin ruflo-browser; las credenciales vienen del usuario o del entorno, nunca de .env. ## Archivos - SKILL.md — 3 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. # Browser Login Authenticate against a target site once, then vault the resulting session credentials so subsequent skills (`browser-extract`, `browser-form-fill`, `browser-test`) can reuse them without re-driving the auth flow. Borrows the pattern from Browserbase's `cookie-sync/SKILL.md` but stores the resulting context in AgentDB rather than on a hosted backend. ## When to use - Establishing reusable auth for a host the agent will visit repeatedly. - Refreshing a vaulted cookie set whose expiry has passed. - Capturing an MFA-protected session that requires interactive completion. ## Steps 1. **Open a recorded session** via `browser-record`. 2. **Drive the auth flow** — fill credentials with `browser_fill` / `browser_type`. Credentials come from the user or environment; do **not** read them from `.env` or paste them into the trajectory args. 3. **Handle MFA** (when `--mfa`): pause for user input or invoke the user's TOTP helper; capture only the resulting redirect, not the code itself. 4. **Capture cookies** via `browser_eval`: ```javascript document.cookie // returns the cookie string for the active document ``` Or use the Playwright context API where exposed. 5. **AIDefence sanitize**: ```bash # Each cookie value passes aidefence_scan to flag raw secrets / high-entropy tokens. ``` Tokens that look raw get vault-wrapped (an opaque handle) before AgentDB store; raw values never enter the namespace. 6. **Store in `browser-cookies`**: ```bash npx -y @claude-flow/cli@latest memory store --namespace browser-cookies \ --key "" \ --value "{vault_handle:, expiry:, aidefence_verdict:safe}" ``` 7. **Return the vault handle** so downstream skills can mount it via the planned `browser_cookie_use` MCP tool. ## Caveats - Never log raw cookie values, tokens, or passwords. The trajectory step for the auth POST records only the form field names and a `` placeholder for values. - The `browser_cookie_use` MCP tool is reserved (ADR-0001 §7) but not yet implemented. Until then, downstream skills mount the vaulted cookies via a helper bash function in `scripts/` (TBD). - Some sites bind cookies to a UA fingerprint; if a vaulted cookie fails on reuse, re-run `browser-login`. Do not attempt to fingerprint-match yourself. - This skill is **not** a credential storage solution. The vault-handle pattern protects against AgentDB leaks, not against compromise of the agent's environment. ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)