Skip to main content

Scripting

Our stance

Scripts committed to a Bitwarden repository must use the scripting language already established for that repository. New scripts should not introduce a different language based on personal preference or on what an AI assistant happened to generate.

A proliferation of scripting languages within a repository and between repositories with similar code languages and frameworks increases the support burden and widens the range of skills anyone maintaining it later must hold. Immediate inconvenience of writing in the established language is the price for long-term supportability.

Established languages per repository

Defer to what a repository already uses. The current defaults in our core repositories are:

Repository familyScripting language
clientsNode
serverPowerShell
ios and androidPython

For other repositories, follow the convention already present in its existing scripts.

Guidance when there is no established choice

When a repository has no established scripting language, defer to the best practices for what is germane to the product being developed and its relevant frameworks, as well as any precedent with similar cases within Bitwarden. Be cautious about choosing what is familiar to you personally over what can be maintained long-term by the organization.