From gpg-ops
Decrypt a GPG-encrypted file (.gpg or .asc) using the local keyring. Handles both asymmetric (key-encrypted) and symmetric (passphrase-encrypted) ciphertext — GPG auto-detects which. Use when the user receives an encrypted file or has at-rest encrypted backups they need to read.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin gpg-opsThis skill uses the workspace's default tool permissions.
The user has a `.gpg`, `.asc`, or `.pgp` file (or armored text) they want to decrypt.
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
The user has a .gpg, .asc, or .pgp file (or armored text) they want to decrypt.
gpg --list-packets <file>
Look at the first packet:
pubkey enc packet → asymmetric (encrypted to a public key). You need the matching secret key on the ring.symkey enc packet → symmetric (passphrase-encrypted). You need the passphrase.If --list-packets shows the encryption was to a key ID you don't have on the keyring (gpg --list-secret-keys doesn't list it), you can't decrypt — surface that explicitly.
gpg --output <plaintext-file> --decrypt <file>.asc
GPG prompts for the passphrase (either your secret-key passphrase for asymmetric, or the symmetric passphrase). The output filename is preserved from the encrypted file's metadata if you omit --output:
gpg --decrypt-files <file>.asc
gpg --decrypt <file>.asc
Useful for streaming (e.g. piping to tar xzf - for an encrypted tarball).
If the ciphertext was signed-and-encrypted, decryption automatically verifies the signature. Watch for gpg: Good signature from "..." in stderr. A WARNING or BAD signature line means the file is tampered or the signer's key isn't trusted — don't ignore it.
gpgconf --reload gpg-agent.pinentry handle them (graphical or curses, depending on your gpg-agent config).