Skip to content

~/.pulumi/plugins: every provider version you have ever used, kept forever

Pulumi downloads a full provider binary for each version a project asks for, and never removes old ones. How to list them by size and clear them safely.

4 min read

Every Pulumi project pins provider versions, and Pulumi downloads each one into ~/.pulumi/plugins. Cloud providers are large single binaries, and a provider upgrade leaves the old version in place. Work across a few projects for a year or two and the folder holds many versions of the same provider.

Measure it

du -sh ~/.pulumi/plugins
du -sh ~/.pulumi/plugins/* | sort -h | tail -15
pulumi plugin ls

Clearing old versions

Plugins are downloaded again automatically when a project needs them, so removing them costs a download and nothing more.

# one provider, one version
pulumi plugin rm resource aws 6.0.0

# everything, then let each project fetch what it needs
pulumi plugin rm --all --yes

After clearing everything, run pulumi install or pulumi preview in the projects you use, and only the versions they pin come back.

Other folders to check

  • ~/.pulumi/bin holds the CLI and language hosts, if you installed with the script rather than Homebrew.
  • Python and Node projects keep their own dependencies: a venv or node_modules per project. Our guides to node_modules and Python cover those.

Terraform has the same pattern with its provider cache, covered in Terraform cache taking up space.

Common questions

Where does Pulumi store plugins on a Mac?

In ~/.pulumi/plugins. Each provider version a project uses is downloaded there and kept.

Is it safe to delete Pulumi plugins?

Yes. Pulumi downloads the versions a project needs again when you run it. Clearing them costs a download.

How do I remove all Pulumi plugins?

Run pulumi plugin rm --all --yes, then run pulumi install or pulumi preview in each project you use to fetch only what it needs.

Read next