GPG Pinentry-curses overlaps and breaks Terminal UI during commit signing #9207

Open
opened 2026-02-16 18:11:54 -05:00 by yindo · 1 comment
Owner

Originally created by @jberclaz on GitHub (Feb 12, 2026).

Originally assigned to: @kommander on GitHub.

Description

When using OpenCode to commit changes in a repository configured for GPG commit signing, the terminal-based passphrase prompt (pinentry-curses) conflicts with the OpenCode TUI. The prompt's drawing characters mingle with the OpenCode interface, making it impossible to enter the passphrase securely. This forces users to either kill the process or disable commit signing entirely, which is a security regression.

Plugins

No response

OpenCode version

1.1.63

Steps to reproduce

  1. Enable GPG signing in your global or local git config: git config --global commit.gpgsign true.
  2. Ensure your GPG key is protected by a passphrase.
  3. Configure your gpg-agent.conf to use a terminal-based pinentry (e.g., pinentry-curses or pinentry-tty).
  4. Open a project in OpenCode.
  5. Stage changes and attempt to commit them via the OpenCode interface.

Screenshot and/or share link

Image

Operating System

Ubuntu 24.04

Terminal

gnome-terminal

Originally created by @jberclaz on GitHub (Feb 12, 2026). Originally assigned to: @kommander on GitHub. ### Description When using OpenCode to commit changes in a repository configured for GPG commit signing, the terminal-based passphrase prompt ([pinentry-curses](https://www.gnupg.org/related_software/pinentry/index.html)) conflicts with the OpenCode TUI. The prompt's drawing characters mingle with the OpenCode interface, making it impossible to enter the passphrase securely. This forces users to either kill the process or disable commit signing entirely, which is a security regression. ### Plugins _No response_ ### OpenCode version 1.1.63 ### Steps to reproduce 1. Enable GPG signing in your global or local git config: git config --global commit.gpgsign true. 2. Ensure your GPG key is protected by a passphrase. 3. Configure your gpg-agent.conf to use a terminal-based pinentry (e.g., pinentry-curses or pinentry-tty). 4. Open a project in OpenCode. 5. Stage changes and attempt to commit them via the OpenCode interface. ### Screenshot and/or share link <img width="1388" height="1066" alt="Image" src="https://github.com/user-attachments/assets/abe72df2-c371-4df0-8fab-464d77994691" /> ### Operating System Ubuntu 24.04 ### Terminal gnome-terminal
yindo added the opentuibug labels 2026-02-16 18:11:54 -05:00
Author
Owner

@github-actions[bot] commented on GitHub (Feb 12, 2026):

This issue might be a duplicate of existing issues. Please check:

  • #9808: Support for sudo and password-requiring commands in Bash tool (directly mentions GPG passphrase prompts)
  • #8097: Allow interactive terminal input for commands requiring user input (sudo, passwords, others)

Both of these issues address the broader problem of supporting interactive input that would resolve your GPG pinentry conflict.

@github-actions[bot] commented on GitHub (Feb 12, 2026): This issue might be a duplicate of existing issues. Please check: - #9808: Support for sudo and password-requiring commands in Bash tool (directly mentions GPG passphrase prompts) - #8097: Allow interactive terminal input for commands requiring user input (sudo, passwords, others) Both of these issues address the broader problem of supporting interactive input that would resolve your GPG pinentry conflict.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#9207