From arrs
This skill should be used when the user wants to interact with their Plex Media Server. Triggers include: "check Plex", "search Plex", "what's on Plex", "what's playing on Plex", "who's watching", "Plex sessions", "active streams", "Plex library", "browse movies", "browse TV shows", "recently added", "on deck", "continue watching", "Plex status", or any mention of Plex Media Server.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arrs:plexThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Control and query Plex Media Server using the Plex API. Browse libraries, search media, and monitor active sessions.
Control and query Plex Media Server using the Plex API. Browse libraries, search media, and monitor active sessions.
This skill provides read-only access to your Plex Media Server:
All operations are GET-only and safe for monitoring/browsing.
Credentials are configured in the arrs plugin settings (userConfig). A SessionStart hook writes them to ~/.config/lab-arrs/config.env, which the scripts load automatically — no manual file editing. Variables used:
# Plex Media Server
PLEX_URL="http://192.168.1.100:32400"
PLEX_TOKEN="<your_plex_token>"
PLEX_URL: Your Plex server URL with port (default: 32400)PLEX_TOKEN: Your Plex authentication tokenGetting your Plex token:
X-Plex-Token in the URLAll commands output JSON. Use jq for formatting or filtering.
The plex-api.sh helper script simplifies API access. Located at: scripts/plex-api.sh
# Using helper script
./scripts/plex-api.sh info
# Or raw curl
curl -s "$PLEX_URL/" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
List all library sections:
# Using helper script
./scripts/plex-api.sh libraries
# Or raw curl
curl -s "$PLEX_URL/library/sections" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script (replace 1 with your section key)
./scripts/plex-api.sh library 1
./scripts/plex-api.sh library 1 --limit 50 --offset 100
# Or raw curl
curl -s "$PLEX_URL/library/sections/1/all" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script
./scripts/plex-api.sh search "Inception"
./scripts/plex-api.sh search "Avengers" --limit 10
# Or raw curl
curl -s "$PLEX_URL/search?query=SEARCH_TERM" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script (default: 20 items)
./scripts/plex-api.sh recent
./scripts/plex-api.sh recent --limit 10
# Or raw curl
curl -s "$PLEX_URL/library/recentlyAdded" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script (default: 10 items)
./scripts/plex-api.sh ondeck
./scripts/plex-api.sh ondeck --limit 5
# Or raw curl
curl -s "$PLEX_URL/library/onDeck" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script
./scripts/plex-api.sh sessions
# Or raw curl
curl -s "$PLEX_URL/status/sessions" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Using helper script
./scripts/plex-api.sh clients
# Or raw curl
curl -s "$PLEX_URL/clients" -H "X-Plex-Token: $PLEX_TOKEN" -H "Accept: application/json"
# Server identity
./scripts/plex-api.sh identity
# Get metadata for specific item (by rating key)
./scripts/plex-api.sh metadata 12345
# Get children of item (e.g., seasons of a TV show)
./scripts/plex-api.sh children 12345
# List playlists
./scripts/plex-api.sh playlists
# Refresh library section (scan for new media)
./scripts/plex-api.sh refresh 1
# View all commands
./scripts/plex-api.sh --help
When the user asks about Plex:
Common section types (keys vary by server):
Always list sections first to get the correct section keys for your server.
-H "Accept: application/json" for JSON output/library/metadata/12345jq to filter and format JSON responsesTo query multiple Plex servers:
# Server 1
PLEX_URL="http://server1:32400" PLEX_TOKEN="token1" curl ...
# Server 2
PLEX_URL="http://server2:32400" PLEX_TOKEN="token2" curl ...
For detailed local reference, see:
npx claudepluginhub jmagar/dendrite --plugin arrsCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.