Skip to content
bmuxBack

Browser extensions (experimental)

Extensions are installed separately in each bmux browser profile. Installation grants the extension its manifest permissions for that profile. Install only extensions you trust. They run in sandboxed extension contexts; websites do not receive the bmux API.

Open the command prompt and run:

extension install-bitwarden
extension open Bitwarden

The installer downloads the official Bitwarden 2026.6.1 Chrome release from GitHub and verifies its pinned SHA-256 checksum before extraction. This is the last known-good release before a Bitwarden 2026.7–2026.8 WASM decryption regression that can leave a successfully synced vault empty. Sign in using Bitwarden's own popup. The extension manages its own vault session. Extension updates are manual in this prototype.

After installation, reload existing login pages so the extension can inject its content scripts. Bitwarden provides the passkey UI; this does not add Chrome's phone QR chooser to Electron. Vault authentication and passkey signing require a manual check with your account; the automated smoke test stops at Bitwarden's email login screen and does not access a real vault. Bitwarden registers its passkey scripts only after an account is signed in. For the first manual check, sign in with email and master password, unlock the vault, reload the website, and choose that website's passkey sign-in option.

For other unpacked extensions, use extension load /absolute/path. The directory must contain manifest.json and remain at that path between launches. Packaged CRX files are not supported. To remove an extension, use extension remove ID. Unloading stops the extension but retains its browser storage; reload open pages to remove scripts it has already injected.

The CLI exposes the same operations with an explicit profile:

bmux extension install-bitwarden --profile profile_default
bmux extension list --profile profile_default
bmux extension open Bitwarden --profile profile_default
bmux extension remove EXTENSION_ID --profile profile_default

extension list reports loaded extensions and any restoration failures. Loading successfully does not guarantee compatibility with all Chrome APIs. Optional permission requests are declined. Native desktop integration, biometrics, extension shortcuts, the side panel, and store updates are not implemented.

Compatibility and licensing

The prototype uses electron-chrome-extensions 4.9.0 under GPL-3.0, with a pnpm patch for chrome.storage.session, event cleanup, and removal of API argument and result logging. Session storage is memory-only, scoped to each extension and profile, restricted to extension pages/workers, and cleared on unload or exit. It is never substituted with disk-backed storage.local.

The browser is distributed under GPL-3.0-only. The private website repository is outside this change. The previous MIT copyright and permission notice is retained in LICENSE-MIT.

References: Electron extension support, compatibility library, Bitwarden release.

Edit on GitHub