West overview - nRF Connect for VS Code
Skip to content

West overview

West is a tool for managing multiple Git repositories and versions. It is extendable with custom commands and features.

West is used by the Zephyr project and the nRF Connect SDK to manage Git repositories that are part of the common zephyrproject west workspace. For more information about the tool, read Zephyr's west documentation.

West manifest files

The west manifest is a configuration file in YAML format that defines project dependencies of a west workspace. It contains the list of repositories used by the SDK and specifies the revisions that are expected for each of these repositories. It can also include overrides and other parameters that are related to building and flashing firmware. Manifest files allow you to quickly and consistently replicate the development environment.

You can read more about the west manifest structure and configuration on the West Manifest page of Zephyr's documentation about west.

Monitoring source control changes to the west module

The extension provides a graphical front-end to west that is integrated with VS Code's Source Control View.

You can use the source control UI to monitor the state of modules that are inside the workspace. The extension updates their status when changes are made, but you can also trigger a status update manually.

If you select the west section in the Source Control View, you can also monitor the changes to the source files from the Status Bar.

West environment on macOS and Linux (system-wide installation)

If you have chosen to install the nRF Connect SDK and west system-wide on macOS and Linux, add your environment variables in ~/.bashrc, for example the GNUARMEMB_TOOLCHAIN_PATH variable. Unfortunately, VS Code does not pick up environment variables added to this file, even when launching VS Code from a terminal.

To get around this issue, the extension queries Bash for its environment on Linux and macOS. This executes the ~/.bashrc file, as well as any other files that run when starting Bash. If any of these files execute behavior that you do not want, either check for $NRF_CONNECT_VSCODE in your Bash scripts or change the nrf-connect.west.env setting.