Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the concept of Meshtastic Plugins: a clean, decentralized way to extend Meshtastic without touching the core firmware.
Currently, the plugin registry is running as part of the https://meshforge.org/ project at https://registry.meshforge.org but I am open to moving it to an official registry if you guys like this concept. The pip package is also currently named
mesh-plugin-managerbut can be renamed tomeshtastic-plugin-managerif you take it on officially.Key features
Plugins live completely outside the core. They are installed as needed via a simple
git cloneinto./src/plugins/<plugin-slug>/.A new build helper script
./bin/mpm_pio.py(Meshtastic Plugin Manager) is invoked automatically via a tiny change inplatformio.ini:*.protofiles in plugins and generates the corresponding protobuf codemeshtastic/protobufsfilesmpm_pio.pycan also be used as a standalone CLI tool (python bin/mpm_pio.py list, etc.) to list discovered plugins or manually generate protobuf artifactsNew lightweight dynamic module registration system in
src/modules/ModuleRegistry.cppMESHTASTIC_REGISTER_MODULE(MyModule)in their codeModules.cppin the coreWorking examples
./src/plugins/sample-plugin– a fully functional demo plugin included in this repohttps://github.com/MeshEnvy/mesh-forge/blob/main/registry
Next step (suggestion)
If we like this direction, we could spin up an official
registry.meshtastic.orgthat serves the latestregistry.json. Plugin authors would contribute via PRs to a canonical registry repository, making discovery seamless for users.Looking forward to your feedback! This should make third-party extensions much easier and keep the core lean. There may even be existing modules that could be migrated out of the core.