• This repository has been archived on 23/Jul/2022
  • Stars
    star
    3,545
  • Rank 12,407 (Top 0.3 %)
  • Language
    TypeScript
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The desktop vault (Windows, macOS, & Linux).

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

Archived

This repository is archived, please go to https://github.com/bitwarden/clients for future development.

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 v16.13.1 (LTS) or greater
  • NPM v8
  • Windows:
    • 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.
  • Linux:
    • The following packages build-essential libsecret-1-dev libglib2.0-dev

Run the app

npm ci
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.

We're Hiring!

Interested in contributing in a big way? Consider joining our team! We're hiring for many positions. Please take a look at our Careers page to see what opportunities are currently open as well as what it's like to work at Bitwarden.

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.

Prettier

We recently migrated to using Prettier as code formatter. All previous branches will need to updated to avoid large merge conflicts using the following steps:

  1. Check out your local Branch
  2. Run git merge b4df834b16d4f5d4162a926a5a308bdb3ebc718b
  3. Resolve any merge conflicts, commit.
  4. Run npm run prettier
  5. Commit
  6. Run git merge -Xours 521feae535d83166e620c3c28dfc3e7b0314a00e
  7. Push

Git blame

We also recommend that you configure git to ignore the prettier revision using:

git config blame.ignoreRevsFile .git-blame-ignore-revs

More Repositories

1

server

Bitwarden infrastructure/backend (API, database, Docker, etc).
C#
15,127
star
2

clients

Bitwarden client apps (web, browser extension, desktop, and cli).
TypeScript
8,924
star
3

android

Bitwarden mobile app for Android.
Kotlin
6,129
star
4

web

The website vault (vault.bitwarden.com).
TypeScript
2,570
star
5

cli

The command line vault (Windows, macOS, & Linux).
TypeScript
1,622
star
6

self-host

Bitwarden's self-hosted release repository
Shell
322
star
7

authenticator-android

Bitwarden Authenticator mobile app for Android.
Kotlin
306
star
8

directory-connector

A tool for syncing a directory (AD, LDAP, Azure, G Suite, Okta) to an organization.
TypeScript
249
star
9

sdk

Bitwarden SDK
Rust
225
star
10

jslib

Common code referenced across Bitwarden JavaScript projects.
TypeScript
133
star
11

help

The help website/knowledgebase (bitwarden.com/help).
HTML
132
star
12

authenticator-ios

Bitwarden Authenticator mobile app for iOS.
Swift
122
star
13

passkeys-index

A collection of sites and services that support passkeys
Astro
115
star
14

ios

Bitwarden mobile app for iOS.
Swift
100
star
15

brand

Logos, icons, screenshots, and other media related to the Bitwarden brand.
SCSS
89
star
16

docs

Bitwarden application and API documentation.
HTML
82
star
17

passwordless-server

Bitwarden Passwordless.dev infrastructure/backend (API, database, Docker, etc).
C#
79
star
18

mobile

Retired Bitwarden mobile app for iOS and Android (MAUI/Xamarin).
C#
65
star
19

passwordless-client-js

Bitwarden Passwordless.dev JavaScript SDK.
TypeScript
51
star
20

sm-action

Github Action for Secrets Manager
TypeScript
45
star
21

passwordless-dotnet

Bitwarden Passwordless.dev .NET SDK.
C#
32
star
22

key-connector

An agent that stores and provides cryptographic keys to Bitwarden clients.
C#
32
star
23

gh-actions

JavaScript
29
star
24

importer

Bitwarden standalone importer tool.
C#
28
star
25

contributing-docs

Contributing documentation
TypeScript
24
star
26

helm-charts

Smarty
22
star
27

passwordless-docs

Bitwarden Passwordless.dev documentation.
CSS
18
star
28

passwordless-python

Bitwarden Passwordless.dev Python SDK.
Python
14
star
29

devops-exercise

Python
14
star
30

splunk

Splunk app for reporting Bitwarden event logs.
Python
12
star
31

passwordless-react-example

Bitwarden Passwordless.dev React example.
JavaScript
11
star
32

passwordless-nodejs

Bitwarden Passwordless.dev Node.js SDK.
TypeScript
10
star
33

passwordless-java

Bitwarden Passwordless.dev Java SDK.
Java
7
star
34

passwordless-android

Bitwarden Passwordless.dev Android SDK.
Kotlin
7
star
35

sm-ansible

Ansible integration for Secrets Manager
Python
7
star
36

sdk-go

Go
6
star
37

Handlebars.conf

Handlebars templates for config files.
C#
5
star
38

sm-kubernetes

Kubernetes Operator for Bitwarden Secrets Manager.
Go
5
star
39

test-the-web

Test the Web enables anyone to quickly test common browser interactions on the web with mock interfaces.
TypeScript
5
star
40

sdk-swift

Swift
5
star
41

passwordless-caniuse

Bitwarden Passwordless.dev site testing.
Vue
4
star
42

api-docs

3
star
43

passwordless-ios

Bitwarden Passwordless.dev iOS SDK.
Swift
3
star
44

passwordless-blazor

Bitwarden Passwordless.dev Blazor SDK.
C#
3
star
45

passwordless-blazor-webassembly

Bitwarden Passwordless.dev Blazor WebAssembly SDK.
C#
2
star
46

adr

Architectural Decision Records
HTML
2
star
47

template

Template repository
2
star
48

renovate-config

2
star
49

dotnet-extensions

.NET extensions.
C#
1
star
50

autopush-manager

A module to subscribe to Mozilla Autopush and receive notifications
TypeScript
1
star
51

server-test-arch

C#
1
star
52

workflow-linter

Python
1
star