šŸ’¾ Archived View for gemini.omarpolo.com ā€ŗ post ā€ŗ plass-0.1.gmi captured on 2024-03-21 at 15:08:17. Gemini links have been rewritten to link to archived content

View Raw

More Information

ā¬…ļø Previous capture (2023-01-29)

-=-=-=-=-=-=-

plass(1) first public release

Manage Passwords

Written while listening to ā€œCielo Super Accesoā€ by Verdena.

Published: 2022-10-02

Tagged with:

#perl

#unix

TL;DR plass(1) is a NIH pass(1), but I like it more!

Many many moons ago, so many that I donā€™t remember the details, I was trying to hack something with pass(1) and got really fed up with it. It was my second password manager, with keepassxc being the first, and I really loved the idea behind it but I started to hate the interface.

I remember that I found the output of the various pass commands difficoult to parse programmatically; having to bypass it (for example by means of find(1) seems wrong.) When Iā€™m using a CLI tool, I want a good output I can further hack on.

For those who donā€™t know, pass(1) is a simple password manager. It stores passwords in a directory tree rooted at ā€˜~/.password-storeā€™ where the passwords are files encrypted with GPG. How to organize things is up to you; for example if I have to save the password for the website ā€˜example.comā€™ where my username is ā€˜fooā€™ Iā€™d probably persist it as ā€˜www/example.com/fooā€™.

So, dirven by my scriptability problem (and also the fact that I wanted to use got(1) instead of git(1)) I wrote mine. The name? Itā€™s a ā€œperl passā€, so ā€œplassā€! (God, Iā€™m awful at picking names...)

plass(1) web page

What Iā€™m really happy about plass is that I started with a set of commands that I thought they were ā€œminimalā€ and managed to remove stuff as I went on in the implementation.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

The command set of plass is indeed very minimal and it mimicks a bit the other well-known tools, so it should be pretty self-explanatory

The only thing that I may remove in the future is the ā€˜genā€™ (generate password) command. I think that it may be better to reuse an existing password generator and use ā€˜plass teeā€™ to persist the password:

$ cool-password-generator | plass tee www/example.com | clip

Otherwise, the command set of ā€˜plassā€™ is very minimal: it provides a mean to manage sets of encrypted files and nothing more. It doesnā€™t have flags to copy something from or to the clipboard, or to do other fancy things.

plass(1) man page

One small perk is that it implicitly uses got(1) to track changes to the file set, so changes are automatically committed to a git repository. I think itā€™s cool, and being able to create branches was really helpful during the development and testing of the utility.

At the moment plass is completely compatible with pass. If youā€™re using pass but want to give plass a try you just need to re-check out ~/.password-store with got(1) and plass should work out of the box. If you want to go back, re-re-check out your pass repo with git to go back to pass(1).

However, in the future, Iā€™d like to change the encryption to something different to gpg.

-- text: CC0 1.0; code: public domain (unless specified otherwise). No copyright here.