PlatformIO Community

PlatformIO IDE 2.0 for VSCode 🚀

A new generation toolset for embedded C/C++ development

We’re happy to announce the major release of PlatformIO IDE 2.0 for VSCode!


What is New

In this section, we are going to highlight the most important changes and
features introduced in PlatformIO IDE 2.0 for VSCode. Please visit PlatformIO IDE for VSCode Release Notes for more detailed information.

Task Explorer

PlatformIO IDE 2.0 for VSCode finally brings a powerful task explorer with the next features:

  • Instant access to the Project Tasks within the VSCode Explorer
  • Grouped tasks: Generic, Advanced, Remote Development, Platform, Custom, etc.
  • Support for PlatformIO development platform targets (Program FPGA bitstream, Burn bootloader, Upload to FS, OTA Update, etc). The list of tasks depends on a particular dev-platform
  • Access to User Custom Targets.


The latest version of CHIPS Alliance dev-platform provides custom targets such as programming of FPGA board, starting simulator, etc. See a demo of a project from RVfpga: Understanding Computer Architecture course by Imagination Technologies:

Screen Shot 2020-09-10 at 18.39.02

Project Environment Switcher

Project Environment Switcher was the most requested feature by our community. It is possible now to switch between project environments without any changes to the platformio.ini configuration file:

  • Switch between project environments declared in platformio.ini project configuration file (issue #544)
  • Activate IntelliSense service based on the current environment
  • Automatically generate a debugging configuration for the active environment


A good example of this feature will be Marlin project, an optimized firmware for RepRap 3D printers. Developers can now easily switch between pre-configured settings:

Screen Shot 2020-09-10 at 20.25.27

New Installer

PlatformIO IDE installer was rewritten from the scratch. It now is based on the cross-platform and portable installer script. can also be used for integration with custom applications or plugins. It automatically installs PlatformIO Core into the isolated Python environment with the rest dependencies.

The next major improvement is installation progress. The new installer will show detailed information about each step:

Screen Shot 2020-09-10 at 20.37.32


Requires PlatformIO Core 5.0 or above
Requires VSCode 1.44 or above

Please navigate to “VSCode > View > Extensions” and click “Update”.

Your friends at PlatformIO


Was it a deliberate decision to move the common Build, Upload, Clean etc tasks from the PIO sidebar to the this smaller section in the file explorer?

The docs also still say that the tasks can be found in the old location


Where as in this new version it’s now the PIO Quick access bar


and the user has to re-find the old tasks menu in a small and by-default collapsed menu in the file explorer



which also takes away from the space available for the open files.

Can’t the PIO quick access sidebar also have the build tasks there?

Sorry, we forgot yo update the docs. We will do this ASAP.

“PLATFORMIO TASKS” is now a native VSCode’s view and you can move/drag it to any place where you want, even into the previous location under “PlatformIO” activity.

We can’t expand it by default :frowning: There is no API for this case.

Screen Shot 2020-09-10 at 22.03.11


That’s good for customization at least.

But when after 40 minutes of the release announcement there are already users (me and No Build / Upload button since update) who have to be looking for the good old build buttons it’s maybe confusing :sweat_smile:.

That’s really cool and I also just dragged my window there to have back the defaults. I personally think though that the PIO sidebar should look like that by default or just have the original list expanded with what’s in PlatformIO tasks.

1 Like

We discussed internally with our team and will back Project Tasks view to the PlatformIO activity. Also, we will provide info that developers can move this view to other locations.

2.0.1 will be released tomorrow.

Do you like to switch every time from Explorer view to PlatformIO to run a task? That was a goal to eliminate this switching. What is your workflow?

Actually yes. Usually I open the files I need to work on in the file explorer so that now I have them open as tabs. Then I edit the code there, Ctrl+PageDown/PageUp to navigate the files and press build in the sidebar etc. to test it. When I need a new file to be open, I go back to the explorer and open it there.

Maybe I’m the one who should get accustomed to new workflows after all, they make more sense and are more efficient… It’s just that when you get accustomed to that workflow, a change in that is at first hard to adapt to. But I just had that “huh?” moment because the well-established big thing (project tasks in the sidebar) wasn’t where I was expecting it but was instead in a tiny collapsed menu.

So maybe it’s the best to have both available and notify users of the new possibility.

Of course I’m not the only human using PIO and more opinions might be needed. Certainly don’t make a decision solely based on me :wink: There are also “user acceptence” tests for UI stuff like that in big corporations :smiley:


PlatformIO IDE for VSCode 2.0.1 is out! It looks like other people are also used to the previous location. Also, there are a lot of tutorials. We will provide information in docs that people can drag that view. So, everyone will decide personally how it is better for him.

Since I followed the beta builds, this wasn’t a surprise for me. I prefer the new customisation option, as I can leave a smaller panel open with PlatformIO showing like below, but also appreciate others are used to the old layout. So this is a nice compromise.


1 Like

Libraries can no longer be installed to global storage? When I try and install a new library, the only option seems to be ‘Add to project’… this is not good.

  • JMe

Could you explain why?

1 Like

@ivankravets Thanks for the new version and all the good work.

I very much support to change from Install… to Add to Project…. It’s the proper way to do software development as it gets rid of so many problems. I’ve advocated the use of lib_deps again and again. And I can now tick off one of wishes for Santa Clause.

The Add to Project… feature however highlights the weak Visual Studio Code integration of this part of PlatformIO. That’s next on the wish list…


I typically use a set of libraries for several projects. Let’s say I have none in global storage. When I add a new projects, I end up adding libraries one by one for each of them, in separate storage locations. I can see how this makes dependency management and project copying/moving easier, and if I want to make a change to a library for just one project, this is great. But otherwise it’s just a waste of space and effort. There should at least be a possibility to select if a library is added globally, or locally to a project (preferably with scoping, so that project’s local lib installation overrides the local one).

  • JMe

PlatformIO IDE 2.1.0 for VSCode is out!

  • Added a new setting platformio-ide.autoPreloadEnvTasks to enable automatic preloading of the project environment tasks (issue #2004)
  • Renamed “PIO Remote” group of tasks to “Remote Development”
  • Updated PlatformIO Core installer to v0.3.5

See PlatformIO IDE 2.1.0 for VSCode Release Notes for details.


Please navigate to “VSCode > View > Extensions” and click “Update”.

Your friends at PlatformIO

Has support for Global libraries been removed in the latest VS Code addon?

I can no longer install libraries to Global storage, and when I try to update a library thats in global storage (I have many), the update button is present, but greyed and I get the red unavailable symbol when I hover over the button.

This would be a major pain for me as I use global storage almost exclusively for projects at work, with only local libs used for projects that have extra dependencies above our baseline on all projects. I also use a local package if we need to modify any library code for whatever reason.

Nothing in the Release notes makes it clear this is gone:

Is there a way to bring it back?

Open a PIO terminal (or a shell if you have the PIO core installed globally) and excecute pio lib --global update. Does it throw an error?

If yes, is pio lib -g list able to enumerate all globally installed libraries correctly?

Updating in the terminal does work, but if the feature is still in platformio, it makes sense to keep it in the VS Code addon GUI I think.

Yeah Global list also still works, its just the UI elements that no longer work in the latest (since V2 ) VS Code Addon.

Hm. Same behavior for me. Installing an outdated library version with

$ pio lib -g install itead/Nextion@0.7.0
Library Storage: /home/max/.platformio/lib
Library Manager: Installing itead/Nextion @ 0.7.0
Library Manager: Nextion @ 0.7.0 has been installed!

(latest is 0.9.0), the update button is also greyed out and the cursor turns into a red “forbidden” sign when hovering over it.


Not sure what’s going as I don’t find any updated references in the migration guide or in the PIO Home docs.

Via terminal it still works too.

pio lib -g update
Library Storage: /home/max/.platformio/lib
Updating itead/Nextion                        0.7.0                              [Outdated 0.9.0]
Library Manager: Installing itead/Nextion @ 0.9.0
Downloading  [####################################]  100%          
Library Manager: Nextion @ 0.9.0 has been installed!
Library Manager: Removing Nextion @ 0.7.0
Library Manager: Nextion @ 0.7.0 has been removed!

@ivankravets anay idea why the PIO Home GUI forbids the update?

1 Like

It seems like a bug, we will fix it ASAP. Thanks, @maxgerhardt :blush: