majic.json reference
The manifest at the root of your repository. The site reads it at the release tag and validates it before every submission or update.
Plugin example
{
"id": "resource-advisor",
"name": "Resource Advisor",
"version": "1.1.0",
"description": "Shows resource usage and suggests one-click optimizations.",
"type": "plugin",
"tags": ["Utilities"],
"main": "dist/index.js",
"permissions": ["ui", "storage", "notifications"],
"majic_version": ">=1.0.0",
"api_version": 1,
"author": "MaitreAntho",
"update_url": "https://majicord.com/api/plugins/resource-advisor/update.json"
}Theme example
{
"id": "midnight-rose",
"name": "Midnight Rose",
"version": "1.0.0",
"description": "A dark theme with pink accents, made for long sessions.",
"type": "theme",
"main": "theme.css"
}Fields
| Field | Required | Description |
|---|---|---|
| id | Yes | Unique, permanent identifier: 3 to 40 characters, lowercase letters, digits and hyphens. It cannot change after publication. |
| name | Yes | Display name (2 to 60 characters). |
| version | Yes | Version in x.y.z format. It must match the release tag (1.1.0 or v1.1.0). |
| description | Yes | 20 to 1000 characters. Pre-fills the submission form. |
| type | Yes | plugin or theme. Cannot change after publication. |
| tags | Plugins | Categories, the first one being the main one: Interface, Utilities, Audio, Privacy, Moderation, Fun. |
| main | Yes | Entry point inside the .zip: a .js file (plugin) or a .css file (theme). |
| permissions | No | What the plugin is allowed to do. See Permissions. A theme cannot request any. |
| majic_version | No | Minimum Majic version required, e.g. >=1.0.0. |
| api_version | No | Plugin API version (1 by default). |
| author | No | Display name. The reference author remains your verified GitHub account. |
| update_url | No | If present, must be this site's update URL: /api/plugins/<id>/update.json. The app only trusts that address. |
Validation rules
- The release tag must match
version, and each update must have a higher version than the published one. idandtypecannot change between versions.- The release must contain exactly one
.zip, or one named<id>.zip. - Unknown permissions are rejected, and themes cannot request any.