| name | proton-pass |
| description | Manage Proton Pass vaults and secrets using pass-cli. Use for: listing vaults/items, retrieving passwords, creating/updating items, generating TOTP codes, injecting secrets, running with Pass env vars, or SSH agent. Triggers on 'Proton Pass'. |
Proton Pass CLI
CLI binary: pass-cli
Authentication
pass-cli login
pass-cli test
pass-cli info
pass-cli logout
Vaults
pass-cli vault list
pass-cli vault list --output json
pass-cli vault create --name "Work" --description "Work credentials"
pass-cli vault update --vault-name "Work" --name "Work Secrets"
pass-cli vault delete --vault-name "Work"
pass-cli vault share --vault-name "Work" --email user@example.com
Items
Listing and viewing
pass-cli item list
pass-cli item list "VaultName"
pass-cli item list --filter-type login
pass-cli item list --output json
pass-cli item view --item-title "GitHub"
pass-cli item view --vault-name "Work" --item-title "GitHub"
pass-cli item view --item-title "GitHub" --field password
pass-cli item view --output json --item-title "GitHub"
pass-cli item view pass://SHARE_ID/ITEM_ID
pass-cli item view pass://SHARE_ID/ITEM_ID/password
Item URI format: pass://SHARE_ID/ITEM_ID[/FIELD] — get share IDs from vault list --output json
Creating items
pass-cli item create login --vault-name "Personal" \
--title "GitHub" --username "alice" --email "alice@example.com" \
--password "secret" --url "https://github.com"
pass-cli item create login --vault-name "Personal" --title "GitHub" \
--generate-password
pass-cli item create login --title "GitHub" --generate-password="20,true,true"
pass-cli item create login --get-template
pass-cli item create login --from-template item.json
pass-cli item create login --from-template - < item.json
pass-cli item create note --vault-name "Personal" --title "Notes"
pass-cli item create ssh-key --vault-name "Work" --title "Deploy Key"
pass-cli item create credit-card --vault-name "Finance" --title "Visa"
pass-cli item create identity --vault-name "Personal" --title "Passport"
pass-cli item create wifi --vault-name "Home" --title "HomeNetwork"
pass-cli item create custom --vault-name "Work" --title "API Keys"
Updating and managing
pass-cli item update --item-title "GitHub" --field "username=newuser"
pass-cli item update --item-title "GitHub" --field "password=newpass" --field "username=alice"
pass-cli item move --item-title "GitHub" --vault-name "Work"
pass-cli item trash --item-title "OldItem"
pass-cli item untrash --item-title "OldItem"
pass-cli item delete --item-title "OldItem"
Secret Injection
Inject secrets into templated config files using {{ pass://SHARE_ID/ITEM_ID/FIELD }} syntax:
pass-cli inject -i config.template
pass-cli inject -i config.template -o .env
pass-cli inject -i config.template -o .env -f
Run Commands with Secrets as Env Vars
pass-cli run -- ./my-script.sh
pass-cli run --env-file .env.template -- node server.js
pass-cli run --no-masking -- printenv
Password Generation
pass-cli password generate random
pass-cli password generate random --length 24 --no-symbols
pass-cli password generate passphrase
pass-cli password generate passphrase --word-count 5
pass-cli password score "mypassword"
TOTP
pass-cli totp generate --secret "BASE32SECRET"
pass-cli totp generate --uri "otpauth://totp/..."
pass-cli item totp --item-title "GitHub"
SSH Agent
pass-cli ssh-agent start
pass-cli ssh-agent load
pass-cli ssh-agent debug
Tips
- Use
--output json on list/view commands for scripting
- Prefer
--item-title for interactive use; use --item-id + --share-id in scripts for reliability
pass-cli item view --field password --item-title "X" returns just the password value — useful for piping
- Run
pass-cli test first if commands fail unexpectedly (session may have expired)