Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Requirements

  • Linux. lazybw works in any terminal emulator, under X11 or Wayland, and over SSH.
  • The official Bitwarden CLI, bw, version 2025.9.0 or newer.
  • A recent Rust toolchain (1.88 or newer) to build lazybw.
  • A Nerd Font in your terminal, for the icons. This one is optional: lazybw can use plain Unicode or ASCII symbols instead.

Install the Bitwarden CLI

Use your distribution’s package if it has one. On Arch Linux:

sudo pacman -S bitwarden-cli

Anywhere else with Node.js installed:

npm install -g @bitwarden/cli

Check the version:

bw --version

lazybw refuses to start with a bw older than 2025.9.0, because it needs the private-socket mode of bw serve that appeared in that release. A few features need newer versions: archived items appear from 2025.10.0, and the vault health report uses bw report password-health from 2026.8.0 (older versions get a local check without the data-breach lookups).

Install lazybw

Each release has static binaries for x86_64 and aarch64 (64-bit ARM), and packages built from them. The binaries have no library dependencies, so they run on any Linux distribution.

Debian and Ubuntu

sudo apt install ./lazybw_1.0.0-1_amd64.deb     # or _arm64.deb

Fedora, openSUSE and RHEL

sudo dnf install ./lazybw-1.0.0-1.x86_64.rpm    # or .aarch64.rpm

Arch Linux

lazybw is in the AUR in two forms: lazybw-bin installs the release binary, and lazybw builds it from source. With an AUR helper such as paru or yay:

paru -S lazybw-bin     # or: paru -S lazybw

Without a helper:

git clone https://aur.archlinux.org/lazybw-bin.git
cd lazybw-bin
makepkg -si

The release also has a ready-made package:

sudo pacman -U lazybw-1.0.0-1-x86_64.pkg.tar.zst

On x86_64 every package pulls in bitwarden-cli from the Arch repositories.

Any other Linux

tar -xzf lazybw-1.0.0-x86_64-unknown-linux-musl.tar.gz
install -Dm755 lazybw-1.0.0-x86_64-unknown-linux-musl/lazybw ~/.local/bin/lazybw

Every release also has a SHA256SUMS file. Check your download with sha256sum --check --ignore-missing SHA256SUMS.

Android (Termux)

The aarch64 binary runs in Termux:

pkg install nodejs
npm install -g @bitwarden/cli
tar -xzf lazybw-1.0.0-aarch64-unknown-linux-musl.tar.gz
install -Dm755 lazybw-1.0.0-aarch64-unknown-linux-musl/lazybw "$PREFIX/bin/lazybw"

Termux has no system clipboard that lazybw can reach directly; it copies through your terminal with OSC 52 instead, which the Termux app supports.

Docker

The image on the GitHub Container Registry includes bw:

docker run -it --rm -v lazybw:/home/lazybw ghcr.io/syscallbrain/lazybw

The lazybw volume keeps your Bitwarden login, the lazybw configuration and its state between runs. Inside a container there is no system clipboard; lazybw copies through your terminal with OSC 52. Run lazybw subcommands by adding them at the end, for example … ghcr.io/syscallbrain/lazybw doctor.

From source

With Rust 1.88 or newer:

cargo install --git https://github.com/SyscallBrain/lazybw lazybw

Or from a clone, which also lets you build the packages yourself (scripts/dist.sh):

git clone https://github.com/SyscallBrain/lazybw
cd lazybw
cargo install --path crates/lazybw

On Arch Linux, the lazybw AUR package does this for you.

Check the setup

lazybw doctor

doctor prints what lazybw found: where bw is and which version, whether you are logged in, which clipboard backend it will use, the terminal size and colour depth, and the paths of the configuration, state and log files. Run it first whenever something does not work.

Where lazybw keeps its files

WhatWhere
Configuration~/.config/lazybw/config.toml
Your themes~/.config/lazybw/themes/*.toml
Log, command history, folder state~/.local/state/lazybw/
Temporary files (exports, $EDITOR buffers)$XDG_RUNTIME_DIR/lazybw/

lazybw follows the XDG variables, so $XDG_CONFIG_HOME and $XDG_STATE_HOME move these if you set them. Your vault itself stays where bw keeps it.