jf
Manage your Jellyfin server from the command line. Available command areas include authentication, items, library management, server administration, users, playlists, and more.
Reference context
Documented commands
Leaf commands
Available commands
Browse music artists or album artists
Sign in, inspect identity, and manage API keys
Create and restore backups [[admin]]
Create collections and add or remove items
Inspect or remove registered devices [[admin]]
Browse library genres
Browse, search, refresh, and update library items
Scan libraries and manage virtual folders [[admin]]
Channels, guide, recordings, timers, tuners, listings
Browse repositories and install packages [[admin]]
Browse actors, directors, and other people
Create playlists and manage items or shares
Configure, enable, disable, or uninstall plugins [[admin]]
Low-level endpoint access
Health, logs, config, restart, and shutdown
Inspect sessions and remote-control clients
Browse library studios
Manage SyncPlay groups
View and run scheduled tasks [[admin]]
Manage Jellyfin users [[admin]]
artists
Browse music artists or album artists
Subcommands
list
List artists or album artists
Options
--album-artistsList album artists instead of track artists
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--parentRestrict results to one parent item or folder
--profileProfile name on the resolved host
--searchFilter artists by name
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
auth
Sign in, inspect identity, and manage API keys
Subcommands
Manage configured hosts
Manage API keys [[admin]]
Sign in with username and password
Remove stored credentials and end the current session
Manage saved server profiles
Quick Connect flows
List public users shown on the login screen
Show the authenticated user and current server
host
Manage configured hosts
alias
Manage host aliases
add
Add an alias to a host
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
HOSTNAME | Yes | 1 | — | — | Host to add the alias to |
ALIAS | Yes | 1 | — | — | Short alias for the host |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List aliases
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
HOSTNAME | No | 1 | — | — | Show aliases for a specific host (default: all hosts) |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remove
Remove an alias from a host
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
HOSTNAME | Yes | 1 | — | — | Host to remove the alias from |
ALIAS | Yes | 1 | — | — | Alias to remove |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
delete
Remove a host and all its profiles
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
HOSTNAME | Yes | 1 | — | — | Hostname to remove |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--force-fSkip deletion confirmation
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List all configured hosts
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
rename
Rename a host key
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
OLD | Yes | 1 | — | — | Current hostname key |
NEW | Yes | 1 | — | — | New hostname key |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
use
Set the default host
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
HOSTNAME | Yes | 1 | — | — | Hostname to set as default |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
keys
Manage API keys [[admin]]
create
Create an API key
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--appName of the application requesting the key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
delete
Revoke an API key
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--keyThe access token (API key) to revoke
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List API keys
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
login
Sign in with username and password
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--password-pPassword (prompted if omitted)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--username-uJellyfin username
--verboseShow request details
--yesSkip confirmation prompts
logout
Remove stored credentials and end the current session
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
profiles
Manage saved server profiles
delete
Delete a profile
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Profile name to delete |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List all hosts and profiles
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
rename
Rename a profile
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
OLD | Yes | 1 | — | — | Current profile name |
NEW | Yes | 1 | — | — | New profile name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
show
Show the resolved profile for the current context
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
use
Set the default profile for a host
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Profile name to set as default |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
quick
Quick Connect flows
approve
Approve a pending Quick Connect code
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--codeThe Quick Connect code to approve
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
login
Start a Quick Connect login flow
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
status
Check whether Quick Connect is enabled
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
users
List public users shown on the login screen
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
whoami
Show the authenticated user and current server
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
backups
Create and restore backups [[admin]]
create
Create a new backup
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--databaseInclude database in the backup
--jsonEmit JSON instead of table output
--limitLimit result count
--metadataInclude metadata in the backup
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--subtitlesInclude subtitles in the backup
--tokenAccess token
--trickplayInclude trickplay data in the backup
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
inspect
Inspect a backup archive manifest
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
BACKUP_PATH | Yes | 1 | — | — | Backup archive path |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List backup archives
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
restore
Restore an archive and restart the server
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ARCHIVE_FILE | Yes | 1 | — | — | The backup archive file name to restore from |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
collections
Create collections and add or remove items
add
Add items to a collection
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
COLLECTION_ID | Yes | 1 | — | — | The collection ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--itemsComma-separated item IDs to add
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
create
Create a collection
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--itemsComma-separated item IDs to add to the collection
--jsonEmit JSON instead of table output
--limitLimit result count
--nameName for the new collection
--parent-idCreate the collection within a specific folder
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remove
Remove items from a collection
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
COLLECTION_ID | Yes | 1 | — | — | The collection ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--itemsComma-separated item IDs to remove
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
devices
Inspect or remove registered devices [[admin]]
delete
Remove a device
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--idDevice ID to delete
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Show one device
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--idDevice ID
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List registered devices
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
options
Read or update per-device options [[admin]]
Subcommands
get
Get device options
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
DEVICE_ID | Yes | 1 | — | — | Device ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
set
Update device options
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
DEVICE_ID | Yes | 1 | — | — | Device ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--dataInline JSON with DeviceOptionsDto
--fileJSON file with DeviceOptionsDto
--jsonEmit JSON instead of table output
--limitLimit result count
--nameCustom display name
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
genres
Browse library genres
Subcommands
list
List known genres
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--parentRestrict results to one parent item or folder
--profileProfile name on the resolved host
--searchFilter genres by name
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
items
Browse, search, refresh, and update library items
Subcommands
Show parent hierarchy for an item
Show library item counts
Show date fields used for latest-items diagnostics
Delete an item from the library and filesystem
Download original media or file
Explain why an item is or is not visible in latest
Mark or unmark favorites
Show one item by id
Manage item artwork
Inspect Jellyfin's latest-items shelf
Query items with filters
Read, search, download, upload, or delete lyrics
Inspect local NFO sidecar metadata
Inspect playback media sources and streams
Refresh metadata, images, or trickplay
Browse or download remote item artwork
Search external metadata providers (TMDb, AniDB, IMDB, ...)
Show continue-watching items
Search names and titles
Find similar items
Search, download, upload, or delete subtitles
Show suggested items for the current user
List theme songs and videos for an item
Show a recursive item tree for diagnostics
Update item metadata
ancestors
Show parent hierarchy for an item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
counts
Show library item counts
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--favoritesCount only favorite items
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
dates
Show date fields used for latest-items diagnostics
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--recursiveInclude seasons and episodes beneath the item
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
delete
Delete an item from the library and filesystem
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
download
Download original media or file
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID to download |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--output-oOutput file path (defaults to item name in current directory)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
explain-latest
Explain why an item is or is not visible in latest
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--parentOverride the parent library or folder used for latest ranking
--probe-limitHow many latest items to inspect when computing rank
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--visible-limitVisible shelf size to compare against
--yesSkip confirmation prompts
favorite
Mark or unmark favorites
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ACTION | Yes | 1 | — | — | Action: 'set' to favorite, 'unset' to unfavorite |
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Show one item by id
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
images
Manage item artwork
delete
Delete an image
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
IMAGE_TYPE | Yes | 1 | — | — | Image type (e.g. Primary, Backdrop, Logo, Thumb, Banner, Art, Disc) |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--indexImage index (defaults to 0)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List known images for an item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
set
Upload an image for an item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
IMAGE_TYPE | Yes | 1 | — | — | Image type (e.g. Primary, Backdrop, Logo, Thumb, Banner, Art, Disc) |
FILE | Yes | 1 | — | — | Path to image file |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
latest
Inspect Jellyfin's latest-items shelf
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--parentParent folder ID to scope the latest shelf
--playedShow only played items
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeInclude only item types, comma-separated (e.g. Movie,Series,Episode)
--ungroupedDisable Jellyfin's parent-container grouping
--unplayedShow only unplayed items
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
Query items with filters
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--descSort descending instead of ascending
--fieldExtra fields to return, comma-separated (e.g. Overview,Path,MediaStreams)
--jsonEmit JSON instead of table output
--limitLimit result count
--media-typeFilter by media type (e.g. Video, Audio, Photo)
--parentParent folder ID to scope the query
--profileProfile name on the resolved host
--recursiveSearch recursively within the parent folder
--searchFilter by search term
--serverJellyfin server URL or hostname
--sortSort field (e.g. SortName, DateCreated, PremiereDate, ProductionYear, Random)
--startStart index for paged queries
--tokenAccess token
--typeInclude only item types, comma-separated (e.g. Movie,Series,Episode)
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
lyrics
Read, search, download, upload, or delete lyrics
delete
Delete external lyrics
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Audio item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
download
Download remote lyrics
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Audio item ID |
LYRIC_ID | Yes | 1 | — | — | Remote lyric ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Get lyrics for an audio item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Audio item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
search
Search remote lyric providers
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Audio item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
upload
Upload an external lyric file
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Audio item ID |
FILE | Yes | 1 | — | — | Lyric file path |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
nfo
Inspect local NFO sidecar metadata
inspect
Inspect derived local NFO metadata for an item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
playback-info
Inspect playback media sources and streams
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
refresh
Refresh metadata, images, or trickplay
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID to refresh |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--modeRefresh mode: default, full, or validation
--profileProfile name on the resolved host
--regenerate-trickplayRegenerate trickplay images during full refresh
--replace-imagesReplace all images during full refresh
--replace-metadataReplace all metadata during full refresh
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remote-images
Browse or download remote item artwork
download
Download a remote image
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeImage type to download
--urlRemote image URL to download
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List available remote images
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--all-languagesInclude images from all languages
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--providerRemote provider name
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeImage type filter
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
providers
List remote image providers
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remote-search
Search external metadata providers (TMDb, AniDB, IMDB, ...)
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TERM | Yes | 1 | — | — | Search term |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--providerSearch a specific provider (e.g. TheMovieDb, AniDB, "The Open Movie Database")
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeMedia type to search (Movie, Series, BoxSet, Person, MusicArtist, MusicAlbum, MusicVideo, Book, Trailer)
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yearFilter by production year
--yesSkip confirmation prompts
resume
Show continue-watching items
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
search
Search names and titles
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TERM | Yes | 1 | — | — | Search term |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--media-typeFilter by media type (e.g. Video, Audio)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeInclude only item types, comma-separated (e.g. Movie,Series)
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
similar
Find similar items
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--exclude-artist-idArtist IDs to exclude, can be repeated
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
subtitles
Search, download, upload, or delete subtitles
delete
Delete an external subtitle file
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
INDEX | Yes | 1 | — | — | Subtitle index |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
download
Download a remote subtitle
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
SUBTITLE_ID | Yes | 1 | — | — | Remote subtitle ID or language-id path segment |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
search
Search remote subtitle providers
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
LANGUAGE | Yes | 1 | — | — | Subtitle language or language-id path segment |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--perfect-matchOnly return perfect matches
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
upload
Upload an external subtitle file
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ITEM_ID | Yes | 1 | — | — | Item ID |
FILE | Yes | 1 | — | — | Subtitle file path |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--forcedMark the subtitle as forced
--formatSubtitle format, defaults to the file extension
--hearing-impairedMark the subtitle as hearing impaired
--jsonEmit JSON instead of table output
--languageSubtitle language code
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
suggestions
Show suggested items for the current user
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--media-typeMedia type filter, comma-separated
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeItem type filter, comma-separated
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
themes
List theme songs and videos for an item
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--inherit-from-parentInclude theme media inherited from parent items
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
tree
Show a recursive item tree for diagnostics
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Root item ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--datesInclude date columns useful for latest-items diagnostics
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
update
Update item metadata
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Item ID to update |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--community-ratingCommunity rating (0-10)
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--nameNew name for the item
--overviewNew overview / description
--profileProfile name on the resolved host
--ratingOfficial rating (e.g. PG-13, TV-MA)
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yearProduction year
--yesSkip confirmation prompts
library
Scan libraries and manage virtual folders [[admin]]
folders
List, create, rename, or remove virtual folders [[admin]]
add
Create a virtual folder
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Virtual folder name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--options-dataInline JSON with LibraryOptions
--options-fileJSON file with LibraryOptions
--pathMedia path, repeat for multiple paths
--profileProfile name on the resolved host
--refreshRefresh the library after creating the folder
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typeCollection type: movies, tvshows, music, musicvideos, homevideos, boxsets, books, mixed
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List virtual folders
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remove
Remove a virtual folder
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Virtual folder name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--refreshRefresh the library after removing the folder
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
rename
Rename a virtual folder
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Existing virtual folder name |
NEW_NAME | Yes | 1 | — | — | New virtual folder name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--refreshRefresh the library after renaming
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
media
Show media folders
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
options
Show or update library options for one virtual folder
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
FOLDER | Yes | 1 | — | — | Virtual folder name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--dataInline JSON with LibraryOptions
--fileJSON file with LibraryOptions
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
paths
Manage media paths inside a virtual folder [[admin]]
add
Add a media path to a library
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
FOLDER | Yes | 1 | — | — | Virtual folder name |
PATH | Yes | 1 | — | — | Media path to add |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--refreshRefresh the library after adding the path
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remove
Remove a media path from a library
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
FOLDER | Yes | 1 | — | — | Virtual folder name |
PATH | Yes | 1 | — | — | Media path to remove |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--refreshRefresh the library after removing the path
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
update
Update a media path entry
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
FOLDER | Yes | 1 | — | — | Virtual folder name |
PATH | Yes | 1 | — | — | New media path value |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
scan
Start a full library refresh
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
livetv
Channels, guide, recordings, timers, tuners, listings
channels
List channels
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
guide
Show program guide
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
info
Show Live TV info
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
recordings
List recordings
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
timers
List timers
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
packages
Browse repositories and install packages [[admin]]
cancel
Cancel an in-progress package installation
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ID | Yes | 1 | — | — | Installation ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Show details for one package
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Package name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--assembly-guidAssembly GUID to disambiguate package lookups
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
install
Install a package
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Package name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--assembly-guidAssembly GUID to disambiguate package lookups
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--repository-urlInstall from a specific repository URL
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--versionInstall a specific version instead of the latest
--yesSkip confirmation prompts
list
List packages available from configured repositories
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
repos
Inspect or replace configured package repositories [[admin]]
list
List configured package repositories
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
set
Replace the configured package repository list
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--dataInline JSON array for the full repository list
--fileRead the full repository list from a JSON file
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
persons
Browse actors, directors, and other people
list
List people with optional person-type filters
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--appears-inRestrict results to persons connected to one item
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--searchFilter persons by name
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--typePerson type filter, comma-separated
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
playlists
Create playlists and manage items or shares
create
Create a new playlist
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--itemsComma-separated item IDs to add to the playlist
--jsonEmit JSON instead of table output
--limitLimit result count
--nameName for the new playlist
--profileProfile name on the resolved host
--publicMake the playlist publicly visible
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Show one playlist
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
items
Manage playlist items
add
Add items to a playlist
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--itemsComma-separated item IDs to add
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List playlist items
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
move
Move an item within a playlist
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--item-idThe item ID to move
--jsonEmit JSON instead of table output
--limitLimit result count
--new-indexThe new zero-based index for the item
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
remove
Remove items from a playlist
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--entry-idsComma-separated playlist entry IDs to remove
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
update
Update playlist metadata
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLAYLIST_ID | Yes | 1 | — | — | The playlist ID |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--nameNew name for the playlist
--profileProfile name on the resolved host
--publicMake the playlist publicly visible
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
plugins
Configure, enable, disable, or uninstall plugins [[admin]]
config
Read or update plugin configuration [[admin]]
get
Read plugin configuration
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLUGIN_ID | Yes | 1 | — | — | Plugin ID (GUID) |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
set
Update plugin configuration
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PLUGIN_ID | Yes | 1 | — | — | Plugin ID (GUID) |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--dataInline plugin configuration JSON
--fileRead plugin configuration JSON from a file
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
disable
Disable a plugin
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--plugin-idPlugin ID (GUID)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--versionPlugin version
--yesSkip confirmation prompts
enable
Enable a plugin
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--plugin-idPlugin ID (GUID)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--versionPlugin version
--yesSkip confirmation prompts
list
List installed plugins
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
uninstall
Uninstall a plugin
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--plugin-idPlugin ID (GUID)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--versionPlugin version
--yesSkip confirmation prompts
raw
Low-level endpoint access
delete
DELETE an endpoint
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | API path (e.g. /System/Info) |
Options
--acceptAccept header value
--allAuto-page until all results are fetched
--api-keyAPI key
--bodyRequest body (JSON string)
--configPath to config file (overrides default location)
--downloadDownload response to a file instead of printing
--headerExtra headers (Key: Value), can be repeated
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--queryQuery string parameters (key=value), can be repeated
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
GET an endpoint
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | API path (e.g. /System/Info) |
Options
--acceptAccept header value
--allAuto-page until all results are fetched
--api-keyAPI key
--bodyRequest body (JSON string)
--configPath to config file (overrides default location)
--downloadDownload response to a file instead of printing
--headerExtra headers (Key: Value), can be repeated
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--queryQuery string parameters (key=value), can be repeated
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
post
POST to an endpoint
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | API path (e.g. /System/Info) |
Options
--acceptAccept header value
--allAuto-page until all results are fetched
--api-keyAPI key
--bodyRequest body (JSON string)
--configPath to config file (overrides default location)
--downloadDownload response to a file instead of printing
--headerExtra headers (Key: Value), can be repeated
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--queryQuery string parameters (key=value), can be repeated
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
put
PUT to an endpoint
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | API path (e.g. /System/Info) |
Options
--acceptAccept header value
--allAuto-page until all results are fetched
--api-keyAPI key
--bodyRequest body (JSON string)
--configPath to config file (overrides default location)
--downloadDownload response to a file instead of printing
--headerExtra headers (Key: Value), can be repeated
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--queryQuery string parameters (key=value), can be repeated
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
server
Health, logs, config, restart, and shutdown
Subcommands
Show activity log entries [[admin]]
Measure download throughput between the CLI and server
Inspect and update server configuration [[admin]]
Show request endpoint information [[admin]]
Inspect the server filesystem [[admin]]
Show public or authenticated server info
List reference localization data
Read individual server logs [[admin]]
List server logs [[admin]]
Ping the server
Restart Jellyfin [[admin]]
Shut down Jellyfin [[admin]]
Show server storage information [[admin]]
activity
Show activity log entries [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
bitrate-test
Measure download throughput between the CLI and server
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--sizePayload size to request from the server
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
config
Inspect and update server configuration [[admin]]
branding
View or update branding configuration
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--custom-cssOverride the custom CSS
--dataInline branding JSON
--fileRead branding JSON from a file
--jsonEmit JSON instead of table output
--limitLimit result count
--login-disclaimerOverride the login disclaimer
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--splashscreen-disabledDisable the splash screen
--splashscreen-enabledEnable the splash screen
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Get full config or one named config section
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
KEY | No | 1 | — | — | Optional named configuration key |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
metadata
Show or update metadata configuration
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ACTION | No | 1 | — | — | Optional action. Use 'set' to update the metadata config. |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--use-file-creation-time-for-date-addedSet Jellyfin's UseFileCreationTimeForDateAdded metadata option
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
set
Update a named configuration section
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
KEY | Yes | 1 | — | — | Named configuration key |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--dataInline JSON payload
--fileRead replacement JSON from a file
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
endpoint
Show request endpoint information [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
environment
Inspect the server filesystem [[admin]]
drives
List available drives
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
ls
List directory contents
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | Directory path on the server |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--directoriesInclude directories
--filesInclude files
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
validate
Validate that a path exists and is accessible
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
PATH | Yes | 1 | — | — | Path on the server |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--fileValidate the path as a file instead of a directory
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--writableRequire the path to be writable
--yesSkip confirmation prompts
info
Show public or authenticated server info
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
localization
List reference localization data
countries
List known countries
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
cultures
List supported cultures
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
ratings
List known parental ratings
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
log
Read individual server logs [[admin]]
Subcommands
get
Read one server log file
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Log file name |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--outWrite log contents to a file instead of stdout
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
logs
List server logs [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
ping
Ping the server
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
restart
Restart Jellyfin [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
shutdown
Shut down Jellyfin [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
storage
Show server storage information [[admin]]
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
sessions
Inspect sessions and remote-control clients
command
Send a general command payload
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
SESSION_ID | Yes | 1 | — | — | Target session id |
COMMAND | Yes | 1 | — | — | General command name (e.g. MoveUp, GoHome, ToggleMute, SetVolume, DisplayMessage) |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List active sessions
Options
--active-withinOnly sessions active in the last N seconds
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--controllable-byFilter by sessions controllable by this user id
--device-idFilter by device id
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
message
Display a message on a client
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
SESSION_ID | Yes | 1 | — | — | Target session id |
TEXT | Yes | 1 | — | — | Message text to display |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--headerOptional message header/title
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--timeoutDisplay timeout in milliseconds
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
play
Start playback on a session
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
SESSION_ID | Yes | 1 | — | — | Target session id |
ITEM_IDS | Yes | 1 | — | — | Comma-separated item ids to play |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--audio-streamAudio stream index
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--play-commandPlay command: PlayNow (default), PlayNext, PlayLast, PlayInstantMix, PlayShuffle
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--start-positionStarting position in ticks
--subtitle-streamSubtitle stream index
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
state
Send pause/resume/stop/seek commands
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
ACTION | Yes | 1 | — | — | Playstate action: pause, resume, stop, next, prev, seek, rewind, ff, toggle |
SESSION_ID | Yes | 1 | — | — | Target session id |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--positionSeek position in ticks (required for seek)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
studios
Browse library studios
Subcommands
list
List known studios
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--parentRestrict results to one parent item or folder
--profileProfile name on the resolved host
--searchFilter studios by name
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
syncplay
Manage SyncPlay groups
create
Create a new group
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--nameName for the new SyncPlay group
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
join
Join a group
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--group-idGroup ID (GUID) to join
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
leave
Leave current group
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List SyncPlay groups
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
tasks
View and run scheduled tasks [[admin]]
get
Show one task
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TASK_ID | Yes | 1 | — | — | The ID of the scheduled task |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List tasks
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
start
Start a task
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TASK_ID | Yes | 1 | — | — | The ID, key, or name of the scheduled task to start |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
stop
Stop a running task
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TASK_ID | Yes | 1 | — | — | The ID, key, or name of the running task to stop |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
triggers
Show task triggers or replace them with 'tasks triggers set <TASK_ID>'
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
TASK_ID_OR_ACTION | Yes | 1 | — | — | Task ID or key, or 'set' to update triggers |
TASK_ID | No | 1 | — | — | Task ID when using the 'set' action |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--clearReplace all triggers with an empty list
--configPath to config file (overrides default location)
--dailyAdd a daily trigger, repeatable
--dataInline JSON trigger list
--fileLoad a trigger list from JSON
--intervalAdd an interval trigger, repeatable
--jsonEmit JSON instead of table output
--limitLimit result count
--max-runtimeApply one max runtime to all flag-built triggers
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--startupAdd a startup trigger
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--weeklyAdd a weekly trigger, repeatable
--yesSkip confirmation prompts
users
Manage Jellyfin users [[admin]]
create
Create a user
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
NAME | Yes | 1 | — | — | Username for the new user |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--password-pPassword for the new user (optional)
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
delete
Delete a user
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
USER_ID | Yes | 1 | — | — | The user ID to delete |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
get
Show one user
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
USER_ID | Yes | 1 | — | — | The user ID to retrieve |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
list
List users
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
password
Change a user's password
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
USER_ID | Yes | 1 | — | — | The user ID whose password to change |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--current-passwordCurrent password (required when changing your own password)
--jsonEmit JSON instead of table output
--limitLimit result count
--new-passwordNew password (prompted if omitted)
--profileProfile name on the resolved host
--resetReset the password instead of setting a new one
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
policy
Update a user's policy
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
USER_ID | Yes | 1 | — | — | The user ID whose policy to update |
Options
--adminSet administrator status (true/false)
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--disabledSet disabled status (true/false)
--hiddenSet hidden status (true/false)
--jsonEmit JSON instead of table output
--limitLimit result count
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts
update
Update a user
Arguments
| Name | Required | Arity | Accepted values | Group | Description |
|---|---|---|---|---|---|
USER_ID | Yes | 1 | — | — | The user ID to update |
Options
--allAuto-page until all results are fetched
--api-keyAPI key
--configPath to config file (overrides default location)
--jsonEmit JSON instead of table output
--limitLimit result count
--name-nNew display name for the user
--profileProfile name on the resolved host
--serverJellyfin server URL or hostname
--startStart index for paged queries
--tokenAccess token
--userUser context for user-scoped commands (id or 'me')
--verboseShow request details
--yesSkip confirmation prompts