Kometa config core
Agent-first Kometa skill library for Codex and Claude: generate, review, and debug Plex automation YAML for configs, collections, overlays, metadata, playlists, defaults, operations, and reports.
npx -y skills add nichtlegacy/kometa-skill --skill kometa-config-coreAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use whenever the user needs `config.yml` created, repaired, or explained, including connectors, library mappings, file blocks, root settings, file schedules, library schedules, overlay scheduling, operations, and root playlist wiring. Use this skill aggressively for any Kometa request that mentions `config.yml` or top-level service setup.
SKILL.md
7.6 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Kometa Config Core
Own config.yml and nothing else.
Goal
- Produce or review valid-looking
config.yml. - Wire libraries to collection, metadata, overlay, and playlist files.
- Keep collection, overlay, metadata, and playlist bodies out of this file.
Output Contract
Always return:
- YAML for
config.yml - 2-5 short bullets explaining the structure
- Caveats for required secrets, downstream dependencies, and file path placeholders
File Boundary
Belongs here:
- global connectors such as
plex,tmdb,trakt,mdblist,tautulli,radarr,sonarr - root
settings - root
playlist_files libraries- library-level
collection_files,metadata_files,overlay_files - library-level
operations - library-level
report_path,remove_overlays,reapply_overlays,reset_overlays - file-block attributes like
template_variables,schedule,asset_directory
Does not belong here:
- raw
collections:bodies - raw
overlays:bodies - raw
metadata:edit bodies - raw
playlists:bodies
Hard Rules
playlist_filesis root-level, never under a library- overlay files cannot be individually scheduled; use library
schedule_overlays - collection, metadata, and playlist file blocks can use
schedule - keep secrets blank or explicit placeholders
- if later files rely on Trakt, MDBList, Tautulli, Radarr, or Sonarr, mention that dependency in caveats
File Block Rules
Supported location types to prefer when relevant:
filefolderurldefaultgitrepo
Use these by intent:
- local repo path:
file - many local YAMLs in one folder:
folder - raw hosted YAML:
url - built-in defaults:
default - official community config repo path:
git - custom external repo path:
repo
Scheduling Rules
Know the level:
- file-block
schedule: collection / metadata / playlist files - library
schedule: whole library run - library
schedule_overlays: all overlays for that library
Do not invent per-overlay-file scheduling.
Library Rules
- library mapping name should match the Plex library name unless
library_nameoverrides it - library
template_variablesapply to every templated file in that library remove_overlays: trueis a cleanup action, not a normal defaultreport_pathis valid when the user wants a report file path
Operations Rules
operations:belongs under the library, not under rootsettings- a single operations block is the normal default
- a YAML list of operation blocks is valid when each block needs its own
schedule assets_for_allandassets_for_all_collectionsare the important switches for item art and unmanaged collection artmass_poster_updateandmass_background_updateare powerful but risky around overlaysmetadata_backup,split_duplicates,genre_mapper, and rating sync operations are valid library-level tools
Asset And Poster Workflow
- safest overlay workflow:
asset_directory+prioritize_assets: true+assets_for_all: true - asset images become clean-art source of truth when overlays run
reapply_overlays: trueis a repair knob, not a steady-state recommendationmass_poster_updatecan reset art and trigger repeated overlay uploads, so call out image-bloat risk
Reporting Rules
- keep
report_pathon the library block - keep
save_report,show_missing,show_filtered, andshow_unfilteredunder root or librarysettings only_filter_missingandmissing_only_releasedare for missing-item handling, not for changing the built collection itself- report-heavy runs can be expensive on large libraries
Minimal Skeleton
libraries:
Movies:
collection_files:
- file: config/collections/movies.yml
settings:
cache: true
plex:
url: http://plex:32400
token: PLEX_TOKEN_HERE
tmdb:
apikey: TMDB_API_KEY_HERE
Multi-Library Example
libraries:
Movies:
collection_files:
- file: config/collections/movies.yml
schedule: weekly(friday)
metadata_files:
- file: config/metadata/movies.yml
overlay_files:
- default: resolution
template_variables:
horizontal_align: left
vertical_align: top
operations:
mass_critic_rating_update: imdb
TV Shows:
collection_files:
- file: config/collections/shows.yml
overlay_files:
- default: network
schedule_overlays: weekly(saturday)
playlist_files:
- file: config/playlists/shared.yml
schedule: weekly(sunday)
settings:
cache: true
plex:
url: http://plex:32400
token: PLEX_TOKEN_HERE
tmdb:
apikey: TMDB_API_KEY_HERE
trakt:
client_id: TRAKT_CLIENT_ID_HERE
client_secret: TRAKT_CLIENT_SECRET_HERE
Asset-First Overlay Example
libraries:
Movies:
overlay_files:
- default: resolution
operations:
assets_for_all: true
settings:
asset_directory: config/assets
asset_folders: true
prioritize_assets: true
Scheduled Operations Example
libraries:
Movies:
operations:
- schedule: weekly(friday)
mass_critic_rating_update:
- tmdb
- imdb
- schedule: weekly(saturday)
split_duplicates: true
Report-Aware Library Example
libraries:
Movies:
report_path: config/reports/movies.yml
operations:
split_duplicates: true
settings:
save_report: true
show_missing: true
show_filtered: false
Local References
Read only what matches the request:
references/cards/config--overview.mdreferences/cards/config--file_types.mdreferences/cards/config--files.mdreferences/cards/config--file-blocks.mdreferences/cards/config--libraries.mdreferences/cards/config--libraries-deep.mdreferences/cards/config--operations.mdreferences/cards/config--asset-workflow.mdreferences/cards/config--reports.mdreferences/cards/config--playlists.mdreferences/cards/config--schedule.mdreferences/cards/kometa--guides--assets.md
Use these examples first:
examples/gold/gold-config-minimal.ymlexamples/gold/gold-library-wiring.ymlexamples/gold/gold-default-playlist-call.ymlexamples/gold/gold-asset-first-overlay-config.ymlexamples/gold/gold-asset-directory-multi-root.ymlexamples/gold/gold-operations-blocks-scheduled.ymlexamples/gold/gold-delete-unconfigured-managed-collections.ymlexamples/gold/gold-reporting-config.ymlexamples/gold/gold-reporting-missing-pipeline.yml
Review Checklist
- is this really
config.ymland not another file type? - are playlist files at root level?
- are file references under the correct library?
- is schedule applied at the correct level?
- are operations under the library and not under
settings? - if operations are scheduled, are they YAML list items rather than one mapping with
schedule? - is
report_pathon the library rather than rootsettings? - is
report_pathkept out of file blocks? - does the overlay or poster workflow create avoidable image bloat?
- if asset art should hit items, is
assets_for_allpresent? - are required connectors present for downstream builders and operations?
Stopping Condition
Finish when:
- the user has a clean
config.ymlshape - file blocks are on the right level
- all non-config bodies have been kept out of the file
What ships with it: 1 file
347 B alongside SKILL.md
agents/
- openai.yaml347 B
Gives 0 of the 12 instructions most project setup skills give in ~1.7k tokens
Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-07
- Ask one question at a timein 29 of 999, across 28 files
- Detect the package manager from lockfilesin 28 of 999, across 9 files
- Present findings to the userin 26 of 999, across 5 files
- Explore current repo statein 24 of 999, across 3 files
- Update the agent skills block in place if it existsin 24 of 999, across 3 files
- Install husky lint-staged and prettierin 23 of 999, across 4 files
- Create the lintstagedrc filein 22 of 999, across 3 files
- Commit all changed filesin 22 of 999, across 3 files
- Run lint-staged to verify it worksin 22 of 999, across 3 files
- Create the husky pre-commit filein 21 of 999, across 2 files
- Create a prettierrc file if missingin 21 of 999, across 2 files
- Initialize huskyin 21 of 999, across 2 files
Said here and by no other author read
- produce or review valid config.yml
- keep raw collection bodies out
- keep raw metadata edit bodies out
- keep secrets blank or explicit placeholders
- use only supported file block location types
- keep playlist_files at root level
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.