Skip to main content

Bitwarden-menu

PyPI - Python Version PyPI GitHub contributors

Dmenu/Rofi frontend for managing Bitwarden vaults. Uses the Bitwarden CLI tool to interact with the Bitwarden database.

This project is not associated with the Bitwarden project nor 8bit Solutions LLC.

Installation

pip install --user bitwarden-menu

Ensure ~/.local/bin is in your $PATH. Run bwm and enter your database path, keyfile path, and password.

NOTE: Initial login to some servers, including vault.bitwarden.com, will require the client_secret from your account settings page. Ensure this is in your clipboard and ready to paste prior to first run. Once logged in for the first time, you will not need this value again.

For full installation documention see the [installation docs][docs/install.md].

Full Documentation

Installation - Configuration - Usage

Requirements

  1. Python 3.10+
  2. Bitwarden CLI. Ensure the bw command is in $PATH
  3. Pynput and Xdg
  4. Dmenu, Rofi, Wofi or Bemenu
  5. xsel or wl-copy
  6. (optional) Pinentry.
  7. (optional) xdotool, ydotool(>= 1.0.0)/wtype (for Wayland).

Features

  • Supports multiple bitwarden.com and self-hosted Vaultwarden accounts. Accounts can be switched on the fly.
  • Auto-type username and/or password on selection. Select to clipboard if desired (clipboard clears after 30 sec on X11 or after 1 paste on Wayland).
  • Supports login with 2FA code from Authenticator(TOTP), Email, or Yubikey.
  • Background process allows selectable time-out for locking the database.
  • Use a custom Keepass 2.x style auto-type sequence.
  • Type, view or edit any field.
  • Open the URL in the default web browser.
  • Non U.S. English keyboard languages and layouts supported via xdotool or ydotool/wtype (for Wayland).
  • Edit notes using terminal or gui editor.
  • Add and Delete entries
  • Rename, move, delete and add folders and collections
  • Move any item to or from an organization, including support for multiple collections.
  • Hide selected folders 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.
  • Add, edit and type TOTP codes.
  • Offline use: an already logged in vault can be unlocked, viewed and typed without a network connection.

License

  • MIT

Usage

bwm [-h] [-V] [-v VAULT] [-l LOGIN] [-k] [-a AUTOTYPE] [-C] [-c CONFIGPATH]

  • Run bwm or bind to keystroke combination.
  • Enter account URL on first run.
  • Start typing to match entries.
  • Configure ~/.config/bwm/config.ini as desired.
  • More detailed usage information.
  • Screencast (Using Bemenu on Sway):

Screencast

Tests

Run tests using pytest:

# Using make (creates venv automatically)
make test

# With coverage report
make test-cov

# Or install and run directly
pip install .[test]
pytest

Development

  • To install bitwarden-menu in a venv: make

  • Build man page from Markdown source: make man

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

  • Using hatch:

    • hatch shell: provies venv with editable installation.
    • hatch build && hatch publish: build and publish to Pypi.
  • Using nix:

    • nix develop: Provides development shell 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 (no leading v; the tag gets one). 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.

Planned features

  • Notifications for syncing status (e.g. when a sync is complete)

Download files

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

Source Distribution

bitwarden_menu-0.5.4.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

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

bitwarden_menu-0.5.4-py2.py3-none-any.whl (267.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file bitwarden_menu-0.5.4.tar.gz.

File metadata

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

File hashes

Hashes for bitwarden_menu-0.5.4.tar.gz
Algorithm Hash digest
SHA256 918503cc98abdae43360ff32424f114b9e091b857d77d7e26a5bd4475af19e03
MD5 2ecd1fc7cf7be2ee4c8032e93665fb6e
BLAKE2b-256 87e0fe1b75fa3e6e7935096526189cb322c607d79d79a23567c5fce22c424d2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitwarden_menu-0.5.4.tar.gz:

Publisher: main.yml on firecat53/bitwarden-menu

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

File details

Details for the file bitwarden_menu-0.5.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for bitwarden_menu-0.5.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 74ee55c3a88a935dc6d3fb2186da122e384c639b6895b562e32ad0fe19a357d3
MD5 aca9ad0d0e2c4f9771e4d6e541ad7e1a
BLAKE2b-256 67664da8390c8cf3035ef3ff198b1a47f328643e702bd56298660b8bae95648a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitwarden_menu-0.5.4-py2.py3-none-any.whl:

Publisher: main.yml on firecat53/bitwarden-menu

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

Release history Release notifications | RSS feed

0.6.0

2 files

This release

0.5.4 This release

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

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