# Send PLEX-CTL to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "plex-ctl",
    "name": "PLEX-CTL",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/akivasolutions/plex-ctl",
    "canonicalUrl": "https://clawhub.ai/akivasolutions/plex-ctl",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/plex-ctl",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=plex-ctl",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "plexctl.py",
      "requirements.txt",
      "verify.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "plex-ctl",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-06T20:36:49.498Z",
      "expiresAt": "2026-05-13T20:36:49.498Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=plex-ctl",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=plex-ctl",
        "contentDisposition": "attachment; filename=\"plex-ctl-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "plex-ctl"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/plex-ctl"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/plex-ctl",
    "downloadUrl": "https://openagent3.xyz/downloads/plex-ctl",
    "agentUrl": "https://openagent3.xyz/skills/plex-ctl/agent",
    "manifestUrl": "https://openagent3.xyz/skills/plex-ctl/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/plex-ctl/agent.md"
  }
}
```
## Documentation

### plexctl — Plex Media Server Control

Standalone CLI for controlling Plex Media Server and clients via the Plex API

### When to Use

Trigger phrases:

"play [title] on Plex"
"search Plex for [query]"
"what's playing on Plex"
"pause/resume Plex"
"show me what's on deck"
"what's new on Plex"
"list Plex clients"
"tell me about [movie/show]"

Use this skill when:

User wants to play specific content on Plex
User wants to search their Plex library
User wants to control playback (pause, resume, stop, next, prev)
User wants to see what's currently playing
User wants to browse recently added content
User wants to see continue watching (on-deck)
User wants detailed info about a title

Don't use this skill when:

User wants Apple TV-specific navigation (use ClawTV instead)
User wants vision-based automation (use ClawTV instead)
User wants to manage Plex server settings (use Plex web UI)

### Setup

plexctl setup

Interactive first-time setup:

Plex server URL (e.g., http://192.168.86.86:32400)
Plex token
Default client selection

### Playback

# Play a movie (fuzzy search)
plexctl play "Fight Club"
plexctl play "inception"

# Play specific TV episode
plexctl play "The Office" -s 3 -e 10
plexctl play "Westworld" --season 2 --episode 6

# Play on specific client (overrides default)
plexctl play "Matrix" -c "Living Room TV"

### Playback Control

plexctl pause              # Pause current playback
plexctl resume             # Resume playback
plexctl stop               # Stop playback
plexctl next               # Skip to next track/episode
plexctl prev               # Go to previous track/episode

### Search & Discovery

# Search across all libraries
plexctl search "matrix"
plexctl search "breaking bad"

# Recently added content
plexctl recent             # Last 10 items
plexctl recent -n 20       # Last 20 items

# Continue watching (on-deck)
plexctl on-deck

# What's currently playing
plexctl now-playing

# Detailed info about a title
plexctl info "Inception"
plexctl info "The Office"

### Library Management

# List all libraries
plexctl libraries

# List available clients
plexctl clients

### 1. Install Dependencies

pip install plexapi

### 2. Run Setup

plexctl setup

You'll need:

Plex server URL: Usually http://[local-ip]:32400
Plex token: Get from Settings → Account → Authorized Devices

Or from browser URL when logged into Plex Web
Look for X-Plex-Token parameter


Default client: The tool will discover available clients

### 3. Verify

plexctl clients            # Should list your devices
plexctl libraries          # Should list your libraries
plexctl search "test"      # Should return results

### Required Credentials

Config stored in ~/.plexctl/config.json:

{
  "plex_url": "http://192.168.86.86:32400",
  "plex_token": "your-plex-token-here",
  "default_client": "Apple TV"
}

### Getting Your Plex Token

Method 1: Settings Page

Log into Plex Web (app.plex.tv)
Settings → Account → Authorized Devices
Look for your token in the page source or URL

Method 2: Browser URL

Open any Plex Web page while logged in
Check the URL for X-Plex-Token=...
Copy the token value

Method 3: XML Direct Method

Navigate to: http://[your-plex-ip]:32400/?X-Plex-Token=
View page source
Look for authToken attribute

### Privacy & Data

Local only: Connects directly to your Plex Media Server on your local network
No cloud APIs: All communication is local (unless using Plex cloud discovery as fallback)
No external services: No data sent to third parties
No telemetry: No usage tracking or analytics
Config storage: Only stores Plex URL, token, and default client locally

Note: Plex cloud discovery (MyPlex) is only used as a fallback when local GDM discovery fails. All media playback is direct to your local server.

### 1. Quick Movie Playback

plexctl play "Fight Club"

Searches library, finds best match, starts playing on default client.

### 2. Binge Watching TV Shows

plexctl play "Breaking Bad" -s 1 -e 1
# ... watch episode ...
plexctl next                    # Next episode
plexctl next                    # Next episode

### 3. Continue Watching

plexctl on-deck                 # See what's in progress
plexctl play "Show Name"        # Resume from where you left off

### 4. Browse New Content

plexctl recent                  # See what's new
plexctl info "Movie Title"      # Get details
plexctl play "Movie Title"      # Watch it

### 5. Multi-Client Control

plexctl clients                           # List all clients
plexctl play "Movie" -c "Bedroom TV"      # Play on specific client
plexctl pause -c "Living Room TV"         # Pause specific client

### 6. Library Search

plexctl search "christopher nolan"        # Find all Nolan films
plexctl search "breaking"                 # Fuzzy search
plexctl info "Inception"                  # Get details before watching

### Fuzzy Matching

The play and info commands use fuzzy search:

"fight club" → "Fight Club (1999)"
"inception" → "Inception"
"office" → "The Office (U.S.)"

Exact matches are prioritized over partial matches.

### Error Handling

Client not found:

Error: Client 'Apple TV' not found

Available clients:
  Local:
    • Living Room TV (Plex for Apple TV)
    • Bedroom (Plex Web)

No results:

No results found for: xyz123

Connection failed:

Error connecting to Plex server: [Errno 61] Connection refused
URL: http://192.168.86.86:32400
Check your plex_url and plex_token in config

### Integration with OpenClaw

When a user asks to play something on Plex:

Parse the request — extract title, season, episode
Choose command:

Movie: plexctl play "Title"
TV show specific episode: plexctl play "Show" -s N -e N
Search first: plexctl search "query" then plexctl play "Title"


Execute and report — run command, share output with user

Example agent flow:

User: "Play Fight Club on Plex"
Agent: [exec] plexctl play "Fight Club"
Output: Found: Fight Club (1999) (movie)
        ✓ Playing on Apple TV
Agent: "Now playing Fight Club on your Apple TV"

### Troubleshooting

Can't connect to Plex:

Verify server is running
Check URL (should be http://IP:32400, not https)
Verify token is correct
Check firewall settings

Client not found:

Make sure Plex app is open on the client device
Run plexctl clients to see available clients
Try cloud discovery (automatic fallback)
Restart Plex app on client device

Playback fails:

Verify client can play the content type
Check client is still active (plexctl clients)
Try playing manually in Plex app first
Check Plex server logs

Search returns no results:

Verify content exists in your library
Try broader search terms
Check library is scanned and up-to-date
Run plexctl libraries to verify library access

### Performance

Local GDM discovery: ~100ms
Cloud fallback discovery: ~500-1000ms
Search: ~200-500ms depending on library size
Playback start: ~500ms
Control commands: ~100ms

All operations are direct Plex API calls — no vision, no screenshots, no AI inference needed.

### Differences from ClawTV

FeatureplexctlClawTVPlex control✅ Direct API✅ API + VisionApple TV remote❌✅Vision-based navigation❌✅Any streaming app❌✅Speed⚡ Instant🐢 Slower (screenshots)Dependenciesplexapi onlypyatv, Anthropic API, QuickTimeUse casePlex-only controlUniversal TV automation

When to use plexctl: Fast, direct Plex control
When to use ClawTV: Complex navigation, non-Plex apps, vision-based automation
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: akivasolutions
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-06T20:36:49.498Z
- Expires at: 2026-05-13T20:36:49.498Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/plex-ctl)
- [Send to Agent page](https://openagent3.xyz/skills/plex-ctl/agent)
- [JSON manifest](https://openagent3.xyz/skills/plex-ctl/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/plex-ctl/agent.md)
- [Download page](https://openagent3.xyz/downloads/plex-ctl)