---
name: moviepilot-update
version: 3
description: Use this skill when you need to check MoviePilot versions, restart MoviePilot, or trigger a MoviePilot upgrade. Prefer the built-in system APIs instead of docker commands or manual file replacement. If auto-update on restart is already enabled, just restart. If it is disabled, call the upgrade API so MoviePilot performs a one-shot upgrade and restart.
---

# MoviePilot Update

> All script paths are relative to this skill file.

Use this skill for MoviePilot restart and upgrade operations.

## Setup

This skill reuses the `moviepilot-api` client. When running inside the MoviePilot project, the API client imports `app.core.config.settings` and reads the local host, port, and API token directly. Do not ask the user for `API_TOKEN`.

## Preferred Commands

### Check versions

```bash
python scripts/mp-update.py versions
```

This calls `GET /api/v1/system/versions`.

### Restart MoviePilot

```bash
python scripts/mp-update.py restart
```

This calls `GET /api/v1/system/restart`.

### Upgrade and restart MoviePilot

Release mode:

```bash
python scripts/mp-update.py upgrade
```

Dev mode:

```bash
python scripts/mp-update.py upgrade dev
```

This calls `POST /api/v1/system/upgrade`.

Behavior:

- If `MOVIEPILOT_AUTO_UPDATE` is already enabled (`release` or `dev`), MoviePilot only triggers a restart and lets the normal startup flow perform the upgrade.
- If `MOVIEPILOT_AUTO_UPDATE` is disabled, MoviePilot writes a one-shot upgrade flag, restarts itself, performs that single upgrade during startup, and then continues running without changing the persisted auto-update setting.

## Direct API Examples

```bash
python ../moviepilot-api/scripts/mp-api.py GET /api/v1/system/restart
python ../moviepilot-api/scripts/mp-api.py POST /api/v1/system/upgrade --json '"release"'
python ../moviepilot-api/scripts/mp-api.py POST /api/v1/system/upgrade --json '"dev"'
```

## Notes

- These operations require administrator authentication.
- Restart or upgrade will interrupt the current agent session. Do not rely on post-restart follow-up steps in the same run.
- Prefer the API flow above. Only fall back to manual container commands when the API is unavailable.
