create-moviepilot-plugin

Create, validate, and install MoviePilot V2 plugins with Vuetify JSON or Vue federation UIs.

11.7k|1.5k|Updated May 31, 2023
One-click install
npx skills add https://github.com/jxxghp/MoviePilot --skill create-moviepilot-plugin
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: create-moviepilot-plugin
Source: https://github.com/jxxghp/MoviePilot/tree/main/skills/create-moviepilot-plugin
Command: npx skills add https://github.com/jxxghp/MoviePilot --skill create-moviepilot-plugin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building a MoviePilot plugin requires coordinating backend extension points, package metadata, local plugin sources, and optional Vue federation frontends, which is error-prone without a guided workflow.

Core Features & Use Cases

  • Plugin Scaffolding: Generates _PluginBase implementations with correct class naming, directory layout, package.v2.json metadata, and Chinese docstrings.
  • Dual UI Modes: Guides the choice between Vuetify JSON forms/pages/dashboards and Vue module federation remote components with sidebar navigation.
  • Local Install & Reload: Configures PLUGIN_LOCAL_REPO_PATHS, installs plugins via the MoviePilot API, and handles hot reload versus dependency reinstall flows.
  • Use Case: Ask the assistant to build a notification plugin with a config form; it scaffolds the plugin in your local plugin repository, updates package.v2.json, installs it into the running MoviePilot instance, and validates the result.

Quick Start

Ask the assistant to create a MoviePilot plugin that sends a custom notification, and let it scaffold, install, and validate the plugin in your local plugin source.

Frequently Asked Questions about create-moviepilot-plugin

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a MoviePilot V2 plugin?

Create a class inheriting _PluginBase in a plugins.v2/<plugin_id>/ directory, implement init_plugin, get_state, get_form, and other needed extension points, then add a matching entry in package.v2.json. Install it through the MoviePilot API with plugin.install.

Should I use Vuetify JSON or Vue federation for a MoviePilot plugin UI?

Use Vuetify JSON schemas via get_form, get_page, and get_dashboard for standard config forms and simple pages. Use Vue federation with get_render_mode returning ("vue", "dist/assets") when you need complex interactions, custom layouts, or full sidebar pages.

How do I install a local MoviePilot plugin for development?

Set PLUGIN_LOCAL_REPO_PATHS to a local plugin source directory, write the plugin under plugins.v2/, then call plugin.market with force_refresh to verify visibility and plugin.install with force=true. The install flow copies source into app/plugins/.

Why is my MoviePilot Vue federation plugin not loading?

Check that dist/assets/remoteEntry.js exists in the installed plugin directory, the federation shared config uses requiredVersion: false for vue and vuetify, and Vite build.target is esnext for top-level await. Verify /api/v1/plugin/remotes lists the plugin.

Does changing requirements.txt hot reload a MoviePilot plugin?

No, hot reload only syncs Python source changes. When requirements.txt changes, you must reinstall the plugin with plugin.install and force=true so new dependencies are installed into the shared MoviePilot Python environment.