项目处于维护模式,作者已不再使用;首次使用需自行生成 GPG 密钥并创建密码库目录;默认密码库路径为 %USERPROFILE%.password-store,改路径需编辑 pass-winmenu.yaml;普通版自带便携 GPG,已有 GPG 应选 nogpg 版
pass-winmenu
gelukMIT活跃维护Windows 上的图形化密码管理器,直接读写 pass 的密码库,用 GPG 加解密,让习惯命令行 pass 的人在桌面端也能方便地存取密码。
An easy-to-use password manager for Windows, compatible with pass.
下载最新 release 的 zip 解压到任意目录即可运行;若已装 GPG 可选 nogpg 版本README 未说明;仅支持 Windows,需 .NET Framework 4.6.2(Windows 10 默认自带)
Windows 上的 pass 兼容密码管理器,用 GPG 加密文件存密码,快捷键唤起菜单
Windows 上的图形化密码管理器,直接读写 pass 的密码库,用 GPG 加解密,让习惯命令行 pass 的人在桌面端也能方便地存取密码。
核心能力
- 按 Ctrl Alt P 唤起密码菜单并搜索路径
- 用空格分隔多个关键词过滤密码路径
- 解密后复制到剪贴板或输入到当前窗口
- 密码以 GPG 加密文件按目录结构存储
- 通过 pass-winmenu.yaml 配置文件调整行为
容易踩的坑
- v1.14最新正式版2024-01-14 · 2024-01-14 19:38 UTC
New features
- A commmandline
pw.exeapplication is now additionally supplied. Likepass-winmenu, it expects apass-winmenu.yamlconfiguration file telling it where to find passwords and how to decrypt them. It is mainly intended for scripting, as a simple alternative to installingpasson Windows.
Changes
- Pass-winmenu has now been updated to .NET 6 (#82).
- When editing a password, the save button will be disabled if no changes have been made to the file (#121).
- The edit window for passwords now has a
Replacebutton allowing you to easily replace the password in a file with a newly generated one (#122). - Delay checking for presence of a valid password store directory. This was previously done on startup, but is now done just before the first invocation (#126).
Bugfixes
- Fixed
.gpgextension mistakenly being included in the$filenamevariable (#120) - Consistently use
\nas line terminator in edited password files (#123)
Thanks to everyone who submitted issues, and especially @scerzh for submitting several PR's for this release.
- A commmandline
- v1.13.12022-10-17 · 2022-10-17 16:39 UTC
查看更新说明
End of support for .NET 4.6.2
Starting from the next major version (1.14), pass-winmenu will be retargeted to .NET 6. Along with this, support for Windows 8.1 and older can no longer be guaranteed, and future releases will require you to have the .NET Desktop Runtime 6.0 installed. If you expect to run into problems as a result of this change, please let me know by opening an issue.
Bugfixes
- Fixed an issue preventing re-encryption of directories that do not contain any password files, when their subdirectories do contain password files (#105).
- Improved detection of the GPG home directory when updating
gpg-agent.conf - Fixed 'open shell' option not working if GPG or the GPG home directory is located at a path containing an apostrophe.
Changes
- Removed the
pinentry-fixfeature, which was meant to work around a bug GPG, where the pinentry window would not appear in the foreground. This workaround only sometimes managed to fix the issue, but it often still failed. If you run into issues with pinentry not appearing in the foreground, the recommended solution is to install Gpg4win instead, in which this issue is not present.
- v1.132022-03-20 · 2022-03-20 19:03 UTC
查看更新说明
New features
- Added support for generating TOTP codes (thanks @colemickens for the initial PR for this!) To use this feature, add a TOTP code to the password metadata like so:
You can also directly copy anTOTP: <secret>otpauthURL.
To generate a TOTP code, selectOTPAUTH: otpauth://otp/account?secret=<secret>generate TOTP codein the right-click menu of the notification area icon, or create a hotkey binding usinggenerate-totp-codeas action name.
Bugfixes
- Improved reliability of the hotkey parser (#103)
- Added support for generating TOTP codes (thanks @colemickens for the initial PR for this!) To use this feature, add a TOTP code to the password metadata like so:
- v1.12.12021-10-11 · 2021-10-11 19:40 UTC
查看更新说明
Changes
- Improved the relative path generation algorithm (used to generate relative paths for commit messages) (#97)
- Percentage dimensions (as used under the
styleconfiguration key) are now consistently parsed using a dot as the decimal separator. Previously, the culture-specific separator was used instead. - The 'agent responsive' check has been removed. This automated check has been present in pass-winmenu for a long time, and stems from a time when GPG on windows would occasionally lock up, leading to all password operations to hang indefinitely. The automated check would detect this situation and restart GPG when it occurs. As a result of a recent bug in the code (#99), and based on my belief that this bug in GPG has long since been fixed, I have decided to remove it. If you do run into lockups as I have described here, please let me know by opening an issue.
- Improved error message clarity when the
user.nameand/oruser.emailgit configuration variables are not set (#100).
Bugfixes
- Fixed an issue that could cause the application to crash when manually checking for updates (#96, thanks @wfdewith!)
- Fixed an error when setting the configuration key
git.ssh-pathif theGIT_SSHenvironment variable is also set (#98)
- v1.122021-09-02 · 2021-09-02 22:02 UTC
查看更新说明
New features
- Re-encrypting the password store is now possible. When re-encrypting, pass-winmenu will check for any files that need to have their recipients updated. Those files will be re-encrypted for the correct recipients. All other files are left untouched. Re-encryption can be started by right-clicking the notification area icon and selecting
More Options -> Re-Encrypt Password Store, and choosing a path to re-encrypt. passallows the use of thePASSWORD_STORE_KEYenvironment variable to override the recipients specified in.gpg-idwhen set. Pass-winmenu now also honours this variable (#86).- Custom gpg options can now be configured. These options will be passed to
gpg.exewhen passwords are encrypted or decrypted. Take a look at the default configuration file to see how you can configure these. (#86). - Search hints are now displayed in the search field of the password menu.
Changes
- The 'type password' feature now generates direct character input, instead of simulating key presses. This greatly improves compatibility with many keyboard layouts, especially those that have their own input methods. If you experienced issues with pass-winmenu typing the wrong characters, they have hopefully been resolved by this change. As a result of this change, the
dead-keysoption has become redundant and can be removed from the configuration file (#80). - When commiting a new or changed password, commit messages will now specify a path relative to the root of the password file instead of the full path (#89, #92, thanks @sbu-WBT!)
- Error reporting has been improved in a few places.
Bugfixes
- Fixed an issue causing decryption to hang when decrypting very large files (#90, thanks @batchmode!).
- Password files are no longer deleted when encryption fails after editing.
- Signed commits previously generated inconsistent line endings, which caused issues with some applications. This has been fixed (#94).
- Re-encrypting the password store is now possible. When re-encrypting, pass-winmenu will check for any files that need to have their recipients updated. Those files will be re-encrypted for the correct recipients. All other files are left untouched. Re-encryption can be started by right-clicking the notification area icon and selecting
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
pass-winmenu
A simple, easy-to-use password manager for Windows.
Pass-winmenu follows the philosophy of (and is compatible with) the Linux password manager pass, which defines an open standard for password management that's easy to extend and customise to your personal requirements.
ℹ️ This project is in maintenance mode. The main reason for this is that I personally do not use it anymore,* so I am no longer in a good position to review large contributions.

Introduction
Pass (https://www.passwordstore.org) stores passwords as GPG-encrypted files organised into a directory structure. Its simplicity and modularity offer many advantages, most importantly:
- Cryptography is handled by GPG, an open-source, high quality security suite trusted and used by security analysts, journalists, Linux distributions and many other parties all over the world
- The use of open standards makes it easy for anyone to develop compatible password managers for any platform they like (Linux, Android, Windows, Mac OS, etc)
- Because the passwords are simply stored as encrypted files in directories, you can organise them with your file manager and synchronise them across your devices using whatever method you prefer (Git, Dropbox, Nextcloud, etc).
- The passwords are encrypted with your GPG key, which can only be unlocked with your master password. A potential attacker will need to have your encrypted passwords, you GPG keys, and your master password to be able to do anything at all.
While many Linux integrations for pass are available, there are fewer options for Windows. Pass-winmenu aims to fill that gap. It allows for easy, keyboard-friendly interaction and has a minimal interface that stays out of your way.
Usage
Bring up the password menu with the keyboard shortcut Ctrl Alt P.
The password menu allows you to quickly search through your passwords to find the one you are looking for.
Navigate through the results by pressing Tab, and press Enter to decrypt the selected password. Use spaces between words to search for multiple substrings of the password path to filter more efficiently.
The password will be decrypted using GPG, and your GPG key passphrase may be requested through pinentry.
The decrypted password will then be copied to your clipboard and/or entered into the active window,
depending on your pass-winmenu.yaml settings.
Configuration
Pass-winmenu can be configured using the pass-winmenu.yaml configuration file located next to the pass-winmenu.exe executable.
The configuration file is extensively documented, and there are many settings that can be changed to tweak the application to your liking, so take your time to look through it (you can find an example here). You can always generate a new configuration file, containing all settings and their default values, by renaming or deleting the old one and starting pass-winmenu.
Dependencies
Pass-winmenu is built against .NET Framework 4.6.2, which is included by default in Windows 10, and usually already installed on older Windows versions.
Git support is provided by LibGit2Sharp, which requires some native dependencies which are contained within the release builds.
For convenience, the release builds also contain a portable GPG installation, which pass-winmenu uses by default.
If you already have GPG installed, you may want to use that instead. In that case, you can download the
nogpg release, which will use your native GPG installation.
Installation
Installing pass-winmenu is as easy as downloading the zip file for the latest release and extracting it anywhere you want. It is recommended that you download the regular release, unless you already have GPG installed and accessible from your commandline. In that case you can also use the nogpg release. Chocolatey and Scoop packages are also available.
If this is your first time using pass, you'll want to create a password store and import/create your GPG keys next.
This process is explained below.
Setting up GPG:
If you already have a GPG key, you can skip this step and go to 'creating a new password store'.
If you've never used GPG before, you can generate a new key. Start pass-winmenu, right click the key icon
in the notification area, and click Open shell.
This will open a PowerShell window in which you'll be able to set up your GPG keys. Start by generating a new key:
powershell> gpg --gen-key
Follow the instructions to generate your GPG keys. You'll be asked to enter a passphrase, this is the passphrase that you will use to decrypt your passwords, so make sure it is secure enough.
Creating a new password store:
Determine in which directory you want to store your passwords.
By default, pass-winmenu will assume it's %USERPROFILE%\.password-store.
If you want to use that directory, create it:
powershell> mkdir $HOME\.password-store
Save the email address you used for creating your GPG key into a .gpg-id file in the root of your password directory.
If you have multiple keys with the same email address, you can also use the key ID instead.
powershell> echo "[email protected]" | Out-File -Encoding utf8 $HOME\.password-store\.gpg-id
If you've used a different location for your password store directory, you'll have to point pass-winmenu to it.
Open pass-winmenu.yaml in the directory where you've installed the application, and set the password-store
variable to the correct location. Exit pass-winmenu if it was running, and start it again.
You should now have a working password manager.
Password synchronisation
If you want to access your passwords on multiple devices, you have several options. What follows are the instructions for setting up Git (which is by far the most popular option), but you can also use SVN, Dropbox, Google Drive, ownCloud, network shares, bittorrent sync, or anything else that synchronises files or provides access to them from multiple locations.
To synchronise your passwords using Git, initialise a new Git repository at the root of your password store:
powershell> cd $HOME\.password-store
powershell> git init
powershell> git add -A
powershell> git commit -m "Initialise password repository"
You'll also need a remote Git server. GitLab offers free private repositories, and GitHub does too for private accounts and up to three collaborators. Alternatively, you can of course run your own Git server.
Add an empty repository on your Git provider of choice, then connect your password store to it. It will usually come down to something like this:
powershell> git remote add origin https://github.com/yourusername/password-store.git
powershell> git push --set-upstream origin master
Accessing an existing password store on a different host
If you already have a password store and you want to access it from another computer, you'll have to import your GPG keys on it. Install pass-winmenu on your target PC, then export your GPG keys on the machine where you already have a working password store:
powershell> gpg --export-secret-key -a [email protected] > private.key
Copy the private.key file to the machine on which you're setting up your password store, and import it.
powershell> gpg --import private.key
Now, set the key validity so that it can be used to decrypt your password files.
powershell> gpg --edit-key [email protected]
gpg> trust
Set the trust level to 5 (ultimate trust) and save your key.
gpg> save
Clone your password repository
powershell> git clone https://github.com/yourusername/password-store.git $HOME/.password-store
Then run pass-winmenu, edit the generated pass-winmenu.yaml configuration file as necessary,
and start it again.
Cross-platform support
Check out https://www.passwordstore.org/#other if you're looking for implementations for other operating systems.
Personally, I use Android Password Store for Android, and a dmenu script for Linux, which I've adapted from this script.
*) I've moved away for a variety of reasons. When I started using pass, it was the only open source password manager that shared my belief that a password manager should just get out of the way and interfere as minimally with your workflow as possible. The 'amalgamation of open standards' approach of pass also appealed to me. I developed pass-winmenu as a natural extension to that, providing a simple way to bring the pass + dmenu flow to Windows. However, the pass project itself has not seen significant development in several years, and GPG has suffered from consistent usability issues that introduce friction whenever you need to deal with key management. Nowadays, the landscape has expanded significantly, and many password managers offer first class support for authentication standards such as TOTP and passkeys.