samiul@portfolio:~/projects/musicman$ cat README.md

21 musicman

[cli] [python] [updated 2026-06]

A terminal tool that files your music into a folder tree using rules over its existing tags.

samiul@portfolio:~/projects/musicman$ cat problem.txt

A downloads folder full of tagged audio still needs sorting by hand, and one-size folder layouts don't fit every genre or era.

samiul@portfolio:~/projects/musicman$ cat build.log

A Python CLI that scans source folders (MP3, FLAC, M4A, Ogg, WAV and more), reads tags with mutagen, and evaluates JSON rules in order. Conditions nest with all/any and support equality, substring, regex, numeric and presence checks; the first match wins. Output paths are templates with format specs like {track:02d}, files can be moved, copied or symlinked, and --dry-run previews everything first. Tag values are sanitised so they can't escape the output directory.

samiul@portfolio:~/projects/musicman$ cat highlights.txt

  • Ordered JSON rules with nested all/any conditions
  • Path templates with format specs: {track:02d} - {title}{ext}
  • Move, copy or symlink, with a dry-run preview
  • Path sanitisation so tags can't escape the output tree

samiul@portfolio:~/projects/musicman$ cat stack.toml

# musicman

lang = "python"

tags = "mutagen"

rules = "json, all/any, regex, numeric"

actions = "move / copy / symlink, --dry-run"

stack = ["Python", "mutagen"]

samiul@portfolio:~/projects/musicman$ git remote -v

interactive shell: try help, ls, open 04, phosphor amber

SH‑TERM  ▚  MODEL 2026