Bitwarden porcelain for Emacs
Go to file
Lucien Cartier-Tilet f1a5d7f125
Add remaining server settings, simplify config infix declaration
Add support for custom URLs available through `bw config server`

Simplify reading and setting an option through a DWIM function.
2022-03-16 20:20:26 +01:00
.gitignore Initial commit 2022-02-13 13:52:47 +01:00
bitwarden.el Add remaining server settings, simplify config infix declaration 2022-03-16 20:20:26 +01:00 Start of bitwarden.el 2022-02-13 14:12:29 +01:00
LICENSE Initial commit 2022-02-13 13:52:47 +01:00 Small README update 2022-03-02 18:04:46 +01:00 Login improvements, rename transient’s variables and functions 2022-02-14 18:07:57 +01:00



Bitwarden.el is a Bitwarden porcelain for Emacs. It aims to be a complete text-based interface for the Bitwarden CLI.

Most of its public function are transient functions from the transient library to provide the user an easy-to-use interface with most of its options exposed.

This package is still very much a work in progress. Use at your own risks.


A couple of options are available for installing bitwarden.el.

The first one is to clone the repository in your load-path and add the following to your .emacs or your init.el:

(require 'bitwarden.el)

In my case, I prefer using use-package with straight:

(use-package bitwarden
  :ensure t
  :defer t
  :straight (bitwarden :type git
                       :host nil
                       :repo ""))

I personally also added :build t in the straight recipe to ensure Emacs compiles my package, both to .elc and .eln files (I am on Emacs 28.0, feature/native-comp got merged into master!)

There is probably a similar way to install it with pure straight.el or quelpa, but Im not knowledgable enough for that, feel free to create a PR to add some more installation instructions!

There is currently no plans of making this package available on MELPA or non-gnu elpa.



Loging in with the --apikey option is not supported due to its interactive nature.

Bitwarden allows three different sources for your password:

  • a plain password as an argument following the username
  • an environment variable containing the password
  • a file containing the password

Bitwarden.el allows a fourth option: the authinfo file on computer. To use this option, simply add the following line in your .authinfo or .authinfo.gpg file:

machine login yourusername password yourpassword

Of course, you will have to replace with the actual server, yourusername with your actual username, and yourpassword with your actual password. If you do not set your username or your password in bitwarden.el, the package will look for them in your auth source file on login. Bitwarden.el retrieves the server name from the command

$ bw config server

and it strips the result from any http:// or https:// prefix. For instance, if the command returns, bitwarden.el will look for in your authinfo file.


Bitwarden.el has a couple of customizable variables you can find in the bitwarden group when executing M-x customize-group. Here is a quick description of these variables:

Your Bitwarden CLI executable. Set this variable if Emacs doesnt find bw in your $PATH or if bw does not refer to your Bitwarden CLI. Default value: bw
A list of the default arguments to pass to Bitwarden CLI. By default, only the package only passes --nointeraction in order to inhibit any attempt from the CLI to launch anything interactive — it should be taken care of by the package itself. Default value: '("--nointeraction")


bitwarden.el is available under the GNU GPL-3.0 license. You can find the full text in