Skip to content
Automation
Skill

/publish-moviepilot-plugin

Use this skill when the user asks to publish, upload, sync, pull, push, diff, or maintain a MoviePilot local plugin in a GitHub repository. Covers using the configured MoviePilot GitHub token, PLUGIN_LOCAL_REPO_PATHS local plugin repositories,

From plugin
moviepilot
12k16 skills

Claude Code

$ npx -y skills add jxxghp/moviepilot --skill publish-moviepilot-plugin --agent claude-code

SKILL.md

publish-moviepilot-plugin.SKILL.md
name: publish-moviepilot-plugin
version: 6
description: >-
  Use this skill when the user asks to publish, upload, sync, pull, push, diff,
  or maintain a MoviePilot local plugin in a GitHub repository. Covers using the
  configured MoviePilot GitHub token, PLUGIN_LOCAL_REPO_PATHS local plugin
  repositories, package.json/package.v2.json/package.v3.json metadata,
  plugins/plugins.v2/plugins.v3
  layouts, safe file exclusion, diff preview before publishing, incremental
  GitHub Contents API updates, and syncing local plugin changes back from GitHub.
  Includes asking whether to use an existing repository or create a new public
  repository when no target repository is available.
  Also use for Chinese requests mentioning 插件发布, 插件维护, 推送插件到 GitHub,
  从 GitHub 拉取插件, 同步本地插件仓库, 增量发布插件, 插件仓库维护.
allowed-tools: read_file write_file edit_file apply_patch execute_command moviepilot_api
allowed-api-operations: config.system.get config.system.update

Publish MoviePilot Plugin

Use this skill to publish and maintain a MoviePilot local plugin repository through GitHub while protecting local secrets and unrelated plugins.

Scope

  • Publish one local plugin under `plugins.v3/<plugin_id_lower>/`,

`plugins.v2/<plugin_id_lower>/` or `plugins/<plugin_id_lower>/` to a GitHub repository.

  • Merge only that plugin's entry into `package.v3.json`, `package.v2.json` or

`package.json`.

  • Preview local/remote differences before writing.
  • Pull remote plugin files back to the local plugin source.
  • Create the target GitHub repository when the user explicitly chooses automatic

creation; repositories are public by default unless the user asks for private.

  • Reuse MoviePilot settings `GITHUB_TOKEN`, `REPO_GITHUB_TOKEN`,

and `PLUGIN_LOCAL_REPO_PATHS` when available.

Ground Truth

  • Local plugin development rules: `skills/create-moviepilot-plugin/SKILL.md`.
  • Local plugin source discovery: `app/adapters/external/market.py`,

`PluginHelper.get_local_repo_paths()`.

  • GitHub token settings: `app/runtime/config.py`, especially `GITHUB_TOKEN` and

`REPO_GITHUB_TOKEN`.

  • Plugin package layouts:
  • V3: `package.v3.json` and `plugins.v3/<plugin_id_lower>/`
  • V2: `package.v2.json` and `plugins.v2/<plugin_id_lower>/`
  • Legacy: `package.json` and `plugins/<plugin_id_lower>/`

Pre-Flight

1. Identify the target plugin ID and local source repository.

  • If the user gives a path, use it.
  • Otherwise query `PLUGIN_LOCAL_REPO_PATHS`; if exactly one configured

repository contains the plugin, use it.

  • If several configured repositories contain the plugin, ask which one.

2. Identify the GitHub repository as `owner/repo`.

  • Use the user's explicit repository first.
  • If omitted, infer only when the local source has an obvious Git remote.
  • If neither is available, ask whether to use an existing repository or

automatically create a new public repository.

  • If the user chooses an existing repository, ask for `owner/repo`.
  • If the user chooses automatic creation, ask for the target `owner/repo`

and state that the repository will be public by default.

  • Do not create a private repository unless the user explicitly asks for it.

3. Select the package version layout.

  • Prefer `v3` when the plugin lives under `plugins.v3/<plugin_id_lower>/`

or the repository ships `package.v3.json` (current MoviePilot V3 hosts).

  • Prefer `v2` when `package.v2.json` or `plugins.v2/<plugin_id_lower>/`

