plugin eval --mocks off on macOS: "Keychain Not Found" dialogs on every agent run (10 per run with 8 HTTP MCP servers)
Claude Code 2.1.294, macOS (Darwin 27.0.0).
Steps: a plugin with HTTP MCP servers that need OAuth; claude plugin eval ./plugins/x --mocks off --trust-plugin --allow-tools Bash --runs 1.
Observed: every agent run raises the system dialog "Keychain Not Found — A keychain cannot be found to store <user>" (Cancel / Reset To Defaults). A plugin that declares 8 HTTP servers gets 10 dialogs per run, about 2 s apart; a minimal plugin with one such server and a one-turn case gets 1 per run. They steal focus and the default button is Reset To Defaults.
Log: security -> SecKeychainItemCreateFromContent -> MacOS error: -25307 -> authd loginKC:queryCreate (1 of 2) -> Caller dismissed 2 s later. The call is security -i with add-generic-password -U -a <user> -s "Claude Code-credentials-<hash>", made by the child claude -p, whose HOME is /private/tmp/e-XXXX/home. That directory has no login keychain, so macOS offers to create one.
With the default --mocks record: 0 dialogs.
Expected: no keychain write (or no UI) when the child's HOME has no login keychain.
Workaround: a security wrapper on PATH that stalls -i / add-generic-password when HOME is not the user's home directory and passes everything else to /usr/bin/security. Measured on the minimal plugin: 1 dialog without it, 0 with it, same case result.