Introduction to M2C2 addons
An addon is a self-contained package dropped into the M2C2 addons/ directory (exact path depends on install). Each addon ships:
manifest.jsonβ identity, permissions, entrypoints.- UI bundle β React components rendered inside
AddonWidgetsandboxes. - Optional server routes β registered under
/api/addons/:addonId/*when allowed. - Optional Python service β long-running workers for CV / ML / device bridges.
π‘ Tip: Keep addons single-purpose β βcrypto price tileβ and βquote of the dayβ are easier to test than a mega-addon that touches ten permissions.
Lifecycle
- Discovery β core scans
addons/*/manifest.jsonat startup. - Activation β user enables addon in Settings β Addons.
- Render β dashboard mounts your widget with injected context (theme, locale, settings).
- Updates β marketplace delivers semver bundles; core migrates stored settings when
manifest.migrationsruns.
β οΈ Warning: Addons run with whatever permissions you declare. Request least privilege β reviewers and users reject overbroad * scopes.
Next
Read Addon file structure.
Last updated on
Was this helpful?