Log in to a site without seeing the credentials
authenticate_loginLogs users into sites via a secure localhost prompt, auto-detects login fields, submits, and returns status (success, OTP, error).
Instructions
Log the user into a site with THEIR account, without the AI ever seeing the credentials. The human types username and password into a localhost secure page; the server fills them in, submits, and returns ONLY a status: success, otp_required (then call submit_2fa_code), error, push_wait, or unknown. Selectors are auto-detected when omitted, and the ones used are reported so a retry can correct them. NEVER returns a screenshot, since a 2FA or error page can render secrets — capture separately after success, then manage_session action=save. Blocks until the human answers the prompt or 180s elapse. The first sign-in to each new site asks for consent unless assumeConsent is set.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sso | No | Provider hint, e.g. "google": click "Continue with Google" and reuse the provider session already in the browser, so no password is typed for this site. Logs into the provider once if needed. | |
| flow | No | Form shape. "auto" (default) detects single-step vs identifier-first (email, then password — Google/Microsoft/Okta) and drives both. Override only to correct a misdetection. | auto |
| source | No | "prompt" (default) asks the human on a localhost page; "vault" pulls them from the encrypted vault for an enrolled profile (unattended). The AI never sees the values either way. | prompt |
| profile | Yes | Short name for the account, e.g. "github". Not a secret — it labels the secure prompt and selects a stored credential. | |
| loginUrl | No | Navigate here first. Omit to act on the open page. Not reloaded if a saved session already authenticated you there. | |
| viewport | No | Switch to this breakpoint first. Default: keep the current one. | |
| assumeConsent | No | Skip the per-site consent prompt, for unattended runs. Default false: the first sign-in to each new site asks the human to approve it. | |
| submitSelector | No | Selector for the submit button. Auto-detected when omitted. | |
| passwordSelector | No | Selector for the password input. Auto-detected when omitted. | |
| usernameSelector | No | Selector for the username/email input. Auto-detected when omitted; the result reports which one was used. |