Skip to content

Writing an Addon

bclml edited this page Oct 3, 2026 · 1 revision

Writing an Addon

Full reference: docs/ADDONS.md. Step-by-step guide that also works for AI assistants: docs/AI_ADDON_GUIDE.md.

The short version

  1. Copy addons/_example_addon.py to addons/my_addon.py and edit it (a class extending AddonBase).
  2. Try it: python mcIRC.py --demo, Tools > Addons > Reload.
  3. Package it as packages/my_addon/addon.json + packages/my_addon/my_addon.py.
  4. Validate: python packages/check_package.py packages/my_addon
  5. Submit: open a pull request that adds only packages/my_addon/, or an Addon submission issue.
  6. A maintainer reviews and tests it, then adds it to addons-catalog.json so everyone can install it from the in-app catalog.

Rules

  • Anything that transmits must be rate-limited, have an off switch and be off by default - the mesh is small and shared.
  • No secrets or personal data in code. Settings go through self.api.get/set.
  • Slow work (radio, network) goes in self.api.run_background; stop every thread in on_unload.
  • Never edit core files (mcIRC.py, meshcore_io.py, gui_*.py).

Using an AI assistant

The repo contains AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md and a Cursor rule that point assistants to the guide. For a chat-only assistant, give it the link to docs/AI_ADDON_GUIDE.md.

Clone this wiki locally