Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Command-line tool for searching, playing, and controlling Plex Media Server and clients via the Plex API on your local network.
Command-line tool for searching, playing, and controlling Plex Media Server and clients via the Plex API on your local network.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Standalone CLI for controlling Plex Media Server and clients via the Plex API
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)
plexctl setup Interactive first-time setup: Plex server URL (e.g., http://192.168.86.86:32400) Plex token Default client selection
# 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"
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 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"
# List all libraries plexctl libraries # List available clients plexctl clients
pip install plexapi
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
plexctl clients # Should list your devices plexctl libraries # Should list your libraries plexctl search "test" # Should return results
Config stored in ~/.plexctl/config.json: { "plex_url": "http://192.168.86.86:32400", "plex_token": "your-plex-token-here", "default_client": "Apple TV" }
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
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.
plexctl play "Fight Club" Searches library, finds best match, starts playing on default client.
plexctl play "Breaking Bad" -s 1 -e 1 # ... watch episode ... plexctl next # Next episode plexctl next # Next episode
plexctl on-deck # See what's in progress plexctl play "Show Name" # Resume from where you left off
plexctl recent # See what's new plexctl info "Movie Title" # Get details plexctl play "Movie Title" # Watch it
plexctl clients # List all clients plexctl play "Movie" -c "Bedroom TV" # Play on specific client plexctl pause -c "Living Room TV" # Pause specific client
plexctl search "christopher nolan" # Find all Nolan films plexctl search "breaking" # Fuzzy search plexctl info "Inception" # Get details before watching
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.
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
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"
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
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.
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
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.