The Zephyr project is developing a swiss-army knife command line tool
west. (Zephyr is an English name for the Greek god of the
West is developed in its own repository on GitHub. A copy is
currently maintained in Zephyr’s
West’s usage is similar to Git’s: general options are followed by a command, which may also take options and arguments:
$ west [common-opts] <command-name> [command-opts] [<command-args>]
Usage guides for specific groups of subcommands are in the following pages.
- Flashing and Debugging
- Multi-repository management
(This list will expand as additional features are developed.)
Additional features are under development for future versions of Zephyr:
- Building Zephyr images.
- Running Zephyr in emulation.
- Bootloader integration: bootloader-aware image building, signing, and flashing, as well as building and flashing the bootloader itself.
- Multiple repository support: fetching and updating repositories that integrate with Zephyr, such as MCUboot, OpenThread and others.
See Zephyr issue #6205 for more details and discussion.
- Optional: it is always possible to drop back to “raw” command-line tools, i.e. use Zephyr without using West. It may not always be convenient to do so, however. (If all of West’s features were already conveniently available, there would be no reason to develop it.)
- Compatible with CMake: building, flashing and debugging, and emulator support will always remain compatible with direct use of CMake.
- Cross-platform: West is written in Python 3, and works on all platforms supported by Zephyr.
- Usable as a Library: whenever possible, West features are
implemented as libraries that can be used standalone in other
programs, along with separate command line interfaces that wrap
them. West itself is a Python package named
west; its libraries are implemented as subpackages.
- Conservative about features: no features will be accepted without strong and compelling motivation.
- Clearly specified: West’s behavior in cases where it wraps other commands is clearly specified and documented. This enables interoperability with third party tools, and means Zephyr developers can always find out what is happening “under the hood” when using West.