...OVERVIEW...
What it is
The Bitwarden CLI is fast and scriptable, but typing bw get password name every time you need a login gets old. quick-bitwarden puts the vault behind a single shortcut: a centered, searchable picker that opens instantly, copies what you choose, and gets out of the way.
It is two pieces. A small daemon keeps the item list in memory so opening the window is immediate. The window itself is an r-modals dialog, which means it is borderless, keyboard-first, and works on both X11 and Wayland.
The copy flow is the product
On Enter, quick-bitwarden clears the clipboard first, then asks bw for the password you picked. Clearing first matters: without it, an old clipboard entry can be pasted while the lookup is still in flight. The password stays on the clipboard for QBW_CLEAR_AFTER seconds, then the daemon clears it.
If cliphist is installed, the password is deleted from clipboard history immediately. That is the difference between a password being on your clipboard and a password being in your clipboard history forever.
Search, shortcuts and prefixes
- 01
Two kinds of copy
Enter copies the password. Shift+Enter copies the username instead.
- 02
Prefixes
The search field doubles as a command line:
>sync,>lock,>hide items,>show items,>restartand>stopare built in. - 03
Your bindings
Shortcuts and prefixes live in one
config.toml. Bind a key to a tag on the highlighted row or to any r-modals action: a command, a shell one-liner, or a Rust closure. - 04
No dead ends
A query that is not in the list is forwarded to
bw get password, so the cache never blocks you from finding an item.
One daemon, one window
Concurrent launches are serialized with a lock, and a show request that races an already-opening picker is dropped instead of stacking a second window. The daemon never opens a window itself: each dialog is a short-lived child process, which is what lets hide and toggle close it from outside.
The cache refreshes only when the window has been hidden for more than QBW_REFRESH_INTERVAL seconds — 30 by default. Passwords are never read from bw until you pick one, so locking the vault outside quick-bitwarden is enforced immediately.
Why Rust and r-modals
r-modals was already the picker I wanted for my own scripts. Using it here kept the UI layer small and made quick-bitwarden a real test of the library. The daemon, clipboard handling and vault logic are plain Rust with no GUI framework of their own.