Skip to content
HomeWebAppSetDocsAbout
🌐 Auto English 简体中文 繁體中文 Español Français Русский العربية Português Deutsch 日本語 한국어 हिन्दी

Plugin System

Moraya supports an extensible plugin system for adding new capabilities beyond the built-in features.

Plugin Manifest

Each plugin includes a plugin.json manifest file:

{
  "id": "example-plugin",
  "name": "Example Plugin",
  "version": "1.0.0",
  "apiVersion": "1.0",
  "entry": {
    "darwin-arm64": "bin/plugin-arm64",
    "darwin-x64": "bin/plugin-x64",
    "win32-x64": "bin/plugin.exe",
    "linux-x64": "bin/plugin"
  },
  "permissions": ["editor:read", "editor:write"],
  "sandboxLevel": "local"
}

Sandbox Levels

Plugins run in one of three sandbox levels:

LevelRuntimeNetwork AccessDescription
sandboxJavaScriptNoMost restricted, future JS-only plugins
localNative binaryNoNative execution without network
systemNative binaryYesFull access (requires explicit user approval)

Permissions

Plugins must declare the permissions they need:

PermissionDescription
editor:readRead editor content
editor:writeModify editor content
ai:chatAccess AI chat functionality
ai:imageAccess AI image generation
ai:voiceAccess voice transcription
ai:voice:captureAccess microphone capture
net:externalMake external network requests

Users approve permissions at install time. Plugins cannot exceed their declared permissions.

Installing Plugins

From ZIP File

  1. Open Settings (Cmd+,) > Plugins tab
  2. Click “Install from File”
  3. Select the plugin ZIP file
  4. Moraya validates the manifest and verifies the SHA256 hash
  5. Review permissions and confirm installation

From URL

  1. Open Settings > Plugins tab
  2. Click “Install from URL”
  3. Enter the plugin download URL and expected SHA256 hash
  4. Moraya downloads, verifies, and installs the plugin

Plugin Management

The Plugins tab in Settings provides:

Communication

Plugins communicate with Moraya via JSON-RPC over stdio, similar to MCP servers. Requests are proxied through the Tauri backend for security.