Immediate Mode Login
After a sign-in-relevant user gesture, immediate mode asks the browser whether it can offer an immediately available credential for this site. If it can, the account chooser menu opens before the user types an identifier. Otherwise, the request rejects silently and the normal login flow continues. That silence is the point. Every other login surface has to guess whether a passkey attempt will succeed. Immediate mode lets the browser answer, at the cost of being unable to tell you why it said no. A sign-in-relevant user gesture is a deliberate click or tap that shows the user wants to authenticate (not page load and not an unrelated interaction). Chrome requires this gesture before the call, which prevents silent probing. Typical examples:- Clicking a Sign in button on the login page
- Starting Checkout (or a similar action) where signing in is useful but optional for guests
Support (August 2026): Chrome only; feature-detect the
immediateGet capability rather than relying on a version number. Chrome 148 release notes listed the capability and Chrome 149 announced the broad launch. The API is not yet part of the WebAuthn specification, so treat it as a progressive enhancement on top of a login flow that already works without it.How this differs from the other login flows
Immediate mode and Conditional UI are easy to confuse because both can present a passkey without the user typing a username. The difference is who initiates: Conditional UI waits for the user to focus the input, while immediate mode fires on your call and resolves or rejects at once.
See the flow
Platform screenshots for this page are in production. Until they land, these recordings show the two ways to trigger immediate mode:- Contextual action
1
Your app requests an immediate login
- On a user gesture (for example a “Sign in” click), the app calls
navigator.credentials.get()withuiMode: 'immediate'. - A readiness layer may choose where to expose this enhancement, but prior credential-likelihood prediction is optional and can create false negatives. The required gates are feature detection, a meaningful gesture and a complete fallback path.
2
Chrome checks for locally available credentials
- Chrome looks only at credentials it can present without further user action: passkeys held by a passkey provider such as Google Password Manager, Windows Hello or iCloud Keychain, and, when you pass
password: true, passwords saved in Google Password Manager. - Cross-device (QR) and security key options are not offered in this mode.
3
Credential found: the account chooser opens immediately
- The user picks an account and verifies with their screen lock.
- Your server receives a normal assertion and completes the login. Nothing about the flow after this point is specific to immediate mode.
4
No credential found: the request rejects silently
- The promise rejects with
NotAllowedErrorand no UI is ever shown. - Your app renders its standard login form. The user does not see an error, because from their point of view nothing happened.
Implementation
PublicKeyCredential.getClientCapabilities() and check the immediateGet key. Set uiMode: "immediate" alongside publicKey; when uiMode is omitted, the request follows its normal mediation behavior.
Constraints to design around
The call must follow a user gesture
The call must follow a user gesture
Chrome requires a user gesture such as a click to initiate the request, which prevents silent probing on page load. Plan the call for a “Sign in” interaction rather than on first paint.
Incognito and private sessions always reject
Incognito and private sessions always reject
Requests in incognito always throw
NotAllowedError, so your fallback path is the only path for those users.Allowlists are not permitted
Allowlists are not permitted
A non-empty
allowCredentials list causes the request to throw. Immediate mode is inherently a discoverable-credential flow.The dialog cannot be dismissed programmatically
The dialog cannot be dismissed programmatically
The
signal parameter cannot be used to cancel the immediate login dialog once it is shown, so do not build UI that assumes you can withdraw the prompt.Migrating from the origin trial: during the Chrome 139–141 origin trial this feature was requested with
mediation: 'immediate'. A specification change in November 2025 moved it to the uiMode field, and mediation: 'immediate' no longer activates it. Replace it with uiMode: 'immediate' in the same position. See the origin trial announcement for the original shape.Acceptance criteria
Immediate mode removes an identifier step for eligible returning users, but its limited client availability means it must remain a progressive enhancement.
References
- Relevant criteria: W1.6-AC01–AC08: Chrome for Developers: Immediate UI mode for logins defines feature detection, request constraints, silent fallback, Sign-in and Checkout continuation, private-mode behavior and the exclusion of cross-device and security-key options.