Keepmenu
Fully featured Bemenu/Dmenu/Wmenu/Fuzzel/Rofi/Tofi/Wofi/Yofi frontend for
autotype and managing of Keepass databases.
Inspired in part by Passhole, but more dmenu and less command line focused.
Installation
pip install --user keepmenu
Ensure ~/.local/bin
is in your $PATH
. Run keepmenu
and enter your database
path, keyfile path, and password.
For full installation documention see the [installation docs][docs/install.md].
Full Documentation
Installation - Configuration - Usage
Requirements
- Python 3.7+
- Pykeepass >= 4.0.0 and pynput
- Bemenu, Dmenu, Wmenu, Fuzzel, Rofi, Tofi, Wofi, or Yofi
- xsel or wl-copy
- (optional) Pinentry
- (optional) xdotool (for X), ydotool or wtype(for Wayland), dotool (X or Wayland).
Features
- Supports .kdbx databases, not .kdb.
- Auto-type username and/or password on selection. Select to clipboard if
desired (clears clipboard after 30s on X11 or after 1 paste on Wayland).
- Background process allows selectable time-out for locking the database.
- Multiple databases can be unlocked and switched on the fly.
- Use a custom Keepass 2.x style auto-type sequence.
- Type, view or edit any field.
- Open the URL in the default web browser.
- Edit notes using terminal or gui editor.
- Add and Delete entries.
- Add, delete, rename and move groups.
- Hide selected groups from the default and 'View/Type Individual entries' views.
- Configure the characters and groups of characters used during password
generation.
- Optional Pinentry support for secure passphrase entry.
- Keepass field references are supported.
- Display and manage expired passwords.
- Add, edit and type TOTP codes.
- Add, edit, type and delete custom attributes.
License
Usage
keepmenu [-h] [-a AUTOTYPE] [-c CONF_FILE] [-C] [-d DATABASE] [-k KEY_FILE] [-t]
- Run
keepmenu
or bind to keystroke combination.
- Enter database path on first run.
- Start typing to match entries.
- Configure config.ini as desired.
- More detailed usage information.
Tests
To run tests in a venv: make test
Development
- To install keepmenu in a venv:
make
- Build man page from Markdown source:
make man
- Using
hatch
:
hatch shell
: provides venv with editable installation.
hatch build
&& hatch publish
: build and publish to Pypi.
- Using
nix
:
nix develop
: Provides development shell/venv with all dependencies.
make test
and hatch build/publish
work as usual.