West (Zephyr’s meta-tool)

The Zephyr project includes a swiss-army knife command line tool named west[1]. West is developed in its own repository. Like git and docker, the top-level west command takes some common options, a sub-command to run, and then options and arguments for that sub-command:

west [common-opts] <command> [opts] <args>

West’s built-in commands provide a multiple repository management system with features inspired by Google’s Repo tool and Git submodules. West simplifies configuration and is also pluggable: you can write your own west “extension commands” which add additional features to west. Zephyr uses this feature to provide conveniences for building applications, flashing and debugging them, and more.

It is possible not to use west for Zephyr development if you do not require these features, prefer to use your own tools, or want to eliminate the extra layer of indirection. However, this implies extra effort and expert knowledge.

You can run west --help (or west -h for short) to get top-level help for available west commands, and west <command> -h for detailed help on each command.

The following pages document west’s v0.5.x releases, and provide additional context about the tool.

For details on west’s Python APIs (including APIs provided by extensions in the zephyr), see West APIs.


[1]Zephyr is an English name for the Latin Zephyrus, the ancient Greek god of the west wind.