Permissions
A plugin declares what it is allowed to do in the permissions list of majic.json. Majic only grants those permissions.
Available permissions
| Value | Allows | Risk |
|---|---|---|
| ui | Modify the interface: Add buttons, panels or styles in Discord. | Low |
| notifications | Notifications: Show notifications. | Low |
| storage | Local storage: Save its own settings on the device. | Low |
| clipboard | Clipboard: Read and write the clipboard. | Medium |
| network | Network access: Communicate with external websites or servers. | Medium |
| voice | Audio and voice: Process voice channel audio (microphone, audio output). | Medium |
| guilds.read | Read servers: See the user's list of servers and channels. | Medium |
| messages.read | Read messages: Read the content of messages in open channels. | High |
| messages.send | Send messages: Send or edit messages on the user's behalf. | High |
Best practices
- Only request what your plugin actually needs: every permission is checked during review.
- High-risk permissions (
messages.read,messages.send) get extra scrutiny. Explain why you need them in your description. - Users see the permissions on the plugin page and in the app before installing.
Adding a permission in an update is flagged to the admins and the user is asked again before updating. Avoid adding permissions unless necessary.