Skip to main content

Configuration Reference

Default config file location:

  • Linux/macOS: ~/.config/alchemist/config.toml
  • Linux/macOS with XDG: $XDG_CONFIG_HOME/alchemist/config.toml
  • Windows: %APPDATA%\Alchemist\config.toml
  • Override: ALCHEMIST_CONFIG_PATH

[transcode]

FieldTypeDefaultDescription
size_reduction_thresholdfloat0.3Minimum predicted size reduction required before a transcode is worth doing
min_bpp_thresholdfloat0.1Minimum bits-per-pixel threshold used by the planner to decide whether a file is already efficiently compressed
min_file_size_mbint50Skip files smaller than this size
concurrent_jobsint1Max jobs Alchemist may run at once before engine-mode overrides
threadsint0CPU thread count per job; 0 means automatic
quality_profilestring"balanced"Quality/speed tradeoff preset
output_codecstring"av1"Target codec: av1, hevc, or h264
allow_fallbackbooltrueAllow codec fallback when the requested codec is unavailable
hdr_modestring"preserve"Preserve HDR metadata or tonemap to SDR
tonemap_algorithmstring"hable"HDR tonemapping algorithm
tonemap_peakfloat100.0Tonemap peak luminance target
tonemap_desatfloat0.2Tonemap desaturation factor
subtitle_modestring"copy"Subtitle handling: copy, burn, extract, or none

[transcode.stream_rules]

FieldTypeDefaultDescription
strip_audio_by_titlelist[]Remove audio tracks whose title contains any configured case-insensitive substring
keep_audio_languageslist[]Keep only audio tracks with matching ISO 639-2 language tags; untagged tracks are kept
keep_only_default_audioboolfalseKeep only the default audio track after other filters run

[hardware]

FieldTypeDefaultDescription
preferred_vendorstringautoPin hardware selection to nvidia, intel, amd, apple, or cpu
device_pathstringoptionalExplicit render node such as /dev/dri/renderD128 on Linux
allow_cpu_fallbackbooltrueAllow fallback to CPU when no supported GPU path succeeds
cpu_presetstring"medium"CPU encoder speed/quality preset
allow_cpu_encodingbooltrueAllow software encoding at all

[scanner]

FieldTypeDefaultDescription
directorieslist[]Library directories to scan
watch_enabledboolfalseEnable realtime watch behavior for configured directories
extra_watch_dirslist[]Extra watch objects with path and is_recursive

[notifications]

FieldTypeDefaultDescription
enabledboolfalseMaster switch for notifications
daily_summary_time_localstring"09:00"Global local-time send window for daily summary notifications
targetslist[]Notification target objects with name, target_type, config_json, events, and enabled

[files]

FieldTypeDefaultDescription
delete_sourceboolfalseDelete the original file after a verified successful transcode
output_extensionstring"mkv"Output file extension
output_suffixstring"-alchemist"Suffix added to the output filename
replace_strategystring"keep"Replace behavior for output collisions
output_rootstringoptionalIf set, Alchemist mirrors the source library directory structure under this root path instead of writing outputs alongside the source files

[schedule]

FieldTypeDefaultDescription
windowslist[]Time window objects; each window has start_time, end_time, and days_of_week

days_of_week uses integers 0-6. The config validator requires at least one day in every window.

[quality]

FieldTypeDefaultDescription
enable_vmafboolfalseRun VMAF scoring after encode
min_vmaf_scorefloat90.0Minimum acceptable VMAF score
revert_on_low_qualitybooltrueRevert the transcode if quality falls below the threshold

[system]

FieldTypeDefaultDescription
monitoring_poll_intervalfloat2.0Poll interval for system monitoring and dashboard resource refresh
enable_telemetryboolfalseOpt-in anonymous telemetry switch
log_retention_daysint30Log retention period in days
engine_modestring"balanced"Runtime engine mode: background, balanced, or throughput

Example

[transcode]
size_reduction_threshold = 0.3
min_bpp_threshold = 0.1
min_file_size_mb = 50
concurrent_jobs = 1
threads = 0
quality_profile = "balanced"
output_codec = "av1"
allow_fallback = true
hdr_mode = "preserve"
tonemap_algorithm = "hable"
tonemap_peak = 100.0
tonemap_desat = 0.2
subtitle_mode = "copy"

[transcode.stream_rules]
strip_audio_by_title = ["commentary", "description"]
keep_audio_languages = ["eng"]
keep_only_default_audio = false

[hardware]
preferred_vendor = "intel"
allow_cpu_fallback = true
cpu_preset = "medium"
allow_cpu_encoding = true

[scanner]
directories = ["/media/movies", "/media/tv"]
watch_enabled = true

[files]
delete_source = false
output_extension = "mkv"
output_suffix = "-alchemist"
replace_strategy = "keep"

[quality]
enable_vmaf = false
min_vmaf_score = 90.0
revert_on_low_quality = true

[system]
monitoring_poll_interval = 2.0
enable_telemetry = false
log_retention_days = 30
engine_mode = "balanced"