Skip to main content

Plugins

proto supports a pluggable architecture as a means for consumers to integrate and manage custom tools (languages, CLIs, etc) within proto's toolchain. It's not possible for proto to support everything in core directly, so plugins are a way for the community to extend the toolchain to their needs.

Enabling plugins

Plugins can be enabled by configuring them in .prototools or ~/.proto/.prototools files, within the [plugins] section. The map key is the plugin name in kebab-case, which is used as the binary/tool name in proto, and also the name for configuration and cache purposes. The map value is a plugin locator string that defines a scope and source location.

.prototools
[plugins]
<id> = "<scope>:<location>"

Creating plugins

To ease the plugin development process, proto supports 2 types of plugins, a TOML based plugin for basic use cases, and a WASM based plugin for advanced use cases.