-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Manifest
michelpelletier07 edited this page Feb 16, 2026
·
3 revisions
In progress
Each extension must contain a manifest.json file. This is what is searched for to detect the extension and obtain information about it.
manifest.json
{
"uri": "musescore://extensions/colornotes",
"type": "macros",
"title": "Color Notes",
"description": "This plugin colors notes in the selection depending on their pitch as per the Boomwhackers convention",
"category": "color-notes",
"thumbnail": "color_notes.png",
"version": "3.5",
"vendor": "Muse"
"ui_context": "Any",
"apiversion": 1,
"main": "main.js"
}
- uri (required) - This is the extension identifier, used to call it. It must be unique and follow the pattern:
musescore://extensions/extensions_name - type (required) - Type of extension
- macros - extension without user interface
- form - extension with user interface
- composite - extension consisting of several forms or forms and macros. If this type is specified, then the actions array should also be specified.
- title (required) - Title of extension
- description (required) - Description of extension
- category (optional)- Category of extension This will become the top-level menu item where your extension will be located.
- thumbnail (optional) - Thumbnail of extension. PNG format is supported.
- version (optional) - Version of extension.
- vendor (optional) - About the author.
- ui_context (optional) - The context in which the extension is available
- ProjectOpened (default) - Project (score) open
- Any - always available
- apiversion (optional)- required api version
- 1 - api of old plugins, deprecated, don't use this for new extensions
- 2 (default) - actual api
- main (required if actions is not provided) - Main entry point, .js or .qml file
- actions - Array of one or more actions to be performed by the extension. If not provided, a default action will be built from values above.
- code (required) - The action identifier.
- type (required) - Type of action. Same as above but for this specific action.
- title (required) - Title of action. Same as above but for this specific action.
- path (required) - Main entry point, .js or .qml file.
- ui_context (optional) - Same as above but for this specific action, with the default value being the one at the top level.
TODO
Testing
- Manual testing
- Automatic testing
Translation
Compilation
- Set up developer environment
- Install Qt and Qt Creator
- Get MuseScore's source code
- Install dependencies
- Compile on the command line
- Compile in Qt Creator
Beyond compiling
Architecture
Misc. development
Audio
Engraving
- Style settings
- Working with style files
- Style parameter changes for 4.0
- Style parameter changes for 4.1
- Style parameter changes for 4.2
- Style parameter changes for 4.3
- Style parameter changes for 4.4
Extensions
- Extensions overview
- Manifest
- Forms
- Macros
- Extensions API
- Legacy plugin API
Google Summer of Code
References