Files
Martin MeyerandClaude Opus 5.5 535aaaf924 feat(gpg-agent): add ssh-support style to skip the gpgconf check (#14171)
The plugin runs `gpgconf --list-options gpg-agent` on every shell start
to learn whether `enable-ssh-support` is set. On macOS with GnuPG 2.5.24
that one command takes about 600 ms.

The `ssh-support` style lets the user state the answer instead. With
`no` the plugin sets `GPG_TTY` and stops. That also skips the preexec
hook, which runs `gpg-connect-agent updatestartuptty` before every
command and is only needed for ssh support. With `yes` the plugin sets
`SSH_AUTH_SOCK` without asking.

Left unset, the plugin detects as before, so existing setups do not
change.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:46:27 -07:00
..

gpg-agent

Applies some fixes for some common issues encountered with GPG's gpg-agent.

More specifically, this plugin:

  • Updates the GPG_TTY environment variable before each shell execution.
  • Updates the SSH_AUTH_SOCK environment variable if gpg-agent is your SSH agent. By default the plugin checks whether enable-ssh-support is turned on. The ssh-support setting lets you say so yourself.

To use it, add gpg-agent to the plugins array of your zshrc file:

plugins=(... gpg-agent)

Settings

Every time a shell starts, the plugin runs gpgconf --list-options gpg-agent to find out whether enable-ssh-support is turned on. That check can be slow. If you already know the answer, state it with the ssh-support style and the plugin skips the check. Set it in your zshrc, before Oh My Zsh is sourced.

If you don't use gpg-agent as your SSH agent:

zstyle ':omz:plugins:gpg-agent' ssh-support no

The plugin then only sets GPG_TTY. It leaves SSH_AUTH_SOCK alone, and it doesn't update the agent's tty before each command, which only SSH support needs.

If you do use gpg-agent as your SSH agent:

zstyle ':omz:plugins:gpg-agent' ssh-support yes

The plugin then sets SSH_AUTH_SOCK without checking. enable-ssh-support still has to be set in your gpg-agent.conf for SSH to work.

Leave the style unset to keep the automatic check.