Skip to main content

CLI KeePass client with dmenu support

Project description

https://img.shields.io/matrix/pykeepass:matrix.org.svg

passhole is a CLI interface for KeePass 1.x (v3) and 2.x (v4) databases with support for dmenu inspired by pass.

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

Features

  • add, delete, move, edit, rename entries and groups

  • generate correct horse battery staple style, alphanumeric, symbolic passwords

  • temporarily cache database password for 10 minutes

  • autofill selected forms via keyboard shortcut (using the type command)

  • multiple databases

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

Setup

pip install passhole
ph init

Example Usage

# 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: evan@evanw.org
URL: facebook.com

# add an entry to `social/` with a correct-horse-battery-staple type password
>>> ph add social/twitter -w
Username: evan@evanw.org
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

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

Testing and Development

Running tests

# from repo root dir:
python test/tests.py

Isolated install in Docker

# arch
make install_arch
# debian
make install_debian

Building manpage and packaging

make man
make dist

See also

Project details


Download files

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

Source Distribution

passhole-1.9.post1.tar.gz (41.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page