Usage guide¶
This guide covers everyday commands and playlist behavior. For installation and your first playlist, start with the Quickstart. For writing filters, see the M3UG reference.
Run genplis --version to check the installed version and genplis --help
for the complete command-line reference.
To have an AI agent write filters tailored to your collection, install the
bundled skill with genplis --install-skill (Codex/OpenCode) or
genplis --install-skill claude (Claude Code). See AI agents
for setup, examples, and update behavior.
What a run does¶
When you pass a music directory, genplis:
- Finds
.m3ugfilters anywhere under that directory. - Reads supported audio files under the same directory and tests each song against the filters. Tags are cached, so later runs only re-read changed files.
- Writes a playlist next to each filter that has matches, then prints a summary.
Each filter sees the whole collection you scanned, not just the folder containing the filter. Music outside that directory is not included, even if it was cached by an earlier run.
Regenerate one playlist¶
Use --filter to select a filter while still scanning your collection:
genplis ~/Music --filter ~/Music/Metal.m3ug
Other playlists are left untouched. Repeat --filter to select several
filters.
Find tags for your filters¶
To see the tags available in one song:
genplis ~/Music/some-song.mp3
Calculated properties such as *duration are displayed with a * prefix.
Use it in filters to explicitly select a calculated value, as in
*duration < 5m; the unprefixed duration < 5m form is also supported.
See Tags for commonly available names.
Inspecting tags across a collection¶
List all tags in your collection and how many files have each one:
genplis --tag-stats ~/Music
To see the different values of a particular tag, such as the genres you can filter on:
genplis -t genre ~/Music
Repeat -t to inspect more tags. These commands update the tag cache but
don't create or change playlists.
See Tags for how tag values are interpreted and Tag settings for ignored or oversized values.
Find out why a song is missing¶
Use --trace to check a song against a filter without writing a playlist:
genplis ~/Music --trace ~/Music/some-song.mp3 --filter ~/Music/Metal.m3ug
The trace shows which rules pass or fail. If the song matches but still
doesn't appear, use --trace-full instead: it also checks ordering,
duplicate removal, and playlist limits across the collection.
To inspect a filter's parsed rules without scanning music, use
genplis --show-rules --filter ~/Music/Metal.m3ug.
See Testing and debugging filters for annotated output and further examples.
Generated playlists¶
Metal.m3ugproducesMetal.m3uin the same directory.- Existing generated playlists are replaced by default; add
--no-overwriteto leave them untouched. Your audio files are not modified. - If no songs match, no playlist is written; an existing playlist is left untouched rather than emptied or deleted.
- Entries are sorted by file path unless the filter or configuration sets another order. See Ordering and Playlist limits to customize the selection.
- Song paths are relative to the playlist where possible, so you can move the collection and its playlists together.
- By default, playlists include song titles and durations, plus the original
filter as comments. Use
--no-extended-m3ufor a plain list of paths or--no-include-sourceto omit the filter comments.
See Output settings for playlist defaults.
Save your usual settings¶
No configuration file is needed to get started. To avoid typing your music
directory each time, create ~/.config/genplis/config.ini (the usual
location) with:
[collection]
path = ~/Music
You can then run genplis with no path, or
genplis --filter ~/Music/Metal.m3ug for one playlist. A directory
given on the command line overrides the configured one.
See Configuration for config locations, exclusions, worker counts, color themes, and other defaults. To update playlists automatically, see Scheduling runs.
Control output and get help¶
| Option | Use it to… |
|---|---|
-v, --verbose |
Show more detail about filters, matches, skipped files, and cache updates. |
-q, --quiet |
Show only filter match counts and playlist creation during normal runs. |
-qq |
Suppress everything except errors, useful for scheduled runs. |
--no-color |
Turn off colored output. |
-h, --help |
See the full list of command-line options. |
Normal runs show a progress bar while files that are missing from the tag
cache, or whose tags are stale, are parsed. Redirected output gets one summary
line instead. The bar is omitted when the cache is warm, with -q or -qq,
and with --verbose, which prints a line for every cache update instead.
Don't combine -q and -v. If a run fails, read the error message; filter
syntax errors identify the file and line to fix.
Cleaning the cache¶
Genplis automatically caches tags to make repeat runs faster. You normally
don't need to manage this cache. It lives at ~/.cache/genplis/genplis.db
on a typical setup; see Database settings to change it
and Cache invalidation for
when it is rebuilt automatically.
After deleting or moving music, you can remove entries for missing files:
genplis --clean ~/Music
This regenerates playlists first, then cleans entries under that directory. To clean missing-file entries across the whole cache, without generating playlists:
genplis --clean
The pathless form ignores the configured collection path. Neither command deletes music files. For implementation details, see Cache internals.