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.
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].
Installation - Configuration - Usage
- Python 3.7+
- Bitwarden CLI. Ensure the
bw
command is in$PATH
- Pynput and Xdg
- Dmenu, Rofi, Wofi or Bemenu
- xsel or wl-copy
- (optional) Pinentry.
- (optional) xdotool, ydotool(>= 1.0.0)/wtype (for Wayland).
- 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.
- MIT
bwm [-h] [-v VAULT] [-l LOGIN] [-k] [-a AUTOTYPE] [-C]
- 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):
To run tests in a venv: make test
(not implemented yet)
-
To install bitwarden-menu in a venv:
make
-
Build man page from Markdown source:
make man
-
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
andhatch build/publish
work as usual.
-
GitHub Action will upload to TestPyPi on each push to
main
. To create a GitHub and PyPi release, create a new tag (formatting below) and push tags.<tag name on first line> * Release note 1 * Release note 2 * ...
- Unit tests
- Notifications for syncing status (e.g. when a sync is complete)