1 .\" Copyright (c) 2022, 2023 Omar Polo <op@omarpolo.com>
3 .\" Permission to use, copy, modify, and distribute this software for any
4 .\" purpose with or without fee is hereby granted, provided that the above
5 .\" copyright notice and this permission notice appear in all copies.
7 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 is a password manager.
28 Every password lives inside a
30 encrypted file somewhere inside
32 which is managed with the
34 version control system to keep track of changes, recovery accidental
35 overwrites and synchronize it across devices.
37 The options are as follows:
40 Display usage information and exit immediately.
43 The following commands are available:
45 .It Cm cat Ar entries ...
46 Decrypt and print the content of
50 Interactively modify the content of the given
53 .It Cm find Op Ar pattern
54 Print the entries of the store one per line, optionally filtered by
57 .It Cm mv Ar from Ar to
58 Rename a password entry, doesn't work with directories.
63 .It Cm rm Ar entries ...
67 .It Cm tee Oo Fl q Oc Ar entry
68 Persist the data read from standard input into the store under the given
70 name and then print it again on the standard output unless the
75 Password entries can be referenced using the path relative to the
87 Alternative path to the password store directory tree.
88 .It Ev VISUAL , Ev EDITOR
94 text editor will be used to give it the attention it deserves.
98 .It Pa ~/.password-store
99 Default password store.
100 .It Pa ~/.password-store/.gpg-id
101 File containing the GPG recipient used to encrypt the passwords.
106 A got repository and password store can be initialized as follows:
107 .Bd -literal -offset indent
108 $ mkdir ~/.password-store
109 $ echo foo@example.com > ~/.password-store/.gpg-id
110 $ gotadmin init ~/git/pass.git
111 $ got import -r ~/git/pass.git -m 'initial import' ~/.password-store
112 $ got checkout -E ~/git/pass.git ~/.password-store
117 for more information.
122 .Pa ~/.password-store
123 and check out it again using
126 Generate a random password and save it to the clipboard:
127 .Bd -literal -offset indent
128 $ pwg | plass tee entry/name | xsel -b
131 Generate a TOTP token using the secret stored in the password store:
132 .Bd -literal -offset indent
133 $ plass cat 2fa/codeberg/op | totp
137 Interactively edit the contents of
141 .Bd -literal -offset indent
142 $ env VISUAL=mg plass edit entry/name
145 Display the entries matching
147 arranged comfortably for reading in a terminal window:
148 .Bd -literal -offset indent
149 $ plass find key | rs
152 Enable tab-completion of
154 command names and entries in
156 .Bd -literal -offset indent
157 $ set -A complete_plass_1 -- cat edit find mv rm tee
158 $ set -A complete_plass -- $(plass find)
167 was heavily influenced by
169 in the design, but it's a different implementation that prioritizes ease
170 of use and composability.
175 utility was written by
176 .An Omar Polo Aq Mt op@omarpolo.com .
180 output format isn't designed to handle files containing newlines.
184 or similar if it's a concern.
188 is not able to move directory trees, only file entries.
192 sub-command, the store initialization must be performed manually.