Environment:
op version: 2.32.0
gh version: 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
gh shell plugin with 1Password (alias gh='op plugin run -- gh')
- Run a
gh command 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:
tty returns not a tty and [[ -t 0 ]] is false in this context
- This differs from #120 where the alias isn't available at all. Here,
op plugin run is 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.
Environment:
opversion: 2.32.0ghversion: 2.86.0Description:
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:Steps to Reproduce:
ghshell plugin with 1Password (alias gh='op plugin run -- gh')ghcommand from a context with no TTY attached (e.g., a subprocess without a pseudo-terminal)interactive IO not availableExpected Behavior:
After successful biometric approval,
opshould inject the credential and runghto completion. The authentication gate has been passed — there should be no further need for interactive IO.Actual Behavior:
opfails post-approval withinteractive 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
ghbinary directly (e.g.,/opt/homebrew/bin/gh), relying ongh's own stored auth token.Notes:
ttyreturnsnot a ttyand[[ -t 0 ]]is false in this contextop plugin runis invoked explicitly and the biometric prompt works — the failure is post-authentication.