Awesome Open Source
Awesome Open Source


.. image:: :target:

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

.. _pass:

.. image::

  • Manual_
  • Features_
  • Setup_
  • Example Usage_
  • Example i3wm Keybindings_
  • Testing and Development_


  • 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

.. _correct horse battery staple:

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

.. _manual:


.. code:: bash

pip install passhole ph init

install zenity for password prompt

Example Usage

.. code:: bash

add a new entry with manually created password

ph add github Username: Evidlo Password: Confirm: URL:

add an entry with a generated alphanumeric password

ph add neopets -a Username: Evidlo URL:

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 Username: [email protected] URL:

add an entry to social/ with a correct-horse-battery-staple type password

ph add social/twitter -w Username: [email protected] URL:

list all entries

ph list github neopets [social] ├── facebook └── twitter

display contents of entry

ph show social/twitter Title: twitter Username: Evidlo Password: inns.ambien.travelling.throw.force URL:

retrieve contents of specific field for use in scripts

ph show social/twitter --field password inns.ambien.travelling.throw.force

Example i3wm Keybindings

.. code:: bash

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

.. code:: bash

from repo root dir:

python test/

Isolated install in Docker

.. code:: bash


make docker_debian

Building manpage and packaging

.. code:: bash

make man make dist

See also

  • keepmenu_
  • kpcli_
  • keepassxc_
  • kdbxpasswordpwned_

.. _keepmenu: .. _kpcli: .. _keepassxc: .. _kdbxpasswordpwned:

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
python (53,705
unix (219
password-manager (100
keepass (34