{"id":"4afe4127-0e74-47b1-90ca-7ca118b42b9e","entityType":"agent","slug":"clawhub-skills-akivasolutions-plex-ctl","name":"plex-ctl","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-akivasolutions-plex-ctl","canonicalPath":"/agent/clawhub-skills-akivasolutions-plex-ctl","generatedAt":"2026-10-09T10:32:16.848Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"plexctl — Plex Media Server Control 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 Pl","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:akivasolutions:plex-ctl","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/akivasolutions/plex-ctl","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/akivasolutions/plex-ctl","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"plexctl — Plex Media Server Control plexctl — Plex Media Server Control Standalone CLI for controlling Plex Media Server and clients via the Plex API When to Us"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"play","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":2,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"play","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:play|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:57:59.109Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:57:59.109Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:57:59.109Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:akivasolutions:plex-ctl","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T10:32:16.848Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-akivasolutions-plex-ctl/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"# plexctl — Plex Media Server Control\n\n> Standalone CLI for controlling Plex Media Server and clients via the Plex API\n\n## When to Use\n\n**Trigger phrases:**\n- \"play [title] on Plex\"\n- \"search Plex for [query]\"\n- \"what's playing on Plex\"\n- \"pause/resume Plex\"\n- \"show me what's on deck\"\n- \"what's new on Plex\"\n- \"list Plex clients\"\n- \"tell me about [movie/show]\"\n\n**Use this skill when:**\n- User wants to play specific content on Plex\n- User wants to search their Plex library\n- User wants to control playback (pause, resume, stop, next, prev)\n- User wants to see what's currently playing\n- User wants to browse recently added content\n- User wants to see continue watching (on-deck)\n- User wants detailed info about a title\n\n**Don't use this skill when:**\n- User wants Apple TV-specific navigation (use ClawTV instead)\n- User wants vision-based automation (use ClawTV instead)\n- User wants to manage Plex server settings (use Plex web UI)\n\n## Commands\n\n### Setup\n```bash\nplexctl setup\n```\nInteractive first-time setup:\n- Plex server URL (e.g., http://192.168.86.86:32400)\n- Plex token\n- Default client selection\n\n### Playback\n```bash\n# Play a movie (fuzzy search)\nplexctl play \"Fight Club\"\nplexctl play \"inception\"\n\n# Play specific TV episode\nplexctl play \"The Office\" -s 3 -e 10\nplexctl play \"Westworld\" --season 2 --episode 6\n\n# Play on specific client (overrides default)\nplexctl play \"Matrix\" -c \"Living Room TV\"\n```\n\n### Playback Control\n```bash\nplexctl pause              # Pause current playback\nplexctl resume             # Resume playback\nplexctl stop               # Stop playback\nplexctl next               # Skip to next track/episode\nplexctl prev               # Go to previous track/episode\n```\n\n### Search & Discovery\n```bash\n# Search across all libraries\nplexctl search \"matrix\"\nplexctl search \"breaking bad\"\n\n# Recently added content\nplexctl recent             # Last 10 items\nplexctl recent -n 20       # Last 20 items\n\n# Continue watching (on-deck)\nplexctl on-deck\n\n# What's currently playing\nplexctl now-playing\n\n# Detailed info about a title\nplexctl info \"Inception\"\nplexctl info \"The Office\"\n```\n\n### Library Management\n```bash\n# List all libraries\nplexctl libraries\n\n# List available clients\nplexctl clients\n```\n\n## Setup Instructions\n\n### 1. Install Dependencies\n```bash\npip install plexapi\n```\n\n### 2. Run Setup\n```bash\nplexctl setup\n```\n\nYou'll need:\n- **Plex server URL**: Usually `http://[local-ip]:32400`\n- **Plex token**: Get from Settings → Account → Authorized Devices\n  - Or from browser URL when logged into Plex Web\n  - Look for `X-Plex-Token` parameter\n- **Default client**: The tool will discover available clients\n\n### 3. Verify\n```bash\nplexctl clients            # Should list your devices\nplexctl libraries          # Should list your libraries\nplexctl search \"test\"      # Should return results\n```\n\n## Required Credentials\n\nConfig stored in `~/.plexctl/config.json`:\n\n```json\n{\n  \"plex_url\": \"http://192.168.86.86:32400\",\n  \"plex_token\": \"your-plex-token-here\",\n  \"default_client\": \"Apple TV\"\n}\n```\n\n### Getting Your Plex Token\n\n**Method 1: Settings Page**\n1. Log into Plex Web (app.plex.tv)\n2. Settings → Account → Authorized Devices\n3. Look for your token in the page source or URL\n\n**Method 2: Browser URL**\n1. Open any Plex Web page while logged in\n2. Check the URL for `X-Plex-Token=...`\n3. Copy the token value\n\n**Method 3: XML Direct Method**\n1. Navigate to: `http://[your-plex-ip]:32400/?X-Plex-Token=`\n2. View page source\n3. Look for `authToken` attribute\n\n## Privacy & Data\n\n- **Local only**: Connects directly to your Plex Media Server on your local network\n- **No cloud APIs**: All communication is local (unless using Plex cloud discovery as fallback)\n- **No external services**: No data sent to third parties\n- **No telemetry**: No usage tracking or analytics\n- **Config storage**: Only stores Plex URL, token, and default client locally\n\n**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.\n\n## Common Use Cases\n\n### 1. Quick Movie Playback\n```bash\nplexctl play \"Fight Club\"\n```\nSearches library, finds best match, starts playing on default client.\n\n### 2. Binge Watching TV Shows\n```bash\nplexctl play \"Breaking Bad\" -s 1 -e 1\n# ... watch episode ...\nplexctl next                    # Next episode\nplexctl next                    # Next episode\n```\n\n### 3. Continue Watching\n```bash\nplexctl on-deck                 # See what's in progress\nplexctl play \"Show Name\"        # Resume from where you left off\n```\n\n### 4. Browse New Content\n```bash\nplexctl recent                  # See what's new\nplexctl info \"Movie Title\"      # Get details\nplexctl play \"Movie Title\"      # Watch it\n```\n\n### 5. Multi-Client Control\n```bash\nplexctl clients                           # List all clients\nplexctl play \"Movie\" -c \"Bedroom TV\"      # Play on specific client\nplexctl pause -c \"Living Room TV\"         # Pause specific client\n```\n\n### 6. Library Search\n```bash\nplexctl search \"christopher nolan\"        # Find all Nolan films\nplexctl search \"breaking\"                 # Fuzzy search\nplexctl info \"Inception\"                  # Get details before watching\n```\n\n## Fuzzy Matching\n\nThe `play` and `info` commands use fuzzy search:\n- \"fight club\" → \"Fight Club (1999)\"\n- \"inception\" → \"Inception\"\n- \"office\" → \"The Office (U.S.)\"\n\nExact matches are prioritized over partial matches.\n\n## Error Handling\n\n**Client not found:**\n```\nError: Client 'Apple TV' not found\n\nAvailable clients:\n  Local:\n    • Living Room TV (Plex for Apple TV)\n    • Bedroom (Plex Web)\n```\n\n**No results:**\n```\nNo results found for: xyz123\n```\n\n**Connection failed:**\n```\nError connecting to Plex server: [Errno 61] Connection refused\nURL: http://192.168.86.86:32400\nCheck your plex_url and plex_token in config\n```\n\n## Integration with OpenClaw\n\nWhen a user asks to play something on Plex:\n\n1. **Parse the request** — extract title, season, episode\n2. **Choose command:**\n   - Movie: `plexctl play \"Title\"`\n   - TV show specific episode: `plexctl play \"Show\" -s N -e N`\n   - Search first: `plexctl search \"query\"` then `plexctl play \"Title\"`\n3. **Execute and report** — run command, share output with user\n\n**Example agent flow:**\n```\nUser: \"Play Fight Club on Plex\"\nAgent: [exec] plexctl play \"Fight Club\"\nOutput: Found: Fight Club (1999) (movie)\n        ✓ Playing on Apple TV\nAgent: \"Now playing Fight Club on your Apple TV\"\n```\n\n## Troubleshooting\n\n**Can't connect to Plex:**\n- Verify server is running\n- Check URL (should be http://IP:32400, not https)\n- Verify token is correct\n- Check firewall settings\n\n**Client not found:**\n- Make sure Plex app is open on the client device\n- Run `plexctl clients` to see available clients\n- Try cloud discovery (automatic fallback)\n- Restart Plex app on client device\n\n**Playback fails:**\n- Verify client can play the content type\n- Check client is still active (`plexctl clients`)\n- Try playing manually in Plex app first\n- Check Plex server logs\n\n**Search returns no results:**\n- Verify content exists in your library\n- Try broader search terms\n- Check library is scanned and up-to-date\n- Run `plexctl libraries` to verify library access\n\n## Performance\n\n- **Local GDM discovery**: ~100ms\n- **Cloud fallback discovery**: ~500-1000ms\n- **Search**: ~200-500ms depending on library size\n- **Playback start**: ~500ms\n- **Control commands**: ~100ms\n\nAll operations are direct Plex API calls — no vision, no screenshots, no AI inference needed.\n\n## Differences from ClawTV\n\n| Feature | plexctl | ClawTV |\n|---------|---------|--------|\n| Plex control | ✅ Direct API | ✅ API + Vision |\n| Apple TV remote | ❌ | ✅ |\n| Vision-based navigation | ❌ | ✅ |\n| Any streaming app | ❌ | ✅ |\n| Speed | ⚡ Instant | 🐢 Slower (screenshots) |\n| Dependencies | plexapi only | pyatv, Anthropic API, QuickTime |\n| Use case | Plex-only control | Universal TV automation |\n\n**When to use plexctl**: Fast, direct Plex control  \n**When to use ClawTV**: Complex navigation, non-Plex apps, vision-based automation\n","readmeExcerpt":"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 Pl","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"plexctl setup"},{"language":"bash","snippet":"# Play a movie (fuzzy search)\nplexctl play \"Fight Club\"\nplexctl play \"inception\"\n\n# Play specific TV episode\nplexctl play \"The Office\" -s 3 -e 10\nplexctl play \"Westworld\" --season 2 --episode 6\n\n# Play on specific client (overrides default)\nplexctl play \"Matrix\" -c \"Living Room TV\""},{"language":"bash","snippet":"plexctl pause              # Pause current playback\nplexctl resume             # Resume playback\nplexctl stop               # Stop playback\nplexctl next               # Skip to next track/episode\nplexctl prev               # Go to previous track/episode"},{"language":"bash","snippet":"# Search across all libraries\nplexctl search \"matrix\"\nplexctl search \"breaking bad\"\n\n# Recently added content\nplexctl recent             # Last 10 items\nplexctl recent -n 20       # Last 20 items\n\n# Continue watching (on-deck)\nplexctl on-deck\n\n# What's currently playing\nplexctl now-playing\n\n# Detailed info about a title\nplexctl info \"Inception\"\nplexctl info \"The Office\""},{"language":"bash","snippet":"# List all libraries\nplexctl libraries\n\n# List available clients\nplexctl clients"},{"language":"bash","snippet":"pip install plexapi"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"plexctl — Plex Media Server Control 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 Pl","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":371,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T10:32:16.848Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}