Skip to main content

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, or xsel (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)

Source distribution for kpassh 0.2.0
File Size Uploaded
kpassh-0.2.0.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kpassh 0.2.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page