Tools
Operating system assumptions
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.
The following tools make up the standard Bitwarden developer setup and should be installed as part of your local development environment.
IDEs
- Visual Studio Code - used for all Typescript projects. Suboptimal for C#. Be sure to install extensions
- JetBrains Rider - fully featured IDE for C#, .NET & more. Bitwarden developers should contact IT for a license
- 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
- .NET SDK - required for server and other backend development environments
- PowerShell
(available via Homebrew:
brew install powershell) - NodeJS v22 (preferably using a node version manager)
- NPM v10 (included with Node)
- Rust latest stable version - (preferably installed via rustup)
- 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
- MSSQL VSCode Extension 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
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
- Nx Console - UI over the Nx CLI
- 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.
- 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.