JellyCC Configuration

May 12, 2026 · View on GitHub

JellyCC follows the XDG Base Directory standard. All configuration files are located in:

~/.config/jellycc/
├── config.json       # User preferences (language)
└── rules.json        # Custom conversion rules (optional)

config Command

The config command manages all CLI preferences. Without arguments, it opens an interactive menu.

jellycc config

Options

FlagDescription
--initGenerates a rules.example.json file in the configuration directory as a starting point for customization
--lang <code>Sets the language directly without opening the interactive menu

To generate the rules template:

jellycc config --init

To change the language directly via the command line:

jellycc config --lang en-US
jellycc config --lang pt-BR

config.json

Stores user preferences. Automatically managed by the config command.

{
  "lang": "pt-BR"
}

Fields

FieldTypeAccepted ValuesDescription
langstringpt-BR, en-USCLI interface language

rules.json

Defines your server's conversion targets. This file is optional — without it, JellyCC uses the default rules.

To create yours from the template:

jellycc config --init

A rules.example.json file will be created in ~/.config/jellycc/. Rename it to rules.json and edit as needed:

cp ~/.config/jellycc/rules.example.json ~/.config/jellycc/rules.json

Partial Overwrite

You do not need to keep the full rules.json file. Keep only the keys you want to change in the file. Anything deleted will automatically inherit the default.

Example: HEVC 10-bit and the rest as default, your rules.json should only have this:

{
  "video": {
    "target": "hevc_10bit"
  }
}

Full Structure

{
  "container": "mkv",
  "video": {
    "target": "h264_8bit"
  },
  "audio": {
    "acceptable": [
      "aac",
      "eac3",
      "flac"
    ],
    "mappings": {
      "ac3":  { "target": "eac3" },
      "dts":  { "target": "eac3" },
      "alac": { "target": "flac" },
      "default": { "target": "aac" }
    }
  }
}

container

Output container for all processed files.

ValueNotes
mkvRecommended default. Supported by most Jellyfin clients
mp4Good compatibility, but limits subtitles to plain text formats

video.target

Target video codec. Files already in this format are copied without transcoding.

ValueDescription
h264_8bitRecommended default. Maximum compatibility with all clients
h264_10bitHDR in H.264; more limited compatibility (e.g., Firefox does not support it)
hevc_8bitHigher compression; requires compatible hardware on the client
hevc_10bitHDR in HEVC; variable support by device

audio.acceptable

List of codecs that JellyCC considers already ideal. Tracks in these formats are always copied without transcoding, regardless of mappings.

Valid values: aac, eac3, ac3, flac, mp3, opus, vorbis, alac, dts

audio.mappings

Defines which codec to convert to when the original is not in the acceptable list. The default key serves as a fallback for any codec not explicitly mapped.

The output bitrate is automatically calculated: 112 kbps × number of channels, respecting the source's original bitrate and codec limits (eac3 ≤ 768 kbps).

Input CodecRecommended TargetReason
ac3eac3Upgrade without noticeable loss, wide support
dtseac3dts does not have Direct Play in most browsers
alacflacBoth lossless; FLAC has wider support
defaultaacGreatest universal compatibility