exists.

  • Use legacy only when the local plugin is under `plugins/`.

4. Verify token availability.

  • Prefer `REPO_GITHUB_TOKEN` for the target repo when configured.
  • Fall back to `GITHUB_TOKEN`.
  • If no token is configured, ask the user to configure one before pushing.

Read-only preview may still run without a token for public repositories.

Script

Use `scripts/publish_plugin.py` for deterministic GitHub operations.

python skills/publish-moviepilot-plugin/scripts/publish_plugin.py preview \
  --repo owner/repo \
  --plugin-id MyPlugin \
  --local-repo /path/to/MoviePilot-Plugins \
  --package-version v2

python skills/publish-moviepilot-plugin/scripts/publish_plugin.py push \
  --repo owner/repo \
  --plugin-id MyPlugin \
  --local-repo /path/to/MoviePilot-Plugins \
  --package-version v2 \
  --message "Publish MyPlugin v1.0.0"

python skills/publish-moviepilot-plugin/scripts/publish_plugin.py pull \
  --repo owner/repo \
  --plugin-id MyPlugin \
  --local-repo /path/to/MoviePilot-Plugins \
  --package-version v2

# V3 插件仓库(package.v3.json + plugins.v3/)
python skills/publish-moviepilot-plugin/scripts/publish_plugin.py push \
  --repo owner/repo \
  --plugin-id MyPlugin \
  --local-repo /path/to/MoviePilot-Plugins \
  --package-version v3 \
  --message "Publish MyPlugin v1.0.0"

python skills/publish-moviepilot-plugin/scripts/publish_plugin.py create-repo \
  --repo owner/repo

Options:

  • `--package-version v3|v2|legacy|auto`: layout selector. `auto` resolves the

layout from where the plugin directory actually lives (`plugins.v3` → `plugins.v2` → `plugins`), then falls back to the manifest files, so repositories that still keep both manifests stay correct. Pass `v3` explicitly for current MoviePilot V3 plugin repositories.

  • `create-repo`: create the target GitHub repository. Default visibility is

public; use `--private` only when the user explicitly asked for private.

  • `preview`: compare local filtered files with remote files and print JSON.
  • `push`: upload changed files and merge the plugin package entry.
  • `pull`: write remote plugin files and package entry into local source.
  • `--create-repo-if-missing`: on push, create the target public repository when

GitHub reports that it does not exist.

  • `--delete-remote`: on push, delete remote plugin files that no longer exist

locally after exclusions.

  • `--force`: on pull, allow overwriting local files that differ from remote.
  • `--include PATTERN`: add files otherwise excluded b
Read more
@jxxghp
Ships withmoviepilot

基于 NAStool 部分代码重新设计,聚焦自动化核心需求,减少问题同时更易于扩展和维护。

Stars on GitHub

Momentum

stars in total
12.1k
Star history of jxxghp/moviepilot on GitHub, a chart by star-history.com

Other skills on moviepilot.

anysearch

anysearch

API key for higher rate limits. Anonymous access available with lower rate limits.

@jxxghp@jxxghpInstall Skill
browser-use

browser-use

Use this skill when the user asks the agent to open, browse, inspect, extract content from, click through, fill forms on,…

@jxxghp@jxxghpInstall Skill
command-dispatch

command-dispatch

Use this skill when the user sends a slash command or asks to run a MoviePilot system or plugin command in natural language.…

@jxxghp@jxxghpInstall Skill
create-moviepilot-plugin

create-moviepilot-plug…

Use this skill when the user asks to create, modify, debug, validate, or scaffold a MoviePilot local plugin. Covers version-aware…

@jxxghp@jxxghpInstall Skill
create-moviepilot-skill

create-moviepilot-skil…

Use this skill when the user asks to create, scaffold, update, or review a MoviePilot agent skill. This includes adding a new…

@jxxghp@jxxghpInstall Skill
database-operation

database-operation

Use this skill when you need to inspect, query, maintain, or carefully modify the MoviePilot database. This skill uses the…

@jxxghp@jxxghpInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about publish-moviepilot-plugin.

Which coding agents can use publish-moviepilot-plugin?
publish-moviepilot-plugin installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.