ros2env is a Visual Studio Code extension that helps you manage isolated ROS2 environments with ease — start, stop, switch, and interact with them directly from your editor.
Whether you're working on multiple ROS2 projects or want to simplify environment switching, ros2env provides a seamless developer experience inside VS Code.
🌐 Visit the Landing Page – Explore features, guides, and videos in one place.
- 🚀 No more conflicting ROS2 installations
- 🐳 Docker powered isolation (fully abstracted)
- 🔄 Seamless environment switching
- 💻 Works across Windows, Mac and Linux
- 🖥️ GUI tools accessible via browser (RViz, Gazebo, etc.)
- 🔍 Discover available ROS2 environments
▶️ Start or stop environments with one command- 🧠 Open a ready to use terminal inside the environment workspace (
ros2_ws
) - 🪟 Launch GUI apps from your environment (via browser-based interface)
- ➕ Create or 🗑️ delete environments easily
- 🧭 Treat each environment like a virtual ROS2 workspace
Before using ros2env, ensure the following is installed on your system:
- Visual Studio Code ( >= v1.80.0)
- Docker (used under the hood)
- OR WSL Docker (if you're using Windows Subsystem for Linux)
💡 Docker is required to isolate and manage environments behind the scenes. You don't need to know Docker to use ros2env.
You can install the extension in two ways:
- Open VS Code and go to Extensions
- Search for
ros2env
- Click Install
OR run from terminal:
code --install-extension SakshayMahna.ros2env
-
Download the latest release 👉 Download ros2env-0.0.7.vsix
-
Install the extension in VS Code
code --install-extension ros2env-0.0.7.vsix
Here’s how to start using ros2env to manage your ROS 2 environments.
Open any folder where you plan to work on your ROS2 project.
If you don’t have a workspace yet, no problem —
ros2env
creates one for you.
- Open the Command Palette (
Ctrl+Shift+P
orCmd+Shift+P
on Mac) - Run:
ROS2: Create Environment
- Enter a name for your new environment (e.g.,
my_ros2env
) - Choose a ROS 2 distro (e.g.,
humble
,foxy
, etc.) - Wait for setup to complete (you’ll see progress)
🎉 A new isolated ROS2 environment will be created with a ready to use workspace.
- Open Command Palette again
- Run:
ROS2: Load Environment
- Select one of your previously created environments
This will:
- Start the environment (if stopped)
- Stop any running environment (if different)
- Attach an interactive terminal inside
ros2_ws
- Run:
ROS2: Open Terminal
- This opens a terminal already inside your ROS2 workspace
You're ready to build, source, and run ROS2 nodes like usual.
- Run:
ROS2: Open GUI
- This opens a browser tab with access to graphical tools (RViz, Gazebo, etc.)
GUI support is provided via an embedded desktop accessible through your browser.
- Run:
ROS2: Stop Environment
- This shuts down the running environment and closes terminals
- Run:
ROS2: Delete Environment
- Select one or more environments to remove permanently
- Have questions? Join Discussions
- Found a bug? Report an Issue
Contributions are welcome! 🚀
If you'd like to improve ros2env:
- Create or select an issue to work on
- Fork this repository
- Create a new branch
- Submit a pull request mentioning the issue
MIT License © Sakshay Mahna