1 .\" Copyright (c) 2021, 2022 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.
29 is a simple password manager.
30 It manages paswords store in a directory tree rooted at
32 .Pq or at Ev PLASS_STORE ,
33 where every password is a single file encrypted with
36 Password entries can be referenced using the path relative to the
42 The whole store is supposed to be managed by the
44 version control system.
46 The following commands are available:
48 .It Cm cat Ar entries ...
49 Decrypt and print the content of the given
51 .It Cm find Op Ar pattern
52 Print one per line all the entries of the store, optionally filtered
55 .It Cm gen Oo Fl nq Oc Oo Fl c Ar chars Oc Oo Fl l Ar length Oc Ar entry
56 Generate and persist a password for the given
60 can be used to control the characters allowed in the password
63 i.e. all the printable ASCII characters)
72 prints the generated password.
75 flag is given, the password won't be persisted.
76 .It Cm got Ar arguments
79 in the password store directory with the given
81 .It Cm mv Ar from Ar to
82 Rename a password entry, doesn't work with directories.
87 .It Cm rm Ar entries ...
91 .It Cm tee Oo Fl q Oc Ar entry
92 Prompt for a password and persist it into the store under the given
94 name and the print it again on the standard output.
97 option is given, nothing is printed to standard output.
98 .It Cm tog Ar arguments ...
101 in the password store directory with the given
104 .Sh CREATING A PASSWORD STORE
105 A password store is just a normal
107 repository with a worktree checkout out in
108 .Pa ~/.password-store
109 .Pq or at Ev PLASS_STORE .
110 The only restriction is that a special file called
112 must exist in the root of the work tree for most
116 For example, a got repository and password store can be initialized as
118 .Bd -literal -offset indent
119 $ mkdir .password-store
120 $ echo foo@example.com > .password-store/.gpg-id
121 $ got init git/pass.git
122 $ got import -r git/pass.git -m 'initial import' ~/.password-store
123 $ got checkout -E ~/git/pass.git ~/.password-store
128 for more information.
130 Otherwise, if a repository already exists, a password store can be
132 .Bd -literal -offset indent
133 $ got checkout ~/git/pass.git ~/.password-store
139 .Pa ~/.password-store
140 and check out it again using
145 default range of characters to use to generate passwords.
155 Default length for the generated passwords.
157 Path to the password store directory tree.
165 .It Pa ~/.password-store
166 Password store used by default.
167 .It Pa ~/.password-store/.gpg-id
168 File containing the gpg recipient used to encrypt the passwords.
172 was heavily influenced by
174 in the design, but it's a completely different implementation with
175 different tools involved.
180 utility was written by
181 .An Omar Polo Aq Mt op@omarpolo.com .
185 output format isn't designed to handle files containing newlines.
189 or similar if it's a concern.
193 sub-command, the store initialization must be performed manually.