Tools
Operating System
All Bitwarden developers are issued with a MacBook. The tooling recommendations and instructions in this documentation assume that you’re using MacOS. This may require some adaptation if you’re using a different operating system.
Recommended tools
The following tools are strongly recommended as part of the “standard” developer setup. We recommend that any new Bitwarden developer install all of them as part of setting up their local development environment.
IDEs
- Visual Studio Code - used for all Typescript projects. Suboptimal for C#. Be sure to install extensions
- Visual Studio for Mac - Pretty good at C# (Server and Mobile)
- Xcode - required for iOS Mobile development and Safari web extension
Local environment
- Homebrew - package manager for macOS
- Iterm2 (available via Homebrew) - a better terminal emulator
- Various browsers - It’s nice to have a slew of browsers ready to test the extension in a host of scenarios. You can also use multiple browsers to have different browser extension version installed to compare them.
- Docker - required for server development only
- PowerShell
(available via Homebrew:
brew install powershell
) - NodeJS v18 (preferably using a node version manager)
- NPM v9 (included with Node)
- Rust - Used for native desktop components
- Git
- Commit signing is strongly recommended
Mobile
- Android Studio - Nice for setting up and running Android Simulators
- adb - for interacting with Android sims
- Apple Icons Generator Gist - Script to generate Apple icons from an image
Databases
- Azure Data Studio for working with your local SQL Server
- PgAdmin4 - Useful for fiddling with PostgreSQL db
- MySQLWorkbench - Useful for fiddling with MySQL db
- SQLiteStudio - Useful for fiddling with SQLite db
Visual Studio Code Extensions
Visual Studio Code Extensions
There are some vs code extensions that are life-savers in our line of work. A list of highly recommended ones include the following:
- General
- Back & Forth - Adds forward and back buttons to top right of your editor. Simple, but incredibly useful.
- Code Spell Checker -
can be annoying, but has saved me lots of
tmes form writting oragnizations.
- LiveShare - For pair programming
- C#
- C# - Omnisharp integrations
- .NET Core Test Explorer - Test explorer for .NET tests
- .NET Core User Secrets - Edit secrets files by right clicking on a .proj and selecting edit user -secrets
- Git
- Git Graph - fantastic git visualization tool
- Git History - More Git history
- Git Lens - Even more Git options
- Typescript / Angular
- Angular Language Service - Understands Angular templates
- Jest - Jest test runner
- Prettier - integrate with prettier code formatting
- ESLint - Integrations for ESLint
- Rust
- rust-analyzer - Great rust language server
- Even Better TOML - for handling TOML (cargo config)
- CodeLLDB - for rust debugging
- Databases
- MySQL Syntax - syntax highlighting for MySQL
- PostgreSQL - syntax highlighting for PostgreSQL
Optional tools
The following tools may be useful depending on your preferences or what you’re developing.
- JetBrains Rider ($) - an alternative to Visual Studio and/or Visual Studio Code
- Microsoft Azure Storage Explorer - for connecting to or working with local Azure table storage and queues
- Parallels - For running Windows VMs
- Sourcetree - Git GUI. Note: For the git hooks to behave correctly on macOS when using nvm, please follow these instructions.