The TUI for pass
Project description
PassTUI
The TUI for pass — the standard Unix password manager.
About The Project
PassTUI is a terminal user interface for pass — the standard Unix password manager. It brings a keyboard-driven, visual experience to your encrypted password store without ever leaving the terminal.
If you live in the terminal and want a fast, intuitive way to manage your GPG-encrypted passwords, PassTUI is for you.
Built With
Features
- Browse your password store in a tree view
- Search / filter passwords in real time
- View and edit password entries in a built-in editor
- Copy password to clipboard with a single keystroke
- Copy username to clipboard with a single keystroke
- Copy any line to clipboard
- Create a new GPG key and password store
- Add new password entries
- Sync the password store with a remote Git repository
- Export your GPG key to a file
- Import a GPG key and re-encrypt the store
Getting Started
Prerequisites
pass relies on GPG to encrypt and decrypt passwords, so gpg must be installed on your system.
Ubuntu / Debian
sudo apt install gnupg
CentOS / Fedora
sudo yum install gnupg
openSUSE
sudo zypper install gpg2
Gentoo
emerge --ask app-crypt/gnupg
Arch
sudo pacman -Syu gnupg
macOS
brew install gnupg
Installation
Install PassTUI with uv
Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
Install passtui:
uv tool install --python 3.14 passtui
Then launch it:
passtui
Usage
Create a GPG Store
If you don't have a password store yet, PassTUI can create a GPG key and initialise the store for you in one step.
- Launch PassTUI:
passtui - Press
gto open the Create GPG Store dialog - Fill in your name, email
- Press
Enterto confirm
PassTUI will generate a 4096-bit RSA GPG key and initialise the store at ~/.password-store (or the path you provided).
Tip: The store path defaults to
~/.password-store. You can also set thePASSWORD_STORE_DIRenvironment variable to point to a different location before launching PassTUI.
Add a New Password
-
Press
nto open a blank entry in the editor -
Fill in your password, username, URL, and any extra notes following the template:
(your password) Username: your-username Url: https://example.com -
Press
Ctrl+Sto save -
When prompted, enter the path for the new entry (e.g.,
email/gmail)
Tip: The first line is always the password. PassTUI (and
pass) will copy only the first line when you use the copy-password shortcut.
View an Existing Password
- Navigate the tree with
j/k(or arrow keys) - Expand a folder with
Enter - Select an entry — its decrypted contents will appear in the editor panel on the right
- Press
eto move focus to the editor - From the editor you can:
- Press
cto copy the password to the clipboard - Press
bto copy the username to the clipboard - Press
yto copy the current line to the clipboard - Press
ito enter edit mode and make changes - Press
Ctrl+Sto save any edits
- Press
Sync with a Git Repository
PassTUI can push and pull your password store to/from a remote Git repository.
First-time setup (new store)
- Press
sto trigger a sync - When prompted, enter the remote repository URL (e.g.,
git@github.com:user/passwords.git) - PassTUI will initialise a Git repo, add the remote, and push
Subsequent syncs (store already has Git)
- Press
s - PassTUI will pull with rebase and then push automatically
Note: This workflow is designed for stores that were created fresh. If your store was cloned from an existing remote, manage Git operations outside of PassTUI for the initial setup.
Export a GPG Key
Exporting your GPG key lets you back it up or transfer it to another machine.
- Press
xto open the Export GPG Key dialog - Enter your GPG key passphrase
- Optionally enter a custom output path (defaults to
~/passtui/gpg-export.asc) - Press
Enterto export
The key will be saved as an ASCII-armored .asc file.
Warning: Keep this file in a safe place. Anyone who has it and knows your passphrase can decrypt your passwords.
Import a GPG Key
Importing a GPG key allows you to move your password store to a new machine or add a new trusted key.
- Press
zto open the Import GPG Key dialog - Enter the path to the
.asckey file (e.g.,~/passtui/gpg-export.asc) - Press
Enterto import
PassTUI will import the key, mark it as ultimately trusted, update the store's .gpg-id, and re-encrypt all entries with the new key.
Keybindings
Global
| Key | Action |
|---|---|
/ |
Focus the search bar |
n |
Add a new password entry |
e |
Focus the editor panel |
t |
Focus the password tree |
s |
Sync with Git |
g |
Create a new GPG Store |
x |
Export GPG key |
z |
Import GPG key |
Password Tree (T panel)
| Key | Action |
|---|---|
j / ↓ |
Move cursor down |
k / ↑ |
Move cursor up |
h |
Scroll left |
l |
Scroll right |
Enter |
Expand folder / select entry |
c |
Copy password to clipboard |
b |
Copy username to clipboard |
Editor (E panel)
| Key | Action |
|---|---|
i |
Enter edit mode |
Escape |
Cancel / exit edit mode |
j |
Move cursor down |
k |
Move cursor up |
h |
Move cursor left |
l |
Move cursor right |
c |
Copy password to clipboard |
b |
Copy username to clipboard |
y |
Copy current line to clipboard |
Ctrl+S |
Save changes |
Roadmap
- Config file
- Vi motions for password editor
- Custom keybindings
- Imports
- 1Password txt or 1pif data
- KeePass KeepassX XML / CSV data
- Figaro's Password Manager XML data
- LastPass CSV data
- Ked Password Manager data
- Revelation Password Manager data
- Password Gorilla data
- PWSafe data
- KWallet data
- Roboform data
- password-exporter data
- pwsafe data
See the open issues for a full list of proposed features and known issues.
Contributing
Contributions, issues, and pull requests are welcome! See CONTRIBUTING.md for development setup instructions.
License
Distributed under the GNU General Public License v3. See LICENSE for more information.
Contact
Francisco Morales — fjmoralesp@outlook.com
Project Link: https://github.com/fjmoralesp/passtui
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file passtui-0.0.2b1.tar.gz.
File metadata
- Download URL: passtui-0.0.2b1.tar.gz
- Upload date:
- Size: 823.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07bbe7fea7fa86425bcbc493030357ecea5e8d9657329f2b534d9ea47323723c
|
|
| MD5 |
50729f64137c44842827676dec11a3f2
|
|
| BLAKE2b-256 |
9948c85872f4c3865eb7b3d5581751a57a0de13210a6f2149471e1d077adcf89
|
File details
Details for the file passtui-0.0.2b1-py3-none-any.whl.
File metadata
- Download URL: passtui-0.0.2b1-py3-none-any.whl
- Upload date:
- Size: 42.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64137a08454a45ab4d3b604207a5bec6d90d06391935765c38dba5c16cd85850
|
|
| MD5 |
b9c0a655b05088c544f481fcac5ce172
|
|
| BLAKE2b-256 |
be774d098f46a300d19490ff66dc3ad27953c8d839f99cecc11aeedba9920a1b
|