Skip to content
/ passhole Public
forked from Evidlo/passhole

A secure hole for your passwords (KeePass CLI)

License

Notifications You must be signed in to change notification settings

ulken/passhole

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Passhole

passhole is a commandline password manager inspired by pass.

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

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

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

Setup

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
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

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

Isolated install in Docker

# debian
make docker_debian

Building manpage and packaging

make man
make dist

See also

About

A secure hole for your passwords (KeePass CLI)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.0%
  • Makefile 2.0%