Hi Dan,
Thanks for asking. There were a few problems I was trying to solve:
Developing new plugins
As I was learning how to develop plugins for Keyboard Maestro, I was reading a number of the different pages and was finding that I had to take time to learn the structure. I wanted to have an easy way to create a new plugin with the right structure, plist, etc.
Installing dependencies
Many of my plugins I have been building also leverage a number of dependencies that are libraries from homebrew, so I wanted to find a way that easily also installs the dependencies as well. I added to the plist that the dependencies in homebrew can then be included in there so as part of the installation it then can install any of the dependencies.
Repositories
I see that there are a number of samples that are posted to the forums. However, I wanted to go in the direction where those plugins could be managed in places like GitHub. I want to then be able to install easily rather than having to download from forums. I haven't implemented this yet, but it would be like homebrew, apt-get, etc. so you can just install from a library of different plugins easily by name.
This would also then allow the possibility of allowing updating, so each of those plugins could have their repositories and a .km-builder update could go and update those repos.
Again, not something that I have entirely implemented yet, but that is the thought.
Enable/Disable/Install/Uninstall
Currently, to enable and disable requires me to remove the folder from Application Support, then tell the Keyboard Maestro Engine to update. By using the Terminal, then allow for me to uninstall or update and it will automatically update Keyboard Maestro. This is particularly helpful during development.
I will also note that I think there are opportunities that could even be in product that could be great opportunities such as:
A plugin exchange
A UI for enabling and disabling
Allowing plugins to have a repo so that it updates
But I am looking at it via Terminal because I am doing a lot of different plugins.