The desktop vault (Windows, macOS, & Linux).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Hinton 28def167bd Add nowrap to prevent wrapping 4 years ago
.github rolling back accidental changes to mac runner (#1081) 4 years ago
.vscode persist and restore window state 8 years ago
jslib@d7823f4e7e Merge branch 'master' of github.com:bitwarden/desktop into feature/header 4 years ago
patches Temporary fix for building masdev (#809) 5 years ago
resources Write native messaging manifests for Chromium (#862) 5 years ago
scripts Add script for downloading legacy safari extension (#796) 5 years ago
src Add nowrap to prevent wrapping 4 years ago
stores new screenshots 5 years ago
.editorconfig update settings 8 years ago
.gitignore Add script for downloading legacy safari extension (#796) 5 years ago
.gitmodules submodule via https 8 years ago
.nvmrc Update .nvmrc from 10.13.0 to 14.17.0 5 years ago
CONTRIBUTING.md fix typo 5 years ago
LICENSE.txt license and contrib 8 years ago
README.md Update README.md (#1062) 4 years ago
SECURITY.md uppercase Bitwarden 8 years ago
crowdin.yml Simplifying the Crowdin Sync workflow (#1048) 4 years ago
gulpfile.js Bump dependencies (#848) 5 years ago
package-lock.json Remove dependency on duo_web_sdk and update jslib (#1006) 4 years ago
package.json Remove dependency on duo_web_sdk and update jslib (#1006) 4 years ago
sign.js Pinning ast version (#1080) 4 years ago
tsconfig.json Add jslib as a "real" dependency (#941) 5 years ago
tsconfig.renderer.json Fix VS code ts language server no longer working after #866 (#872) 5 years ago
tslint.json Add trailing comma to linter 5 years ago
webfonts.list gulp task for webfonts 7 years ago
webpack.main.js Default to development environment settings 5 years ago
webpack.renderer.js Cleanup tsconfig (#866) 5 years ago

README.md

Github Workflow build on master Crowdin Join the chat at https://gitter.im/bitwarden/Lobby

Bitwarden Desktop Application

Platforms

The Bitwarden desktop app is written using Electron and Angular. The application installs on Windows, macOS, and Linux distributions.

Desktop Vault

Build/Run

Requirements

  • Node.js v14.17 or greater
  • NPM v7
  • Windows users: To compile the native node modules used in the app you will need the Visual C++ toolset, available through the standard Visual Studio installer. You will also need to install the Microsoft Build Tools 2015 and Windows 10 SDK 17134 as additional dependencies in the Visual Studio installer.

Run the app

npm install
npm run electron

Debug Native Messaging

Native Messaging (communication with the browser extension) works by having the browser start a lightweight proxy application baked into our desktop binary. To setup an environment which allows for easy debugging you will need to build the application for distribution, i.e. npm run dist:<platform>, start the dist version and enable desktop integration. This will write some manifests to disk, Consult the native manifests documentation for more details of the manifest format, and the exact locations for the different platforms. Note that disabling the desktop integration will delete the manifests, and the files will need to be updated again.

The generated manifests are pre-configured with the production ID for the browser extensions. In order to use them with the development builds, the browser extension ID of the development build needs to be added to the allowed_extensions section of the manifest. These IDs are generated by the browser, and can be found in the extension settings within the browser.

It will then be possible to run the desktop application as usual using npm run electron and communicate with the browser.

Contribute

Code contributions are welcome! Please commit any pull requests against the master branch. Learn more about how to contribute by reading the CONTRIBUTING.md file.

Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md file.