Awesome Open Source
Awesome Open Source

Passhole

.. image:: https://img.shields.io/matrix/pykeepass:matrix.org.svg :target: https://matrix.to/#/#pykeepass:matrix.org

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

.. _pass: https://www.passwordstore.org

.. image:: https://i.imgur.com/lWLgbo3.gif

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

Features

  • 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: http://xkcd.com/936

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

.. _manual: https://github.com/evidlo/passhole/MANUAL.rst

Setup

.. 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: github.com

add an entry with a generated alphanumeric password

ph add neopets -a Username: Evidlo URL: neopets.com

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: facebook.com

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

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

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: twitter.com

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/tests.py

Isolated install in Docker

.. code:: bash

debian

make docker_debian

Building manpage and packaging

.. code:: bash

make man make dist

See also

  • keepmenu_
  • kpcli_
  • keepassxc_
  • kdbxpasswordpwned_

.. _keepmenu: https://github.com/firecat53/keepmenu/ .. _kpcli: http://kpcli.sourceforge.net/ .. _keepassxc: https://keepassxc.org/ .. _kdbxpasswordpwned: https://github.com/fopina/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