Skip to main content

CLI KeePass client with dmenu support

Project description

passhole is a commandline password manager for KeePass inspired by pass.


  • fill user/pass field in any application via keyboard shortcut
  • add, delete, move, edit, rename entries and groups
  • generate correct horse battery staple style, alphanumeric, symbolic passwords
  • temporarily cache database password (by default for 10 minutes)
  • multiple databases
  • supports KeePass v3 and v4 databases

See below for examples and the manual (or man passhole) for a complete list of commands and options.


pip install passhole
ph init

# install zenity for password prompt

Example Usage

# add a new entry with manually created password
>>> ph add github
Username: Evidlo

# add an entry with a generated alphanumeric password
>>> ph add neopets -a
Username: Evidlo

# add a new group
>>> ph add social/

# add an entry to `social/` with a 32 character password (alphanumeric + symbols)
>>> ph add social/facebook -s 32

# add an entry to `social/` with a correct-horse-battery-staple type password
>>> ph add social/twitter -w

# list all entries
>>> ph list
├── facebook
└── twitter

# display contents of entry
>>> ph show social/twitter
Title: twitter
Username: Evidlo
Password: inns.ambien.travelling.throw.force

# retrieve contents of specific field for use in scripts
>>> ph show social/twitter --field password

Example i3wm Keybindings

# select entry using dmenu, then send password to keyboard
bindsym $mod+p exec "ph type --prog dmenu"

# select entry using dmenu, then send username + password to keyboard
bindsym $mod+Shift+p exec "ph type --tabbed --prog dmenu"

Testing and Development

Running tests

# from repo root dir:
python test/

Isolated install in Docker

# debian
make docker_debian

Building manpage and packaging

make man
make dist

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for passhole, version 1.9.7
Filename, size File type Python version Upload date Hashes
Filename, size passhole-1.9.7.tar.gz (45.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page