kpassh
A terminal TUI for browsing KeePass (KDBX) databases and managing SSH keys via the SSH agent.
Features
- Browse password entries by group with instant search
- Copy username, password, host, or URL to clipboard
- Detect and list SSH private keys (RSA, Ed25519, ECDSA) attached to KDBX entries
- Add/remove SSH keys to/from the running SSH agent — no passphrase prompt if stored in the entry's password field
- Reads the SSH key comment from the key file itself, preserving the original comment in the agent
- Internationalization: automatically uses English or Korean based on the OS locale (
LANGUAGE/LANG)
Installation
uv tool install .
Requirements
- Python >= 3.9
- Dependencies:
pykeepass,textual,cryptography,bcrypt,appdirs - Clipboard: one of
wl-copy(Wayland),xclip, orxsel(X11)
Setup
Before the first run, place your KDBX database in the app data directory:
kpassh-db path # show the expected database path
kpassh-db push # copy database.kdbx from the current directory
kpassh-db push -i my.kdbx # specify a custom filename
Usage
TUI viewer
kpassh # use the default database
kpassh /path/to/database.kdbx # specify a file
Enter the master password when prompted, then navigate the TUI.
Key bindings
General
| Key | Action |
|---|---|
1 |
Switch to Passwords tab |
2 |
Switch to SSH Keys tab |
q |
Quit |
Passwords tab
| Key | Action |
|---|---|
Tab / Shift+Tab |
Switch focus between Groups and Entries panels |
/ |
Open search (group name, title, username, URL) |
Esc |
Clear search / go back |
u |
Copy username to clipboard |
p |
Copy password to clipboard |
h |
Copy host to clipboard (from Host: line in Notes, or URL) |
l |
Copy URL to clipboard |
SSH Keys tab
| Key | Action |
|---|---|
a |
Add selected key to SSH agent |
d |
Remove selected key from SSH agent |
The passphrase is automatically read from the entry's Password field when adding a key. A manual prompt appears only if the entry has no password or the password is incorrect.
Database file management
The database is stored in the OS-specific user data directory.
| OS | Path |
|---|---|
| Linux | ~/.local/share/kpassh/database.kdbx |
| macOS | ~/Library/Application Support/kpassh/database.kdbx |
| Windows | C:\Users\<user>\AppData\Local\kpassh\database.kdbx |
kpassh-db path # print the database path
kpassh-db pull # copy from app data dir to current directory
kpassh-db pull -o backup.kdbx # specify output filename
kpassh-db push # copy from current directory to app data dir
kpassh-db push -i edited.kdbx # specify input filename
kpassh-db pull/push -f # overwrite if destination already exists
Project structure
kpassh/
__init__.py
main.py # TUI viewer (Textual)
ssh_agent.py # SSH agent socket protocol, key parsing and fingerprinting
db.py # Database file management CLI
i18n.py # Internationalization (gettext, auto-detects OS locale)
locale/
ko/LC_MESSAGES/
kpassh.po # Korean translations source
kpassh.mo # compiled catalog
database.kdbx # bundled default database
License
BSD 3-Clause License. See LICENSE for details.
Release files for kpassh 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kpassh-0.2.0.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kpassh-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.9 kB
Release files / kpassh-0.2.0.tar.gz
| Download URL | kpassh-0.2.0.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ea8d95983d6688d0b56345dc2a2245d397e5b179c1e27fa007b5eaf71b5563d
|
|
BLAKE2b-256 checksum How to use checksums |
d51c5976a20e071629c5943f9a24d09247a54b1006adb507e66494d4a7a70074
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kpassh-0.2.0-py3-none-any.whl
| Download URL | kpassh-0.2.0-py3-none-any.whl |
|---|---|
| Size | 18.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d73a218ae072e4d879a8c8aed5398651d64eeb3fed1d7b9fd5c7502be18a288
|
|
BLAKE2b-256 checksum How to use checksums |
42c1e71968e16a0c5c49e4c4be4beebb9906036e790bbe2b3b5e2d454449e901
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|