[FEATURE] Scoped, owner-approved test-account sign-in for dev/QA (domains, iOS Simulator/Device Hub, native apps) without the model seeing credentials
Summary
Let the owner pre-approve Claude to sign in on specific domains, apps and simulators for dev/QA testing, using credentials Claude never sees. Today Claude correctly refuses to type passwords, but there is no approved path for the most common agentic-dev case: logging into your own staging/test environment with a test account to verify a change. So QA runs stall at every login screen, and simulators are the worst case.
Current behavior (Claude desktop app, Code tab, Claude Code 2.1.282, macOS 27.2)
- Claude will not enter a password to authenticate, even for a seeded staging test account on the owner's own domain, even with explicit owner permission. That boundary makes sense as a default.
- The one approved route, 1Password autofill through Claude in Chrome, only works in the owner's Chrome. It can't reach:
- iOS simulators in Xcode 27 Device Hub, whether in Safari or a native app
- Native app sign-in screens, e.g. a WKWebView app wrapper under test
- Physical test devices driven through Device Hub
- Headless or background subagents, where there's no one to approve a prompt
- Result: each verification pass (after a simulator restart, app reinstall, or new test device) needs a human to walk over and type the password, then hand control back. For agent-driven QA that's the main bottleneck. We see it daily.
What we're asking for
An owner-configured, scoped test-credential allowlist in settings (user or managed), for example:
"testCredentials": [
{
"match": { "domains": ["staging.example.com"], "iosBundleIds": ["com.example.app.staging"], "simulators": true },
"credentialRef": "op://Dev/Staging test user", // resolved by the host / password manager
"fillOnly": true // value typed into the field; never enters model context or logs
}
]
Requirements:
- Model never sees the value. The host fills it straight into the focused field, the same guarantee as the 1Password Chrome flow.
- Scoped: only the listed domains, bundle IDs, simulators or devices, and only for accounts the owner marked as test accounts. A phishing lookalike domain or production must not match.
- Works where QA happens: Chrome, the built-in browser pane, the iOS Simulator and Device Hub (keyboard injection into the focused field), and native app sign-in screens.
- Works unattended: pre-approval covers background agents and CI-style runs without a per-fill prompt. Still auditable, e.g. a log line recording "filled test credential X into Y".
- Owner-only: this can't be enabled from project files, web content or tool output.
Why
Agentic coding now includes verifying changes end to end on real screens, and nearly every app worth testing is behind a login. Without a sanctioned, scoped way to sign into test accounts, teams either give up on agent QA or look for workarounds, like test-only login bypasses in their apps, that are less safe than a proper credential broker.
Related: #88165 (general credential broker; this is its dev/QA-scoped version), #96941 (Device Hub simulator panel orientation/fold bug found during the same QA work).
3 Comments
Concrete case from today (Claude desktop app, Code tab, macOS 27.2):
The allowlist proposed here (owner-scoped domain/app/device + password-manager-supplied secret Claude never sees) would have removed the only manual step. Autofill in Claude in Chrome doesn't reach native apps, iOS simulators, or physical devices.
Related reports of the same wall: #94800, #95665, #83380, #93486.
I filed #97934 for the same guarantee on a surface this issue does not list: an Anthropic-hosted cloud session, where there is no desktop, browser profile or password manager to fill from. The scoping rules you describe, listed domains and owner-only setup, apply there unchanged. The two requests could share one mechanism.
Thanks @tonydehnke for spotting that two of Claude's rules about typing credentials in the simulator disagreed. Claude Desktop 2.19675.0 removes the one that came with the simulator, so they no longer conflict.
The general rules now also allow test credentials in an app you're developing, if you ask, it's a dev build started from your project in that session, and sign-in stays on your machine.
If Claude still declines on that version, tell us what it said, the model, and where the app's backend runs.