As shared in a lightning talk at ROSConFr: I have finally completed and “clauded” a comprehensive VS Code extension for ROS 2 development: a unified explorer, live parameter tuner, service/topic/action caller, log viewer, and syntax highlighting for interface files.
My favorite features of the extension, among others:
- Dynamically changing node ROS parameters at runtime via a YAML panel and comparing live params vs. edits: very handy for tuning PIDs, covariances, etc. Possibility to edit an existing params yaml file, inject missing parameters or view the all available parameters
- Displaying the logs of a namespace-filtered node in the output section of the IDE: useful while tuning a single set of nodes whose logs would otherwise be lost in a single launch command.
- Sending topics, services, or actions at runtime with predefined templates and QoS definitions.
- … plenty of others! I invite you to test it or check out the README section.
The main structure of the package is quite simple: usual ROS 2 CLIs are used in virtual shells to perform the functions, so no rclpy dependencies are required.
Available on:
GitHub (to install locally from the .vsix file, and for developers to edit, compile, etc.): GitHub - Tanneguydv/ros2-dev-suite: A comprehensive VS Code extension for ROS 2 development · GitHub
Visual Studio Marketplace (to directly install the extension from the IDE): ROS 2 Dev Suite - Visual Studio Marketplace
This package is a child of GitHub - ErickKramer/nvim-ros2: nvim-ros2 is a simple lua plugin that adds useful features to enhance your development workflow while developing ROS 2 modules. · GitHub , incorporating the latest pull request by Thibault Cozic for workspace navigation, ROS 2 tuner, etc. As I do not use Neovim, these features have been adapted to VS Code.
Some Screenshots:
Parameter tuning
Topic sender
Action caller
Service caller and yaml details (on mouse contextual window)
Logging filter for Output section of IDE
Dedicated notification of selected dying node
Filter left panel display by namespace






