Skip to content

VSCode Zephyr Workbench - Current Capabilities and Contribution AreasΒ #97484

@dleach02

Description

@dleach02

Discussed in #97483

Originally posted by RoyAc6 October 13, 2025

Context

During the last F2F TSC meeting, we discussed improving existing open-source tooling and extensions to simplify Zephyr adoption and enhance the developer experience.
This RFC continues that discussion by summarizing the current state of Zephyr Workbench, identifying areas where vendor contributions can have the greatest impact, and outlining key next steps for coordinated progress.
Other related discussion: GitHub Discussion #74005

1. Summary

This RFC proposes establishing a clear summary of currently supported features in Zephyr Workbench
and defining the areas for vendor-specific integrations.

The goal is to build a shared understanding of what types of contributions are needed
to achieve consistent and complete support within the Workbench.

2. Background

While many core features are already implemented, full support across all vendor platforms remains uneven,
and some existing features still need improvements. This limits the out-of-the-box functionality of Zephyr Workbench.

The core idea of Zephyr Workbench is to provide:

  • A "one-click" experience for Zephyr developers (from setup to debugging).
  • A graphical user interface for selecting and configuring options.

Documentation: Zephyr Workbench Documentation

This RFC aims to clarify:

  • What Zephyr Workbench currently supports and which improvements are planned.
  • What contributions and inputs vendors can provide to extend or complete support.

3. Current Support and Expected Improvements

3.1. Application Creation

Currently supported:

Planned improvements:

  • Add Rust support.
  • Migrate from IntelliSense to clangd for more robust and consistent code indexing.

3.2. Device Tree and Kconfig

Currently supported:

  • Opening and configuring via menuconfig and guiconfig.

In progress:

  • Support for DTS Language Server (dts-lsp) to improve device tree navigation and validation.
  • Any other suggestions ?

3.3. Toolchains

Currently supported:

  • Zephyr SDK
  • IAR

Planned additions:

  • GNU Arm Embedded Toolchain
  • Arm Compiler 6
  • Other toolchains as needed, based on vendor requirements.

3.4. Host Tools

The goal is to make Zephyr Workbench a one-click setup across major operating systems.

Platform Status Notes
Windows 10 & 11 Supported (CMD, PowerShell, PowerShell 7, Cygwin/MSYS/Git-Bash shells). Debugging is not yet fully supported in non-native shells.
macOS Supported via Homebrew (Apple Silicon tested, Intel partially supported). β€”
Linux Tested on Ubuntu 20.04, 22.04, 24.04. Partial support for other distributions (Debian, Fedora, Clear Linux, Arch Linux).

Objective: Achieve verified, full support across all major Linux distributions.

3.5. Other Features

Currently supported:

Planned improvements:

  • Also supporting cortex-debug and coupling it with west debugserver
  • MISRA support (integration with Bugseng ECLAIR).
  • Tracealyzer/Percepio view one-click integration.
  • Dedicated memory footprint panel within the IDE.
  • Creating "Debug" and "Release" profiles
  • Additional integrated analysis and visualization tools.
  • Twister setup and run
  • GUI for customizing the west manifest
  • GUI for host tools customization
  • Get rid of any VSCode specific dependencies, so we can integrate it in VSCode-compatible tools (VSCodium, Theia)
  • Having a custom tool that can be fetched and run directly using west west workbench

3.6. Flash and Debug (Runners)

Zephyr Workbench uses Zephyr's "way" using west to manage flashing and debugging.
The concept involves coupling the west debugserver with VS Code,
where the runner must be installed and accessible in the system PATH.

Zephyr defines two relevant components:

  • Debug Manager -- Configures and customizes debuggers, generating launch.json templates.
  • Debug Host Tools -- Installs runners and manages their dependencies.

Where Vendors Can Help

  • Provide a simple installation method for vendor-specific runners and debug tools.
  • Contribute packs, such as the STM32 Debug Pack (which installs OpenOCD + CubeProgrammer).
  • Easily find SVD files and automatically integrating them
  • Testing boards and address related issues
  • Extend support for other debuggers and vendor-specific interfaces.
  • Developing and the contributing planned features
  • Reporting host OS compatibility issues and proposed fixes.
  • Participating in validation and testing across hardware targets.

Zephyr Workbench also supports pyOCD, automatically installing the
appropriate "pack" for selected boards when available.

4. Next Steps

  • Gather feedback from maintainers, vendors, and community contributors.
  • Finalize the list of expected integration points and active areas for contribution.
  • Document these expectations in the Zephyr Workbench repository for easier onboarding of vendors.

Discussion
Community members and vendors are encouraged to share feedback, ideas,
or examples of integration approaches that worked well for their hardware.
The objective is to align on common extension mechanisms without limiting vendor flexibility.

Github users who may be interested:
@RoyAc6, @dleach02, @ifyall, @MaureenHelm, @carlescufi, @erwango, @jhedberg

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCRequest For Comments: want input from the communityarea: DXDeveloper and User Experience

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions