-
Notifications
You must be signed in to change notification settings - Fork 244
Description
Environment:
opversion: 2.32.0ghversion: 2.86.0- macOS: 26.2 (Build 25C56)
- Context: Claude Code CLI tool (non-interactive subprocess, no TTY)
Description:
Running op plugin run -- gh api ... from a non-interactive shell (Claude Code's Bash tool, which has no TTY) triggers the 1Password biometric prompt as expected. After successfully approving the prompt, the command fails with:
[ERROR] 2026/02/12 21:13:17 interactive IO not available
Steps to Reproduce:
- Configure
ghshell plugin with 1Password (alias gh='op plugin run -- gh') - Run a
ghcommand from a context with no TTY attached (e.g., a subprocess without a pseudo-terminal) - 1Password biometric prompt appears and is approved
- Command fails with
interactive IO not available
Expected Behavior:
After successful biometric approval, op should inject the credential and run gh to completion. The authentication gate has been passed — there should be no further need for interactive IO.
Actual Behavior:
op fails post-approval with interactive IO not available. The credential was presumably unlocked, but something in the post-auth flow requires a TTY that isn't present.
Workaround:
Bypass the plugin entirely and call the gh binary directly (e.g., /opt/homebrew/bin/gh), relying on gh's own stored auth token.
Notes:
ttyreturnsnot a ttyand[[ -t 0 ]]is false in this context- This differs from #120 where the alias isn't available at all. Here,
op plugin runis invoked explicitly and the biometric prompt works — the failure is post-authentication. - Once the session is cached (presumably from a recent approval), subsequent calls from the same non-TTY context succeed. This suggests the error only occurs during the initial credential provisioning flow.