modules/programs/agents/shared/skills/jellyfin/SKILL.md
Inspect my self-hosted Jellyfin media server: server status, users, libraries, sessions, now-playing, recently-added, item search, library counts, and scheduled tasks. Use when the user asks about Jellyfin, what's playing, who's watching, what was just added, library size, or asks to run a Jellyfin task.
npx skillsauth add MichaelVessia/nixos-config jellyfinInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Inspect my self-hosted Jellyfin server: status, users, libraries, active sessions, what's currently playing, recently added items, item search, library counts, and scheduled tasks.
Credentials are exported into the shell by sops-nix (see
modules/programs/shell.nix):
JELLYFIN_URL — base URL (no trailing slash), e.g. http://192.168.1.21:8096JELLYFIN_API_KEY — API key from Dashboard → API KeysThe jellyfin CLI reports a JSON error envelope when they are missing.
Jellyfin inherits auth headers from Emby, so the header name is X-Emby-Token
(not X-Api-Key).
Use the installed jellyfin CLI for common operations. It always emits a single
JSON envelope with ok, command, result or error, and next_actions.
scripts/jellyfin.sh remains as a compatibility shim for older workflows.
jellyfin status # /System/Info sanity check
jellyfin users # all users with last activity
jellyfin libraries # virtual folders (libraries)
jellyfin sessions # every active session
jellyfin now-playing # sessions with NowPlayingItem
jellyfin recently-added --limit 20 # latest items
jellyfin item-search "<query>" --limit 25 # search Movies/Series/Episodes
jellyfin library-stats # /Items/Counts
jellyfin scheduled-tasks # task list with state
jellyfin run-task <taskId> --confirm-run-task # POST /ScheduledTasks/Running/<id>
For anything not covered, call the API directly with $JELLYFIN_URL and the
X-Emby-Token: $JELLYFIN_API_KEY header — see references/api-endpoints.md
and references/quick-reference.md.
jellyfin now-playing — current streams with user, device,
item, and play method.jellyfin sessions — full session list if no one is
actively playing (idle clients still show up).jellyfin recently-added --limit 10 — last 10 items added across
the libraries the first user can see.jellyfin library-stats — totals (Movies, Series,
Episodes, etc.).Always confirm with the user before:
jellyfin run-task <taskId> --confirm-run-task (kicks off a server task; some are I/O heavy)references/api-endpoints.md — endpoint reference with request/response
shapesreferences/quick-reference.md — copy-paste curl recipes for common opsreferences/troubleshooting.md — auth, connection, and common error fixesX-Emby-Token (Jellyfin forked Emby and kept the name)./Items endpoints are user-scoped — they require a userId in the
path or query. The CLI picks the first non-disabled user.JELLYFIN_URL is unreachable, surface that to
the user rather than guessing.development
Restate the last message in plain human language, with no jargon.
testing
Fan out a batch of work items into one PR each via isolated worktree agents, review every PR before it opens, then babysit all PRs through green CI and review feedback. Use when the user wants to fan out PRs, dispatch parallel PR agents over a list of items, or run a batch of independent changes as separate PRs.
development
Dispatch user-visible coding or research agents through Herdr with Codex-Desktop-like thread ergonomics. Use when the user asks to use Herdr to spawn, dispatch, fan out, inspect, follow up with, or monitor agent workspaces/threads.
development
Generate self-contained HTML visualizations with Plannotator theming. Use for implementation plans, PR explainers, architecture diagrams, data tables, slide decks, and any visual explanation of technical concepts. Plans and PR explainers follow Plannotator's prescriptive approach; all other visual content delegates to nicobailon/visual-explainer.