Skip to main content

Keepmenu

PyPI - Python Version PyPI GitHub contributors

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

  1. Python 3.7+
  2. Pykeepass >= 4.0.0

Everything below is only needed for the interactive (launcher) mode. --show works with nothing but Pykeepass installed:

  1. pynput (pip install keepmenu[autotype]), or one of the alternate type libraries below
  2. Bemenu, Dmenu, Wmenu, Fuzzel, Rofi, Tofi, Wofi, or Yofi
  3. xsel or wl-copy, for clipboard support
  4. (optional) Pinentry
  5. (optional) xdotool (for X), ydotool or wtype(for Wayland), dotool or dotoolc (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).
  • 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.
  • Run once mode to copy or print any field(s) to stdout, usable as a CLI-only password manager with no launcher or GUI installed

License

  • GPLv3

Usage

keepmenu [-h] [-a AUTOTYPE] [-c CONF_FILE] [-C] [-d DATABASE] [-k KEY_FILE] [-t] [-n] [-s SEARCH] [-f FIELD] [-V]

  • 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

  • The version is hardcoded in keepmenu/__init__.py (make version or keepmenu -V). Anything else needing a version number reads from there.

  • 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.
  • GitHub Action will upload to TestPyPi on each push to main. To create a GitHub and PyPi release, run make release VERSION=x.y.z. It bumps __version__, updates and rebuilds the man page, commits, and opens an editor for the annotated tag, prefilled with the version as the subject and one bullet per commit since the last tag.

      <tag name on first line, prefilled>
    
      * Release note 1
      * Release note 2
      * ...
    

    Then push the commit and tag: git push origin main --follow-tags. The GitHub Action fails the build if a pushed tag does not match __version__, so nothing mismatched can reach PyPi.

Download files

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

Source Distribution

keepmenu-1.6.0.tar.gz (46.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keepmenu-1.6.0-py2.py3-none-any.whl (80.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file keepmenu-1.6.0.tar.gz.

File metadata

  • Download URL: keepmenu-1.6.0.tar.gz
  • Upload date:
  • Size: 46.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for keepmenu-1.6.0.tar.gz
Algorithm Hash digest
SHA256 9224656490f620fc801ee5e0dfdc7e90cbe6b4bdf0b7b710626aa73cc8173833
MD5 8d4d9be5f5dd34fb02733de5d49f0387
BLAKE2b-256 59a35a04a6461f72c56b2b6cf3ae247fee211d7ed1c0265638d4cd2f4a48d392

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepmenu-1.6.0.tar.gz:

Publisher: main.yml on firecat53/keepmenu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file keepmenu-1.6.0-py2.py3-none-any.whl.

File metadata

  • Download URL: keepmenu-1.6.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 80.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for keepmenu-1.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 91859603882c3db5c659f7a07a16e22b53ce5e6a87690f27be8c2e27f1b77c3f
MD5 196fbfc598642cef35fd4e9ae215f59e
BLAKE2b-256 9c7a5a13cb48fbaa99c8cf1ad4082662387c7c9030dc5f89f5959e1514923557

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepmenu-1.6.0-py2.py3-none-any.whl:

Publisher: main.yml on firecat53/keepmenu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.6.0 This release

2 files

1.5.1

2 files

1.5.0

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.2

2 files

1.1.0

2 files

1.0.0

2 files

0.6.5

2 files

0.6.1

2 files

0.6.0

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page