# Functions
Add takes plugin name and Git URL and installs the plugin if it isn't already installed.
List takes config and flags for what to return and builds a list of plugins representing the currently installed plugins on the system.
New takes config and a plugin name and returns a Plugin struct.
NewPluginAlreadyExists generates a new PluginAlreadyExists error instance for a particular plugin.
PluginExists returns a boolean indicating whether or not a plugin with the provided name is currently installed.
Remove uninstalls a plugin by removing it from the file system if installed.
# Structs
NoCallbackError is an error returned by RunCallback when a callback with particular name does not exist.
NoCommandError is an error returned by ExtensionCommandPath when an extension command with the given name does not exist.
Plugin struct represents an asdf plugin to all asdf code.
PluginAlreadyExists is an error returned when the specified plugin already exists.
PluginMissing is the error returned when Plugin.Exists is call and the plugin doesn't exist on disk.