Install
openclaw skills install plex-ctlCommand-line tool for searching, playing, and controlling Plex Media Server and clients via the Plex API on your local network.
openclaw skills install plex-ctlStandalone CLI for controlling Plex Media Server and clients via the Plex API
Trigger phrases:
Use this skill when:
Don't use this skill when:
plexctl setup
Interactive first-time setup:
# 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:
http://[local-ip]:32400X-Plex-Token parameterplexctl 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
Method 2: Browser URL
X-Plex-Token=...Method 3: XML Direct Method
http://[your-plex-ip]:32400/?X-Plex-Token=authToken attributeNote: 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:
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:
plexctl play "Title"plexctl play "Show" -s N -e Nplexctl search "query" then plexctl play "Title"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:
Client not found:
plexctl clients to see available clientsPlayback fails:
plexctl clients)Search returns no results:
plexctl libraries to verify library accessAll operations are direct Plex API calls — no vision, no screenshots, no AI inference needed.
| Feature | plexctl | ClawTV |
|---|---|---|
| Plex control | ✅ Direct API | ✅ API + Vision |
| Apple TV remote | ❌ | ✅ |
| Vision-based navigation | ❌ | ✅ |
| Any streaming app | ❌ | ✅ |
| Speed | ⚡ Instant | 🐢 Slower (screenshots) |
| Dependencies | plexapi only | pyatv, Anthropic API, QuickTime |
| Use case | Plex-only control | Universal TV automation |
When to use plexctl: Fast, direct Plex control
When to use ClawTV: Complex navigation, non-Plex apps, vision-based automation