/alfred-pass

Alfred 4 workflow for pass

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

An Alfred 4 Workflow for Pass, Working on Mac M1

Fix issue on python2 and 3 , follow this link

Pacmax Page

Alfred forum page

This is an Alfred 2/3 workflow for Pass - the standard Unix password manager. It's based on passmenu, which is available for Linux.

Setup

To make this work you need:

  • Pass (obviously) -- needs to be set up with password store in ~/.password-store/.
  • gpg-agent -- install with brew
  • pinentry-mac -- also install with brew (this is GUI frontend for gpg-agent).
  • (optionally) the fuzzywuzzy and (also optionally) python-Levenshtein Python modules (install with pip install --user fuzzywuzzy python-Levenshtein)

Next configure gpg-agent to use pinentry-mac and not the bundled one, editing ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/local/bin/pinentry-mac

If you prefer to keep the terminal version of pinentry you can use the pinentry.sh wrapper from this repository as the pinentry-program. This will use the ncurses version when in console and the GUI version for Alfred etc.

You can also take a look at this blog post from @bshiller.

GPG tweaking

You can tweak some of the gpg-agent settings in ~/.gnupg/gpg-agent.conf:

max-cache-ttl 7200

After 7200 seconds, GPG will forget your master password.

Installation

After your system is set up as described above, download the latest package from Pacmax. Locate the file in Finder, right-click on it and choose 'Open With -> Alfred'. You will be prompted to install the workflow, so go ahead. Next fire up the Alfred console (Alt-Space by default) and type one of the commands described below.

Download the Workflow

Click Here to Download

Save , then Open in Finder

Usage

Basic Alfred commands:

pass <filter terms>

This will search through your passwords using the filter terms you provided.

The password will be copied to clipboard and cleared after 45 seconds (this is the default pass -c behavior). You can change that time by modifying the env variable PASSWORD_STORE_CLIP_TIME. Or in the pass-show.sh file you can change this line

generate <id>

Calls pass generate to add a new password with default length of 20 chars.

otp <filter terms>

This will search through your OTP passwords (requires pass-otp) using the filter terms you provided.

user <filter terms>

This will search the username of the password entry if found.

Development

To generate the pass.alfredworkflow file (which you can import to Alfred), just use

make