sliderDefault config values

Reference list of CrossWatch config.json

This page lists the defaults that users actually tune.

It intentionally hides connection fields.

Full schema: Configuration (config.json)

Runtime-generated defaults (good to know)

Some defaults are written on load/save:

  • version is stamped to the running app version (leading v removed).

  • security.webhook_ids.* can be auto-generated if missing.

  • ui._autogen is added on first run only.

Normalization rules are documented in: Configuration (config.json)

Safe global defaults (sync engine)

These are the “don’t surprise me” defaults.

  • sync.enable_add: true

  • sync.enable_remove: false

  • sync.one_way_remove_mode: source_deletes

  • sync.verify_after_write: false

  • sync.dry_run: false

  • sync.drop_guard: false

  • sync.allow_mass_delete: true

  • sync.tombstone_ttl_days: 1

  • sync.include_observed_deletes: true

Blackbox defaults:

  • sync.blackbox.enabled: true

  • sync.blackbox.promote_after: 1

  • sync.blackbox.cooldown_days: 30

  • sync.blackbox.block_adds: true

  • sync.blackbox.block_removes: true

Runtime and performance defaults

These control logging and how writes are chunked.

  • runtime.debug: false

  • runtime.debug_http: false

  • runtime.debug_mods: false

  • runtime.snapshot_ttl_sec: 300

  • runtime.apply_chunk_size: 100

  • runtime.apply_chunk_pause_ms: 50

  • runtime.apply_chunk_size_by_provider.SIMKL: 500

  • runtime.apply_chunk_size_by_provider.MDBLIST: 500

  • runtime.suspect_min_prev: 20

  • runtime.suspect_shrink_ratio: 0.1

Scheduling defaults

  • scheduling.enabled: false

  • scheduling.mode: every_n_hours

  • scheduling.every_n_hours: 12

  • scheduling.daily_time: 03:30

Advanced schedule:

  • scheduling.advanced.enabled: false

  • scheduling.advanced.jobs: []

Scrobble (Watcher) defaults

  • scrobble.enabled: false

  • scrobble.mode: watch

Watcher behavior:

  • scrobble.watch.autostart: false

  • scrobble.watch.pause_debounce_seconds: 5

  • scrobble.watch.suppress_start_at: 99

Progress rules (used by sinks):

  • scrobble.trakt.progress_step: 25

  • scrobble.trakt.stop_pause_threshold: 80

  • scrobble.trakt.force_stop_at: 95

  • scrobble.trakt.regress_tolerance_percent: 5

UI defaults

  • ui.show_watchlist_preview: true

  • ui.show_playingcard: true

  • ui.show_AI: true

  • ui.protocol: http

TLS defaults:

  • ui.tls.self_signed: true

  • ui.tls.hostname: localhost

  • ui.tls.valid_days: 825

Provider tuning defaults

Plex

HTTP:

  • plex.timeout: 10.0

  • plex.max_retries: 3

Workers:

  • plex.rating_workers: 12

  • plex.history_workers: 12

History:

  • plex.history.include_marked_watched: true

  • plex.history.libraries: [] (empty means all)

Ratings:

  • plex.ratings.libraries: [] (empty means all)

Watchlist:

  • plex.watchlist_page_size: 100

  • plex.watchlist_query_limit: 25

  • plex.watchlist_write_delay_ms: 0

  • plex.watchlist_title_query: true

  • plex.watchlist_use_metadata_match: true

  • plex.watchlist_guid_priority: ["tmdb","imdb","tvdb","agent:themoviedb:en","agent:themoviedb","agent:imdb"]

Jellyfin / Emby

HTTP:

  • *.timeout: 15.0

  • *.max_retries: 3

Scrobble library whitelist:

  • *.scrobble.libraries: [] (empty means all)

Watchlist emulation:

  • *.watchlist.mode: favorites

  • *.watchlist.playlist_name: Watchlist

  • *.watchlist.watchlist_query_limit: 25

  • *.watchlist.watchlist_write_delay_ms: 0

  • *.watchlist.watchlist_guid_priority: ["tmdb","imdb","tvdb","agent:themoviedb:en","agent:themoviedb","agent:imdb"]

History:

  • *.history.history_query_limit: 25

  • *.history.history_write_delay_ms: 0

  • *.history.history_guid_priority: ["tmdb","imdb","tvdb","agent:themoviedb:en","agent:themoviedb","agent:imdb"]

  • *.history.libraries: [] (empty means all)

Ratings:

  • *.ratings.ratings_query_limit: 2000

  • *.ratings.libraries: [] (empty means all)

Trakt

HTTP:

  • trakt.timeout: 10

  • trakt.max_retries: 5

Rate limiting:

  • trakt.rate_limit.get_per_sec: 3.33

  • trakt.rate_limit.post_per_sec: 1

Watchlist:

  • trakt.watchlist_use_etag: true

  • trakt.watchlist_shadow_ttl_hours: 168

  • trakt.watchlist_batch_size: 100

  • trakt.watchlist_log_rate_limits: true

  • trakt.watchlist_freeze_details: true

Ratings:

  • trakt.ratings_per_page: 100

  • trakt.ratings_max_pages: 50

  • trakt.ratings_chunk_size: 100

History:

  • trakt.history_per_page: 100

  • trakt.history_max_pages: 10000

  • trakt.history_unresolved: false

  • trakt.history_number_fallback: false

SIMKL

  • simkl.date_from: "" (optional backfill start, YYYY-MM-DD)

Rate limiting:

  • simkl.rate_limit.get_per_sec: 10

  • simkl.rate_limit.post_per_sec: 1

MDBList

HTTP:

  • mdblist.timeout: 10

  • mdblist.max_retries: 3

Rate limiting:

  • mdblist.rate_limit.get_per_sec: 10

  • mdblist.rate_limit.post_per_sec: 1

Watchlist:

  • mdblist.watchlist_shadow_ttl_hours: 0

  • mdblist.watchlist_shadow_validate: true

  • mdblist.watchlist_page_size: 200

  • mdblist.watchlist_batch_size: 100

  • mdblist.watchlist_freeze_details: true

Ratings:

  • mdblist.ratings_per_page: 200

  • mdblist.ratings_max_pages: 50

  • mdblist.ratings_chunk_size: 500

  • mdblist.ratings_write_delay_ms: 600

  • mdblist.ratings_max_backoff_ms: 8000

History:

  • mdblist.history_per_page: 1000

  • mdblist.history_max_pages: 250

  • mdblist.history_chunk_size: 500

  • mdblist.history_write_delay_ms: 600

  • mdblist.history_max_backoff_ms: 8000

TMDb metadata

  • metadata.locale: en-US

  • metadata.ttl_hours: 6

TMDb (Sync)

  • tmdb_sync.timeout: 15.0

  • tmdb_sync.max_retries: 3

Tautulli (history import)

HTTP:

  • tautulli.timeout: 10.0

  • tautulli.max_retries: 3

History paging:

  • tautulli.history.per_page: 100

  • tautulli.history.max_pages: 5000

CrossWatch (local provider)

  • crosswatch.root_dir: /config/.cw_provider

  • crosswatch.enabled: true

  • crosswatch.retention_days: 30

  • crosswatch.auto_snapshot: true

  • crosswatch.max_snapshots: 64

  • crosswatch.restore_watchlist: latest

  • crosswatch.restore_history: latest

  • crosswatch.restore_ratings: latest

Last updated

Was this helpful?