[FEATURE] Passkey (WebAuthn) sign-in for Claude accounts, across every surface
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Signing in to a Claude account currently offers two paths: "Continue with Google", or an emailed magic link / one-time code. If Google sign-in isn't an option for you, the magic link is the only path — and it's slow and failure-prone:
- The email frequently takes 5+ minutes to arrive. #82049 reports 2–5 minute delays since mid-July 2026.
- The link and code expire after 10 minutes.
Those two facts interact badly. Five of the ten minutes are typically gone before the email lands, and nobody sits and watches an inbox for five minutes — so I step away, come back, and the link has expired. Then I request another one and try to time it better. The usable window is far shorter than the stated 10 minutes.
The cost is then multiplied by the number of surfaces. I sign in on five: the Claude mobile app, Claude Code, the web app, Claude for Excel, and Claude for Chrome. Each holds its own credential and expires on its own schedule, so this isn't a one-time setup cost — it's a recurring interruption that lands several times across my clients.
Passkeys are the standard answer to exactly this: instant, local, phishing-resistant, and already supported by the OS keychain or password manager on every device I use.
Proposed Solution
Make a passkey (WebAuthn/FIDO2) a first-class sign-in method for Claude accounts, on equal footing with "Continue with Google" and email:
- Enrollment. In account settings, an "Add a passkey" flow supporting both platform authenticators (Windows Hello, Touch ID, Android) and roaming ones (hardware security keys). Multiple credentials enrolled concurrently, each named, listable, and individually revocable.
- Sign-in. On the login screen, alongside "Continue with Google" and "Continue with email", a "Sign in with a passkey" option that triggers the standard WebAuthn prompt — no email round-trip, no expiry window.
- Every surface. Offer it anywhere a magic link works today: claude.ai, the desktop app, the mobile apps, and the browser-based OAuth flow. Because Claude Code, the VS Code extension, Claude for Excel, and Claude for Chrome all authorize through a browser session, adding passkey sign-in to that flow covers all of them in one change.
- Additive, not a replacement. Magic link and Google sign-in stay exactly as they are.
One note on what already exists: something passkey-shaped is shipping under the name "Trusted Devices" — Claude Desktop prompts to set one up after login, and it backs Remote Control device auth. But as far as I can tell it isn't a sign-in method; it's a device-trust step layered on top of a login I still have to complete by email. It's also undocumented, single-credential only (#82095), crashes during setup on macOS (#81550), fails to enroll on Linux (#83122), and conflicts with the VS Code "Prefer Agent Host" setting (#84582). This request is for the sign-in half.
Alternative Solutions
Things I've tried or considered. None of them closes the gap:
- Continue with Google. The best current workaround — it skips email entirely. But it requires tying the account to a Google identity, which isn't available or acceptable to everyone, and it puts another party in the authentication path.
- Sign in once in a browser and let the other clients ride that session. This already works and genuinely helps:
/loginin Claude Code, the VS Code extension, Claude for Excel, and Claude for Chrome all authorize off an existing claude.ai browser session, so each is a one-click approve. But it only defers the problem — when the browser session expires I'm back to waiting on an email, and every downstream client needs re-authorizing. claude setup-token. A one-yearCLAUDE_CODE_OAUTH_TOKENcovers the CLI, but it's scoped to model requests only (no Remote Control, no claude.ai connectors) and does nothing for mobile, web, Excel, or Chrome.- Just waiting at my desk for the email. Works. Isn't a workflow.
- Fixing delivery speed or extending the 10-minute expiry. Both would reduce the pain — and #82049 should be fixed regardless — but neither removes the round-trip.
Priority
High - Significant impact on productivity
Feature Category
Other
Use Case Example
A normal Monday morning:
- I open Claude Code to start work. It reports my login has expired.
/loginopens a browser tab. My claude.ai browser session has expired too, so I land on the login screen.- I enter my email and click Continue. Claude sends a magic link.
- Nothing arrives within 30 seconds, so I switch back to what I was doing.
- Six minutes later I remember, open my inbox, click the link — expired. Back to step 3.
- Second attempt. This time I wait at my inbox until it lands. Claude Code is authorized.
- Later that morning: Claude for Excel prompts separately. Claude for Chrome prompts separately. My phone prompts separately.
With passkey sign-in, steps 3–6 collapse into: click "Sign in with a passkey", approve with Windows Hello, done in about two seconds. Step 7 largely collapses too, since those surfaces authorize off the browser session established in step 2.
Additional Context
Related issues:
- #82049 — magic-link sign-in emails delayed 2–5 minutes (the delivery half of this problem)
- #82095 — Trusted Devices: only one FIDO2 authenticator can be enrolled at a time
- #81550 — Claude Desktop crashes when accepting the passkey setup prompt (macOS)
- #83122 — trusted device registration never succeeds on Linux
- #84582 — VS Code "Prefer Agent Host" breaks Trusted Devices enrollment
- #77473 — built-in browser doesn't support WebAuthn on macOS
- #58270 — earlier request for local session auth (PIN/TOTP/passkey), closed
Prior art: GitHub, Google, Microsoft, Apple, Cloudflare, and 1Password all offer passkeys as a primary sign-in method with multiple enrolled credentials. GitHub's own implementation is a good reference — passkeys sit alongside the other methods, you can enroll several, name them, and revoke them individually.
Worth noting that the Help Center article on signing in still lists only Google and email, with no mention of passkeys or Trusted Devices, so even the partial functionality that exists today isn't discoverable: https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account
My environment: Windows 11, using Claude Code, Claude Desktop, Claude for Excel, Claude for Chrome, and the Claude mobile app.
15 Comments
Please add username+password+2FA methods for login as well. I don't like the fact that email is used for account authentication. I also do not want to tie in my website logins with Google/Apple/Microsoft/Meta/ et al for security reasons.
I'm honestly surprised that this hasn't been suggested here before (or in other Anthropic repos). I see #76624 was closed for being not strictly related to Claude-Code. Hoping this doesn't end up the same way!
Magic Link or third-party being the only sign-in methods is pretty bad to be honest.
omg please
+1, though for a reason the original post doesn't cover: for me this is about control, not speed.
Both existing paths put a dependency outside my control. "Continue with Google" creates an account relationship I've been burned by before with other providers — each one handles unlinking differently, and working out how (or whether) you can untangle it later is its own project. The magic link makes sign-in dependent on mail delivery latency, which is fine on a good day and unusable on a bad one. A passkey has neither property: it's a credential on my device, with no third party in the path.
The security-cost argument also runs the other way from how it's usually framed. Presumably part of why Claude accounts have no password is that passwords mean a shared secret at rest, brute-force defense, and a reset flow to build and maintain. Passkeys avoid all three. The genuinely hard part of going passwordless is recovery when someone loses every authenticator — and that's already solved here. Keep the magic link exactly as it is and make it the recovery path rather than the primary one. Nothing new to build.
Separately, and possibly worth its own issue: an authenticated claude.ai browser session doesn't satisfy Claude Code's authorize flow. I was already signed in to claude.ai in the browser, ran /login in Claude Code, and was still sent through the full email-link flow. A second /login shortly afterwards was a one-click approve, and a first-time /login on a different machine against that same browser session was also a one-click approve. So the claude.ai web session and whatever the authorize endpoint accepts are tracked on separate lifetimes. Making /login honour an existing claude.ai session would remove most of these interactions outright, independent of passkeys.
Todays Microsoft outlook outage proves how important that feature is.
Considering the 220 Million DAUs (https://sqmagazine.co.uk/microsoft-365-statistics/) who potentially have been unable to log in and do their Claude work for more that two hours now, demonstrates clearly, that this feature is not "nice to have".
It is an essential pillar of resilience, infrastructure independence, and securing service availabilty.
Coming at this from the account-security angle rather than the magic-link-latency angle in the original post - I think this deserves priority beyond convenience.
As it stands, email magic link (and OAuth sign-in) is the sole authentication factor for a Claude account — there's no password or independent second factor underneath it that also has to be defeated. That makes account security entirely dependent on the security of whatever mail delivery chain a given user happens to have, which isn't something Anthropic (or the user, in many cases) can fully control or verify:
This puts Claude's login in essentially the same risk category as SMS OTP — an out-of-band channel controlled by a third party, standing in for a factor it doesn't actually cryptographically provide. Notably, Microsoft just removed SMS 2FA for personal accounts entirely in 2026, calling it "a leading source of fraud" due to SIM-swapping, and is pushing passkeys as the replacement. Claude's exposure is arguably worse than SMS OTP ever was, since SMS was typically a second factor on top of a password — compromising it alone wasn't sufficient. Here, compromising the one channel is fully sufficient.
Beyond the passkey sign-in requested above, I'd add two asks that close the gap even before passkeys ship:
Related: #12480 requested TOTP-on-magic-link specifically and was closed as not planned — hopefully the broader passkey approach here fares differently, since the underlying problem it was trying to solve is still open.
+1 to all of the above, but especially Bjorn-Jahn's recent post. Magic Link is 1FA masquerading as 2FA.
Some additional dimension requests to FIDO2 sign-in:
pretty please do this! I don't like having to go to my email each time, it's a super clunky workflow
+1
As stated above, this is not a "nice to have"; It's 2026.
Within the last month the claude desktop app asked me to set up a passkey. I did, a credential was created on my YubiKey, and that option hasn't been presented again. I've looked in all the settings in web and desktop for the option and cannot find it. Maybe they're A/B testing.
Emailed magic-link sign-in is pathetic. Claude Desktop has prompted me to create a passkey, but I have no idea why - I can't log in with it, and I can't actually see it anywhere in my account. Implement full account sign-in via passkey ASAP. I'm sure Claude Code could implement it for you this afternoon.
How is passkey not an option in a supposedly modern platform? The engineering team should be downright embarrassed something so basic isn't available yet. Do better if you want to be taken seriously.
PLEASE. It's also insane that the Claude app now asks me to setup a Passkey then never even uses it for login. Like wtf. The round tripping between 3 apps just to login is a terrible UX. Claude app -> Email app link -> Web Browser -> back to Claude.
I’ll add that for myself that 100% of the time the magic link emails go to my spam folder on Fastmail. I’d tried training them to not be spam, they still go there. I’d much rather have passkeys.
Also the new CVP program requires phishing resistent logins. Presumably this feature is a prerequisite if not using google as an IDP.