---
slug: proto-v0.16
title: proto v0.16 - Add, remove, and purge plugins
authors: [milesj]
tags: [proto, plugin]
---

This release adds functionality for managing plugins and purging the proto store.

<!--truncate-->

## Add and remove plugins

Now that proto has fully embraced a plugin based architecture, we thought it'd be nice to support
the management of these plugins through the CLI. This release adds two new commands:
[`proto add-plugin`](/docs/proto/commands/plugin/add) and
[`proto remove-plugin`](/docs/proto/commands/plugin/remove).

Adding a plugin requires a unique ID and what we call a locator, which is a string that dictates
where to locate and download the plugin from. Here's an example for Node.js, but this isn't
necessary as it's built-in:

```shell
$ proto add-plugin node source:https://github.com/moonrepo/node-plugin/releases/latest/download/node_plugin.wasm
```

Additionally, removing a plugin is even easier.

```shell
$ proto remove-plugin node
```

## Purge tools and plugins

proto has supported cleaning for quite some time through the
[`proto clean`](/docs/proto/commands/clean) command (and the
[`auto-clean` setting](/docs/proto/config)), which would automatically delete installed tool
versions and temporary files that are older then a specific timeframe. This helps to free up disk
space for unused or rarely used tools.

In this release, we're expanding the `clean` command's functionality with a concept known as
purging, which will "delete entirely". The first being the new `--purge` option, which will delete a
tool, its manifest, _all_ installed versions, and the entire `~/.proto/tools/<id>` directory.

```shell
# Delete all traces of Node.js
$ proto clean --purge node
```

Additionally, a new `--purge-plugins` option can be used to delete all downloaded plugins (the
`~/.proto/plugins` directory). Useful for house keeping or if you want to start fresh.

```shell
$ proto clean --purge-plugins
```

## Other changes

View the [official release](https://github.com/moonrepo/proto/releases/tag/v0.16.0) for a full list
of changes.

- Added folder locking during tool installation to avoid colliding processes.
- Renamed `PROTO_ROOT` to `PROTO_HOME`, but we'll support `PROTO_ROOT` for the time being.
