1 e346be82 2022-06-29 op .\" Copyright (c) 2021, 2022 Omar Polo <op@omarpolo.com>
3 e346be82 2022-06-29 op .\" Permission to use, copy, modify, and distribute this software for any
4 e346be82 2022-06-29 op .\" purpose with or without fee is hereby granted, provided that the above
5 e346be82 2022-06-29 op .\" copyright notice and this permission notice appear in all copies.
7 e346be82 2022-06-29 op .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 e346be82 2022-06-29 op .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 e346be82 2022-06-29 op .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 e346be82 2022-06-29 op .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 e346be82 2022-06-29 op .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 e346be82 2022-06-29 op .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 e346be82 2022-06-29 op .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 d9f2c8f8 2023-01-02 op .Dd Januaury 2, 2023
19 e346be82 2022-06-29 op .Nd manage passwords
24 5a0f0861 2022-09-09 op .Op Ar argument ...
25 e346be82 2022-06-29 op .Sh DESCRIPTION
27 e346be82 2022-06-29 op is a simple password manager.
28 2a7970ee 2022-10-01 op Passwords are stored as a directory tree where every password is a
29 2a7970ee 2022-10-01 op file encrypted with
32 2a7970ee 2022-10-01 op A password store is a
34 2a7970ee 2022-10-01 op repository with a worktree checked out at
35 d183259d 2022-12-17 op .Pa ~/.password-store .
36 2a7970ee 2022-10-01 op The only restriction is that a special file called
38 2a7970ee 2022-10-01 op containing the GPG recipient must exist in the root of the directory tree
41 2a7970ee 2022-10-01 op commands to work.
43 e346be82 2022-06-29 op Password entries can be referenced using the path relative to the
44 e346be82 2022-06-29 op store directory.
45 2a7970ee 2022-10-01 op The file extension
47 95d357f2 2023-01-02 op can be omitted.
50 b3b555d9 2022-10-05 op provides global and command-specific options.
51 b3b555d9 2022-10-05 op Global options must precede the command name, and are as follows:
52 b3b555d9 2022-10-05 op .Bl -tag -width Ds
54 b3b555d9 2022-10-05 op Display usage information and exit immediately.
57 e346be82 2022-06-29 op The following commands are available:
58 e346be82 2022-06-29 op .Bl -tag -width Ds
59 e346be82 2022-06-29 op .It Cm cat Ar entries ...
60 2a7970ee 2022-10-01 op Decrypt and print the content of
62 5a0f0861 2022-09-09 op in the given order.
63 8ce01796 2023-01-11 op .It Cm edit Ar entry
64 8ce01796 2023-01-11 op Modify the content of the given
66 8ce01796 2023-01-11 op using an editor.
67 e346be82 2022-06-29 op .It Cm find Op Ar pattern
68 2a7970ee 2022-10-01 op Print the entries of the store one per line, optionally filtered by
69 91fcc6e3 2023-01-11 op the case-insensitive
71 e346be82 2022-06-29 op .It Cm mv Ar from Ar to
72 e346be82 2022-06-29 op Rename a password entry, doesn't work with directories.
74 2a7970ee 2022-10-01 op must exist and
77 e346be82 2022-06-29 op .It Cm rm Ar entries ...
78 e346be82 2022-06-29 op Remove the given
80 e346be82 2022-06-29 op from the store.
81 e346be82 2022-06-29 op .It Cm tee Oo Fl q Oc Ar entry
82 78859d14 2022-10-20 op Persist the data read from standard input into the store under the given
84 d49216fe 2023-01-11 op name and then print it again on the standard output unless the
86 5a0f0861 2022-09-09 op option is given.
88 e346be82 2022-06-29 op .Sh ENVIRONMENT
89 e346be82 2022-06-29 op .Bl -tag -width Ds
90 e346be82 2022-06-29 op .It Ev PLASS_GOT
94 e346be82 2022-06-29 op .It Ev PLASS_GPG
98 e346be82 2022-06-29 op .It Ev PLASS_STORE
99 c992a1e9 2022-12-03 op Alternative path to the password store directory tree.
100 8ce01796 2023-01-11 op .It Ev VISUAL , Ev EDITOR
101 8ce01796 2023-01-11 op The editor spawned by
104 8ce01796 2023-01-11 op If not set, the
106 8ce01796 2023-01-11 op text editor will be used in order to given it the attention
110 e346be82 2022-06-29 op .Bl -tag -width Ds
111 e346be82 2022-06-29 op .It Pa ~/.password-store
112 329651fd 2023-01-11 op Default password store.
113 e346be82 2022-06-29 op .It Pa ~/.password-store/.gpg-id
114 2a7970ee 2022-10-01 op File containing the GPG recipient used to encrypt the passwords.
116 254b1ceb 2022-10-02 op .Sh EXIT STATUS
119 2a7970ee 2022-10-01 op A got repository and password store can be initialized as follows:
120 2a7970ee 2022-10-01 op .Bd -literal -offset indent
121 2a7970ee 2022-10-01 op $ mkdir ~/.password-store
122 2a7970ee 2022-10-01 op $ echo foo@example.com > ~/.password-store/.gpg-id
123 2a7970ee 2022-10-01 op $ gotadmin init ~/git/pass.git
124 2a7970ee 2022-10-01 op $ got import -r ~/git/pass.git -m 'initial import' ~/.password-store
125 2a7970ee 2022-10-01 op $ got checkout -E ~/git/pass.git ~/.password-store
130 2a7970ee 2022-10-01 op for more information.
132 2a7970ee 2022-10-01 op To migrate from
135 2a7970ee 2022-10-01 op .Pa ~/.password-store
136 2a7970ee 2022-10-01 op and check out it again using
139 c992a1e9 2022-12-03 op Generate a random password and save it to the clipboard:
140 2a7970ee 2022-10-01 op .Bd -literal -offset indent
141 c992a1e9 2022-12-03 op $ pwg | plass tee entry/name | xsel -b
144 5ed185dd 2022-10-02 op Display the entries matching
146 5ed185dd 2022-10-02 op arranged comfortably for reading in a terminal window:
147 5ed185dd 2022-10-02 op .Bd -literal -offset indent
148 5ed185dd 2022-10-02 op $ plass find key | rs
151 7c62b772 2022-12-03 op Enable tab-completion of
153 7c62b772 2022-12-03 op command names and entries in
155 7c62b772 2022-12-03 op .Bd -literal -offset indent
156 8ce01796 2023-01-11 op $ set -A complete_plass_1 -- cat edit find mv rm tee
157 7c62b772 2022-12-03 op $ set -A complete_plass -- $(plass find)
165 e346be82 2022-06-29 op was heavily influenced by
167 2a7970ee 2022-10-01 op in the design, but it's a different implementation that prioritizes ease
168 2a7970ee 2022-10-01 op of use and composability.
173 e346be82 2022-06-29 op utility was written by
174 e346be82 2022-06-29 op .An Omar Polo Aq Mt op@omarpolo.com .
178 e346be82 2022-06-29 op output format isn't designed to handle files containing newlines.
182 e346be82 2022-06-29 op or similar if it's a concern.
186 2a7970ee 2022-10-01 op is not able to move directory trees, only file entries.
188 d49216fe 2023-01-11 op There isn't an
190 e346be82 2022-06-29 op sub-command, the store initialization must be performed manually.