{"id":13649780,"url":"https://github.com/geluk/pass-winmenu","last_synced_at":"2025-04-22T15:30:52.253Z","repository":{"id":40850283,"uuid":"52992791","full_name":"geluk/pass-winmenu","owner":"geluk","description":"An easy-to-use password manager for Windows, compatible with pass.","archived":false,"fork":false,"pushed_at":"2024-04-18T19:01:26.000Z","size":104266,"stargazers_count":379,"open_issues_count":10,"forks_count":24,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-03T02:03:00.521Z","etag":null,"topics":["cryptography","csharp","gpg","pass","password-manager","password-store","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geluk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-03-02T20:08:20.000Z","updated_at":"2024-07-30T01:21:03.000Z","dependencies_parsed_at":"2023-01-19T22:04:04.923Z","dependency_job_id":"5c9bf395-b465-43d1-8157-ba068c93be39","html_url":"https://github.com/geluk/pass-winmenu","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geluk%2Fpass-winmenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geluk%2Fpass-winmenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geluk%2Fpass-winmenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geluk%2Fpass-winmenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geluk","download_url":"https://codeload.github.com/geluk/pass-winmenu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223900372,"owners_count":17222028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","csharp","gpg","pass","password-manager","password-store","windows"],"created_at":"2024-08-02T02:00:25.113Z","updated_at":"2024-11-10T00:31:43.166Z","avatar_url":"https://github.com/geluk.png","language":"C#","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=X46C4FW3NQAYS\u0026source=url"],"categories":["Interfaces","C# #"],"sub_categories":["All other extensions"],"readme":"# pass-winmenu\n\nA simple, easy-to-use password manager for Windows.\n\nPass-winmenu follows the philosophy of (and is compatible with) the Linux password manager [pass](https://www.passwordstore.org), which defines an open standard for password management that's easy to extend and customise to your personal requirements.\n\n---\n\n![demonstration GIF](https://i.imgur.com/ihaveJt.gif)\n\nDonations to this project will go to acquiring a code signing certificate; for verifying downloads and allowing Windows Defender to eventually start trusting the application.\n\n[![Donation button](https://www.paypalobjects.com/en_US/NL/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=X46C4FW3NQAYS\u0026source=url)\n\n## Introduction\n\n[Pass (https://www.passwordstore.org)](https://www.passwordstore.org) stores passwords as GPG-encrypted files organised into a directory structure.\nIts simplicity and modularity offer many advantages, most importantly:\n\n- Cryptography is handled by GPG, an open-source, high quality security suite trusted and used by\n  security analysts, journalists, Linux distributions and many other parties all over the world\n- The use of open standards makes it easy for anyone to develop compatible password managers\n  for any platform they like (Linux, Android, Windows, Mac OS, etc)\n- Because the passwords are simply stored as encrypted files in directories, you can organise them\n  with your file manager and synchronise them across your devices using whatever method you prefer\n  (Git, Dropbox, Nextcloud, etc).\n- The passwords are encrypted with your GPG key, which can only be unlocked with\n  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.\n\nWhile 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.\n\n## Usage\n\nBring up the password menu with the keyboard shortcut `Ctrl Alt P`.\nThe password menu allows you to quickly search through your passwords to find the one you are looking for.\nNavigate 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.\n\nThe password will be decrypted using GPG, and your GPG key passphrase may be requested through pinentry.\nThe decrypted password will then be copied to your clipboard and/or entered into the active window,\ndepending on your `pass-winmenu.yaml` settings.\n\n## Configuration\n\nPass-winmenu can be configured using the `pass-winmenu.yaml` configuration file located next to the `pass-winmenu.exe` executable.\n\nThe 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](https://github.com/geluk/pass-winmenu/blob/master/pass-winmenu/embedded/default-config.yaml)). 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.\n\n## Dependencies\n\nPass-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.\n\nGit support is provided by LibGit2Sharp, which requires some native dependencies which are contained within the\nrelease builds.\n\nFor convenience, the release builds also contain a portable GPG installation, which pass-winmenu uses by default.\nIf you already have GPG installed, you may want to use that instead. In that case, you can download the\n`nogpg` release, which will use your native GPG installation.\n\n## Installation\n\nInstalling pass-winmenu is as easy as downloading the zip file for the [latest release](https://github.com/Baggykiin/pass-winmenu/releases) 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](https://chocolatey.org/packages/pass-winmenu) and [Scoop](https://github.com/ScoopInstaller/Extras/blob/master/bucket/pass-winmenu-nogpg.json) packages are also available.\n\nIf this is your first time using `pass`, you'll want to create a password store and import/create your GPG keys next.\nThis process is explained below.\n\n### Setting up GPG:\n\nIf you already have a GPG key, you can skip this step and go to ['creating a new password store'](\n#creating-a-new-password-store).\nIf you've never used GPG before, you can generate a new key. Start pass-winmenu, right click the key icon\nin the notification area, and click `Open shell`.\n\nThis will open a PowerShell window in which you'll be able to set up your GPG keys.\nStart by generating a new key:\n\n```\npowershell\u003e gpg --gen-key\n```\n\nFollow 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.\n\n### Creating a new password store:\n\nDetermine in which directory you want to store your passwords.\nBy default, pass-winmenu will assume it's `%USERPROFILE%\\.password-store`.\nIf you want to use that directory, create it:\n```\npowershell\u003e mkdir $HOME\\.password-store\n```\n\nSave the email address you used for creating your GPG key into a `.gpg-id` file in the root of your password directory.\nIf you have multiple keys with the same email address, you can also use the key ID instead.\n```\npowershell\u003e echo \"myemail@example.com\" | Out-File -Encoding utf8 $HOME\\.password-store\\.gpg-id\n```\n\nIf you've used a different location for your password store directory, you'll have to point pass-winmenu to it.\nOpen `pass-winmenu.yaml` in the directory where you've installed the application, and set the `password-store`\nvariable to the correct location. Exit pass-winmenu if it was running, and start it again.\n\nYou should now have a working password manager.\n\n### Password synchronisation\n\nIf you want to access your passwords on multiple devices, you have several options.\nWhat 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.\n\nTo synchronise your passwords using Git, initialise a new Git repository at the root of your password store:\n```\npowershell\u003e cd $HOME\\.password-store\npowershell\u003e git init\npowershell\u003e git add -A\npowershell\u003e git commit -m \"Initialise password repository\"\n```\n\nYou'll also need a remote Git server. GitLab offers free private repositories, and [GitHub does too](https://help.github.com/en/github/administering-a-repository/setting-repository-visibility#making-a-repository-private)\nfor private accounts and up to three collaborators. Alternatively, you can of course run your own Git server.\n\nAdd 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:\n\n```\npowershell\u003e git remote add origin https://github.com/yourusername/password-store.git\npowershell\u003e git push --set-upstream origin master\n```\n\n### Accessing an existing password store on a different host\n\nIf you already have a password store and you want to access it from another computer, you'll have\nto 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:\n\n```\npowershell\u003e gpg --export-secret-key -a youremailaddress@example.com \u003e private.key\n```\n\nCopy the `private.key` file to the machine on which you're setting up your password store, and import it.\n\n```\npowershell\u003e gpg --import private.key\n```\n\nNow, set the key validity so that it can be used to decrypt your password files.\n\n```\npowershell\u003e gpg --edit-key youremailaddress@example.com\ngpg\u003e trust\n```\n\nSet the trust level to `5` (ultimate trust) and save your key.\n```\ngpg\u003e save\n```\n\nClone your password repository\n\n```\npowershell\u003e git clone https://github.com/yourusername/password-store.git $HOME/.password-store\n```\n\nThen run pass-winmenu, edit the generated `pass-winmenu.yaml` configuration file as necessary,\nand start it again.\n\n## Cross-platform support\n\nCheck out https://www.passwordstore.org/#other if you're looking for implementations for other operating systems.\n\nPersonally, I use [Android Password Store](https://github.com/zeapo/Android-Password-Store) for Android, and [a dmenu script](https://geluk.io/p/passmenu.sh) for Linux, which I've adapted from [this script](https://git.zx2c4.com/password-store/tree/contrib/dmenu).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeluk%2Fpass-winmenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeluk%2Fpass-winmenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeluk%2Fpass-winmenu/lists"}