publish-moviepilot-plugin

Publishes and syncs MoviePilot local plugins to GitHub repositories via the Contents API.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Maintaining a MoviePilot plugin repository on GitHub by hand is error-prone: you must keep package.json/package.v2.json entries in sync, avoid leaking secrets or local config files, and manually diff local changes against the remote. This Skill automates safe publishing, previewing, and syncing of a single local plugin to a GitHub repository.

Core Features & Use Cases

  • Diff Preview Before Push: Compares local plugin files against the remote repository and reports created, updated, deleted, skipped, and rejected files before any write occurs.
  • Incremental GitHub Publishing: Uploads only changed plugin files and merges just that plugin's entry into package.json or package.v2.json, without touching other plugins' entries.
  • Bidirectional Sync: Pulls remote plugin code back to the local source tree, refusing to overwrite conflicting local files unless forced.
  • Secret & Runtime File Protection: Excludes .env files, databases, logs, caches, keys, and certificates from upload by default.
  • Use Case: You finished developing a MoviePilot plugin locally and want to publish it to your GitHub plugin repository. The Skill locates the plugin via PLUGIN_LOCAL_REPO_PATHS, previews the diff, and pushes only the changed files with a single confirmation.

Quick Start

Ask the agent to publish your local plugin, for example: "Publish my local MyPlugin plugin to my GitHub repository owner/repo and show me the diff first."

Frequently Asked Questions about publish-moviepilot-plugin

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

FAQPage Schema
How do I publish a MoviePilot plugin to GitHub?

Run the publish script with the push command, providing the target owner/repo, plugin ID, local repository path, and package version. Always run the preview command first to review the diff, then confirm the push to upload changed files and merge the package entry.

How do I sync GitHub plugin code back to my local MoviePilot repository?

Use the pull command with the repository, plugin ID, and local repo path. Remote files are written locally, but files that differ from local versions are reported as conflicts and only overwritten when you pass the --force flag.

Does the plugin publisher work without a GitHub token?

Read-only preview against public repositories can run without a token. Push, pull of private repos, and repository creation require a token resolved from REPO_GITHUB_TOKEN, GITHUB_TOKEN settings, or MOVIEPILOT_GITHUB_TOKEN/GITHUB_TOKEN/GH_TOKEN environment variables.

Which files are excluded when publishing a plugin to GitHub?

By default the script rejects .env files, config, data, cache, logs, tmp directories, databases, logs, keys, certificates, __pycache__, and node_modules. You can override exclusions with --include or add extra patterns with --exclude.

What is the difference between package.json and package.v2.json plugin layouts?

V2 layout uses package.v2.json with plugins.v2/<plugin_id>/ directories, while legacy uses package.json with plugins/<plugin_id>/. The script auto-detects the layout from existing files or accepts an explicit --package-version argument.

Can the skill create a new GitHub repository for my plugin?

Yes, the create-repo command or push with --create-repo-if-missing creates the target repository when it does not exist. Repositories are public by default and only created as private when explicitly requested.