Skip to content

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

majic.json
{
  "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

majic.json
{
  "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

FieldRequiredDescription
idYesUnique, permanent identifier: 3 to 40 characters, lowercase letters, digits and hyphens. It cannot change after publication.
nameYesDisplay name (2 to 60 characters).
versionYesVersion in x.y.z format. It must match the release tag (1.1.0 or v1.1.0).
descriptionYes20 to 1000 characters. Pre-fills the submission form.
typeYesplugin or theme. Cannot change after publication.
tagsPluginsCategories, the first one being the main one: Interface, Utilities, Audio, Privacy, Moderation, Fun.
mainYesEntry point inside the .zip: a .js file (plugin) or a .css file (theme).
permissionsNoWhat the plugin is allowed to do. See Permissions. A theme cannot request any.
majic_versionNoMinimum Majic version required, e.g. >=1.0.0.
api_versionNoPlugin API version (1 by default).
authorNoDisplay name. The reference author remains your verified GitHub account.
update_urlNoIf 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.
  • id and type cannot change between versions.
  • The release must contain exactly one .zip, or one named <id>.zip.
  • Unknown permissions are rejected, and themes cannot request any.