/pa

a simple password manager. encryption via age, written in portable posix shell

Primary LanguageShellOtherNOASSERTION

                   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
      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
    <opens $EDITOR>

    $ 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

    > is pa secure?

      if you would like to understand the
      security characteristics of pa, please
      read my blog post[2], and my explanation[3].

    > why u make this?

      see [2].

    > where are my keys?

      probably the default locations:
        ~/.local/share/pa/identities
        ~/.local/share/pa/recipients

    > where are my passwords?

      probably the default location:
        ~/.local/share/pa/passwords

    > how do i rename a password?

      cd ~/.local/share/pa/passwords
      mv foo.age bar.age


  credits
    - pa was originally forked from pash[4] by dylanaraps[5]
    - age[1] is a project by Filippo Valsorda[6]


  refs
    [1]: https://github.com/FiloSottile/age
    [2]: https://j3s.sh/thought/storing-passwords-with-age.html
    [3]: biox#10 (comment)
    [4]: https://github.com/dylanaraps/pash
    [5]: https://github.com/dylanaraps
    [6]: https://filippo.io