{
  "name": "@bitwarden/desktop",
  "description": "A secure and free password manager for all of your devices.",
  "version": "2026.10.0",
  "keywords": [
    "bitwarden",
    "password",
    "vault",
    "password manager"
  ],
  "author": "Bitwarden Inc. <hello@bitwarden.com> (https://bitwarden.com)",
  "homepage": "https://bitwarden.com",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/bitwarden/clients.git"
  },
  "license": "GPL-3.0",
  "dependencies": {
    "@bitwarden/desktop-napi": "file:desktop_native/napi"
  },
  "scripts": {
    "postinstall": "electron-rebuild",
    "start": "cross-env ELECTRON_IS_DEV=0 ELECTRON_NO_UPDATER=1 electron ./build",
    "build-native-macos": "cd desktop_native && ./autofill_provider/build.sh && node build.js cross-platform",
    "build-native": "cd desktop_native && node build.js",
    "lint:rust": "node ../../scripts/lint-rust.mjs",
    "lint:rust:fix": "node ../../scripts/lint-rust.mjs --fix",
    "build": "npm run build:oss",
    "build:beta": "cross-env CHANNEL=beta npm run build",
    "build:dev": "npm run build:oss:dev",
    "build:preload": "npm run build:oss:preload",
    "build:preload:dev": "npm run build:oss:preload:dev",
    "build:preload:watch": "npm run build:oss:preload:watch",
    "build:macos-extension:mac": "./desktop_native/autofill_provider/build.sh && node scripts/build-macos-extension.js mac",
    "build:macos-extension:mas": "./desktop_native/autofill_provider/build.sh && node scripts/build-macos-extension.js mas",
    "build:macos-extension:masdev": "./desktop_native/autofill_provider/build.sh && node scripts/build-macos-extension.js mas-dev",
    "build:main": "npm run build:oss:main",
    "build:main:dev": "npm run build:oss:main:dev",
    "build:main:watch": "npm run build:oss:main:watch",
    "build:renderer": "npm run build:oss:renderer",
    "build:renderer:dev": "npm run build:oss:renderer:dev",
    "build:renderer:watch": "npm run build:oss:renderer:watch",
    "build:oss": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:oss:main\" \"npm run build:oss:renderer\" \"npm run build:oss:preload\"",
    "build:oss:dev": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:oss:main:dev\" \"npm run build:oss:renderer:dev\" \"npm run build:oss:preload:dev\"",
    "build:oss:main": "cross-env NODE_ENV=production webpack --config webpack.config.js --config-name main",
    "build:oss:main:dev": "cross-env NODE_ENV=development webpack --config webpack.config.js --config-name main",
    "build:oss:main:watch": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.config.js --config-name main --watch",
    "build:oss:renderer": "cross-env NODE_ENV=production webpack --config webpack.config.js --config-name renderer",
    "build:oss:renderer:dev": "cross-env NODE_ENV=development webpack --config webpack.config.js --config-name renderer",
    "build:oss:renderer:watch": "cross-env NODE_ENV=development webpack --config webpack.config.js --config-name renderer --watch",
    "build:oss:preload": "cross-env NODE_ENV=production webpack --config webpack.config.js --config-name preload",
    "build:oss:preload:dev": "cross-env NODE_ENV=development webpack --config webpack.config.js --config-name preload",
    "build:oss:preload:watch": "cross-env NODE_ENV=development webpack --config webpack.config.js --config-name preload --watch",
    "build:bit": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:bit:main\" \"npm run build:bit:renderer\" \"npm run build:bit:preload\"",
    "build:bit:dev": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:bit:main:dev\" \"npm run build:bit:renderer:dev\" \"npm run build:bit:preload:dev\"",
    "build:bit:main": "cross-env NODE_ENV=production webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name main",
    "build:bit:main:dev": "cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name main",
    "build:bit:main:watch": "npm run build-native && cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name main --watch",
    "build:bit:renderer": "cross-env NODE_ENV=production webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name renderer",
    "build:bit:renderer:dev": "cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name renderer",
    "build:bit:renderer:watch": "cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name renderer --watch",
    "build:bit:preload": "cross-env NODE_ENV=production webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name preload",
    "build:bit:preload:dev": "cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name preload",
    "build:bit:preload:watch": "cross-env NODE_ENV=development webpack --config ../../bitwarden_license/bit-desktop/webpack.config.js --config-name preload --watch",
    "electron": "node ./scripts/start.js",
    "electron:beta": "cross-env CHANNEL=beta npm run electron",
    "electron:ignore": "node ./scripts/start.js --ignore-certificate-errors",
    "debug:electron": "node ./scripts/debug-start.js",
    "flatpak:dev": "npm run clean:dist && electron-builder --dir -p never && flatpak-builder --force-clean --install --user ../../.flatpak/ ./resources/com.bitwarden.desktop.devel.yaml && flatpak run com.bitwarden.desktop",
    "clean:dist": "rimraf ./dist",
    "pack:dir": "npm run clean:dist && electron-builder --dir -p never",
    "pack:lin:flatpak": "flatpak-builder --repo=../../.flatpak-repo ../../.flatpak  ./resources/com.bitwarden.desktop.devel.yaml --install-deps-from=flathub --force-clean &&  flatpak build-bundle ../../.flatpak-repo/ ./dist/com.bitwarden.desktop.flatpak com.bitwarden.desktop",
    "pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never && export SNAP_FILE=$(realpath ./dist/bitwarden_*.snap) && unsquashfs -d ./dist/tmp-snap/ $SNAP_FILE && mkdir -p ./dist/tmp-snap/meta/polkit/ && cp ./resources/com.bitwarden.desktop.policy  ./dist/tmp-snap/meta/polkit/polkit.com.bitwarden.desktop.policy && rm $SNAP_FILE && snap pack --compression=lzo ./dist/tmp-snap/ && mv ./*.snap ./dist/ && rm -rf ./dist/tmp-snap/ && cp ./resources/com.bitwarden.desktop.desktop ./dist/linux-unpacked/resources && cp -r ./resources/icons ./dist/linux-unpacked/resources && tar -czvf ./dist/bitwarden_desktop_x64.tar.gz -C ./dist/linux-unpacked/ .",
    "pack:lin:arm64": "npm run clean:dist && electron-builder --linux --arm64 -p never && export SNAP_FILE=$(realpath ./dist/bitwarden_*.snap) && unsquashfs -d ./dist/tmp-snap/ $SNAP_FILE && mkdir -p ./dist/tmp-snap/meta/polkit/ && cp ./resources/com.bitwarden.desktop.policy  ./dist/tmp-snap/meta/polkit/polkit.com.bitwarden.desktop.policy && rm $SNAP_FILE && snap pack --compression=lzo ./dist/tmp-snap/ && mv ./*.snap ./dist/ && rm -rf ./dist/tmp-snap/ && cp ./resources/com.bitwarden.desktop.desktop ./dist/linux-arm64-unpacked/resources && cp -r ./resources/icons ./dist/linux-arm64-unpacked/resources && tar -czvf ./dist/bitwarden_desktop_arm64.tar.gz -C ./dist/linux-arm64-unpacked/ .",
    "pack:mac": "npm run clean:dist && electron-builder --mac --universal -p never",
    "pack:mac:beta": "npm run clean:dist && npm run update:beta && electron-builder --config electron-builder.beta.json --mac --universal -p never",
    "pack:mac:with-extension": "npm run clean:dist && npm run build:macos-extension:mac && electron-builder --mac --universal -p never",
    "pack:mac:arm64": "npm run clean:dist && electron-builder --mac --arm64 -p never",
    "pack:mac:mas": "npm run clean:dist && npm run build:macos-extension:mas && electron-builder --mac mas --universal -p never -c.mac.identity=null",
    "pack:mac:masdev": "npm run clean:dist && electron-builder --mac mas-dev --universal -p never -c.mac.identity=null -c.mas.identity=$CSC_NAME -c.mas.provisioningProfile=bitwarden_stable_desktop_developer_id.provisionprofile -c.mas.entitlements=resources/entitlements.mas.autofill-enabled.plist",
    "pack:mac:masdev:arm64": "npm run clean:dist && electron-builder --mac mas-dev --arm64 -p never -c.mac.identity=null -c.mas.identity=$CSC_NAME -c.mas.provisioningProfile=bitwarden_stable_desktop_developer_id.provisionprofile -c.mas.entitlements=resources/entitlements.mas.autofill-enabled.plist",
    "pack:local:mac": "npm run clean:dist && npm run build:macos-extension:masdev && electron-builder --mac mas-dev --universal -p never -c.mac.provisioningProfile=\"\" -c.mas.provisioningProfile=\"\"",
    "pack:win": "npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p never",
    "pack:win:beta": "npm run clean:dist && npm run update:beta && electron-builder --config electron-builder.beta.json --win --x64 --arm64 --ia32 -p never",
    "update:beta": "node scripts/update-package-beta.js",
    "pack:win:ci": "npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p never",
    "dist:dir": "npm run build && npm run pack:dir",
    "dist:lin": "npm run build && npm run pack:lin",
    "dist:lin:arm64": "npm run build && npm run pack:lin:arm64",
    "dist:oss:lin": "npm run build:oss && npm run pack:lin",
    "dist:oss:lin:arm64": "npm run build:oss && npm run pack:lin:arm64",
    "dist:bit:lin": "npm run build:bit && npm run pack:lin",
    "dist:bit:lin:arm64": "npm run build:bit && npm run pack:lin:arm64",
    "dist:mac": "npm run build && npm run pack:mac",
    "dist:mac:mas": "npm run build && npm run pack:mac:mas",
    "dist:mac:masdev": "npm run build && npm run pack:mac:masdev",
    "dist:win": "npm run build && npm run pack:win",
    "dist:win:ci": "npm run build && npm run pack:win:ci",
    "test": "npm run test:oss",
    "test:watch": "npm run test:oss:watch",
    "test:watch:all": "npm run test:oss:watch:all",
    "test:oss": "jest",
    "test:oss:watch": "jest --watch",
    "test:oss:watch:all": "jest --watchAll",
    "test:bit": "jest --config ../../bitwarden_license/bit-desktop/jest.config.js",
    "test:bit:watch": "jest --config ../../bitwarden_license/bit-desktop/jest.config.js --watch",
    "test:bit:watch:all": "jest --config ../../bitwarden_license/bit-desktop/jest.config.js --watchAll"
  }
}
