What is buildfs, uploadfs?

Running pio run --list targets I see a whole list of targets available.

I see buildfs, uploadfs, and uploadfsota which I have never used. I have only every used erase and upload.

What do the others do? What should they be used for? I’m not finding any docs when I search on the site or google.


uploadfs is directly documented in


that’s the target name for (building and) uploading the filesystem binary. The targets are being created in platform-espressif32/builder/main.py.

So I understand, the fs notation indicates this is just the file system bit getting rebuilt or uploaded, not the firmware?

Example: if you have a partition table that looks like this

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x330000,
app1,     app,  ota_1,   0x340000,0x330000,
spiffs,   data, spiffs,  0x670000,0x190000,

and you run uploadfs just the spiffs partition would be updated?

Yes. You can also see that in the flashing command visible when you’d do pio run -v -t uploadfs on the CLI.