I feel that our plugin system offers a missed opportunity. By making small extensions to available functionality, we can use this system to do so much - and with a much lower complexity and barrier to entry compared to C++ ESP IDF development.

There are a couple of things I would like to now do:

  1. Implement a mechanism for plugins to directly extend the console command language (other than the current ’script exec PLUGIN.fn’).

  2. Implement a plugin repository, and command line tools for managing plugins. We simply need to have a store and directory of available plugins, a way of searching/listing those, and a uniform way to install/remove plugins. Once this is done, perhaps someone can handle the web UI side of this, and perhaps that can even be done as a plugin :-)

I’m already working on #1. Just an extension to the existing script system to allow plugins to register commands, and to have the command register/deregister done automatically on plugin load/unload.

However, #2 is a little more tricky and I’m looking for feedback on the design of this. My idea is:


Does that make sense? Any suggestions/comments?

Regards, Mark.