A GUI for the standard unix password manager.
Made with Go and the Gio UI toolkit.
Planned as a part of ADE (yet a mythical desktop environment).
- Fast search (by filter) and navigation in your password database.
- Copy passwords and other fields into the clipboard.
- Clipboard is automatically cleared after 60 seconds (customizable).
- Support markdown formatting for the fields.
- Per-field masking in the formatted view: prefix a metadata key with
.to hide its value (e.g..pin: 1234). - Card attachments: attach files to a password entry (images, PDFs, etc.), optionally GPG-encrypted, referenced from card metadata by pragma lines.
- Keep state between runs for selecting fields of the same record.
Shortcuts apply globally unless you are in edit mode (where arrows and Escape behave like a normal editor).
| Shortcut | Action |
|---|---|
| Escape | Quit the app (saves last selection to cache). In edit mode: cancel editing (or abandon a new card — see below). |
| ↑ / ↓ | Move selection in the list. |
| Ctrl+Enter | Toggle Formatted view ↔ Not Masked Source. If the “add new record” row is visible, also creates the new entry. |
| Ctrl+C | In Not Masked Source only: copy the current text selection to the clipboard (starts the same clear timer). |
| Ctrl+L | Copy the first matching field among login, user, username (case-insensitive keys). |
| Ctrl+E | Copy the first matching field among email, mail, e-mail. |
| Ctrl+O | Open a URL: looks for url or link, otherwise the first metadata value containing ://. Uses xdg-open. |
| Ctrl+M | Open edit mode for the selected entry (must be decrypted first). |
| Ctrl+R | After a failed decrypt (“Wrong key”), retry decryption for the selected entry. |
Attachments let you store files next to a password card (scans, photos, PDFs, etc.) while keeping a reference inside the card’s metadata.
For a card at documents/my-passport.gpg, files live in a sibling directory:
~/.password-store/
documents/
my-passport.gpg ← encrypted card (password + metadata)
my-passport/ ← attachment directory
scans/photo1.jpeg
secret.pdf.gpg ← optional per-file GPG encryption
Attachment files inside card directories are not listed as separate password entries.
Each attachment is declared on its own metadata line:
#relative/path;content-type
Examples:
#scans/photo1.jpeg;image/jpeg
#secret.pdf.gpg;application/pdf
Rules:
#must be the first non-space character on the line (no space after#).relative/pathis relative to the card’s attachment directory; subdirectories are allowed (scans/photo1.jpeg).content-typeis a MIME type (e.g.image/jpeg,application/pdf).- Prefix the line with
.to mask the attachment in formatted view (shows<file data>instead of the filename), same idea as masked KV fields:.#secret.txt;text/plain - Spaces in filenames can be written as
\in the path (e.g.#Sen\ titolo.png.gpg;image/png).
Metadata layout: key–value lines first, then attachment pragmas, then any free-form text (notes, Markdown).
Example card content:
hunter2
login: alice
url: https://example.com
#scans/id-front.jpeg;image/jpeg
#scans/id-back.jpeg.gpg;image/jpeg
Passport renewal notes…
- Decrypt the entry and open edit mode (Ctrl+M).
- Click Attach File (requires
zenityorkdialogfor the file picker). - Edit the target path if needed (e.g.
scans/photo1.jpeg). - Leave Encrypt with GPG checked to store
photo1.jpeg.gpg(recommended); uncheck to keep a plaintext file on disk. - Click Add, then Save so the pragma line is written into the card.
The file is copied into the attachment directory immediately; saving persists
the #path;type reference in the encrypted card.
In Formatted view:
- Click the filename or image preview — copy decrypted content to the clipboard (same clear timer as other copies).
- View — decrypt if needed, write a temporary file, and open it with
xdg-open. Temp files are removed after 30 seconds and on app exit.
Unencrypted images show an inline preview. Encrypted images and other file types show the filename only until opened.
Masked attachments (.#…) are hidden in formatted view and cannot be copied or
opened from there.
Compatible with common pass variables used by this app:
| Variable | Role |
|---|---|
PASSWORD_STORE_DIR |
Password store root (default ~/.password-store). |
PASSWORD_STORE_KEY |
Optional GPG key id for encryption when saving (otherwise recipients come from .gpg-id). |
PASSWORD_STORE_CLIP_TIME |
Seconds until the clipboard is cleared after a copy (default 60). |
Usable but still in development.
