https://github.com/biox/pa Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} biox / pa Public * Notifications * Fork 5 * Star 230 a simple password manager. encryption via age, written in portable posix shell License View license 230 stars 5 forks Star Notifications * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights biox/pa This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 2 branches 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/b] Use Git or checkout with SVN using the web URL. [gh repo clone biox/p] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @biox biox Clarify pronunciation ... e5fb42b Dec 28, 2022 Clarify pronunciation e5fb42b Git stats * 30 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time contrib Utilize age identity and recipient files Dec 28, 2022 LICENSE.md Update license May 15, 2021 README Clarify pronunciation Dec 28, 2022 pa Make pw_edit security logic clearer Dec 28, 2022 View code README pa a simple password manager features - encryption implemented using age[1] - automatic key generation - multiple identity/recipient support - written in portable posix shell - simple to extend - only ~130 lines of code - pronounced "pah" - as in "papa" dependencies - age - age-keygen usage $ pa help pa a simple password manager based on age commands: [a]dd [name] - Add a password entry. [d]el [name] - Delete a password entry. [e]dit [name] - Edit a password entry with nvim. [l]ist - List all entries. [s]how [name] - Show password for an entry. env vars: Password length: export PA_LENGTH=50 Password pattern: export PA_PATTERN=_A-Z-a-z-0-9 Password/key dir: export PA_DIR=~/.local/share/pa/passwords command examples $ pa add test Generate a password? [y/n]: y Saved 'test' to the store. $ pa list test $ pa show test vJwKuEBtxBVvdR-xppTdfofIei0oLlkoSK4OCSP2bMEBsP6ahM $ pa edit test $ pa del test Delete pass file 'test'? [y/n]: y faq > how does this differ from pass, passage, etc? pa is smaller. simpler. cleaner. plainer. harder. better. faster. stronger. more than ever, hour after hour work is never over > why u make this? if you're curious, i wrote a whole blog post about my reasons[2] > where are my keys? probably in the default locations: secret: ~/.local/share/pa/identities public: ~/.local/share/pa/recipients > where are my passwords? probably the default location: ~/.local/share/pa/passwords > how can i rename a password? cd ~/.local/share/pa/passwords mv foo.age bar.age credits - pa was originally forked from pash[3] by dylanaraps[4] - age is a project by Filippo Valsorda[5] [1]: https://github.com/FiloSottile/age [2]: https://j3s.sh/thought/storing-passwords-with-age.html [3]: https://github.com/dylanaraps/pash [4]: https://github.com/dylanaraps [5]: https://filippo.io About a simple password manager. encryption via age, written in portable posix shell Resources Readme License View license Stars 230 stars Watchers 4 watching Forks 5 forks Releases No releases published Packages 0 No packages published Contributors 3 * @biox biox j3s * @alanxoc3 alanxoc3 Alan Morgan * @tgharib tgharib Taha Gharib Languages * Shell 100.0% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.