{
  "id": "beets",
  "name": "beets",
  "homepage": "https://beets.io",
  "description": "The media library management system for obsessive music geeks.",
  "icon": "https://raw.githubusercontent.com/beetbox/beets/master/docs/_static/beets_logo_nobg.png",
  "executables": [
    "beet"
  ],
  "dotfiles": {
    "paths": [
      "[appData]/beets/config.yaml"
    ],
    "exclude": [],
    "secret": [],
    "machine_lines": [
      {
        "file": "[appData]/beets/config.yaml",
        "match": {
          "key_path": [
            "directory",
            "library"
          ]
        },
        "scope": "backup"
      }
    ],
    "secret_paths": [
      {
        "file": "[appData]/beets/config.yaml",
        "match": {
          "key_path": [
            "discogs.user_token",
            "discogs.apikey",
            "spotify.client_secret"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "beets",
    "description": "Import music into the library and query it. Other beet subcommands and plugin options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "import"
        ],
        "label": "Import music",
        "description": "Import files or directories into the library. Archives, incremental and resume options are left out.",
        "source": [
          {
            "id": "cli",
            "kind": "manual",
            "url": "https://beets.readthedocs.io/en/stable/reference/cli.html",
            "revision": "master 2026-10-27",
            "evidence": "beet import [-CMWAPRqst] [-l LOGPATH] PATH...\nthe ``-m`` (move) option.\n``-C`` (don't copy), ``-M`` (don't move), and ``-W`` (don't write tags) options.\nusing ``-A`` (don't\nthe ``-l`` option to\nthe ``-q`` (quiet) option\nthe ``-t`` (for *timid*) option.\nsupplying the ``-s`` option.\nuse the ``--flat`` option.\nuse the ``--pretend``\n``--set field=value``\n"
          }
        ],
        "field": [
          {
            "id": "copy",
            "label": "Move files instead of copying",
            "type": "boolean",
            "option": [
              "-m"
            ],
            "effect": "overwrite",
            "sources": [
              "cli"
            ]
          },
          {
            "id": "no_copy",
            "label": "Don't copy files",
            "type": "boolean",
            "option": [
              "-C"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "no_write",
            "label": "Don't write tags",
            "type": "boolean",
            "option": [
              "-W"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "no_autotag",
            "label": "Don't autotag",
            "type": "boolean",
            "option": [
              "-A"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet (no prompts)",
            "type": "boolean",
            "option": [
              "-q"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "timid",
            "label": "Timid (confirm every match)",
            "type": "boolean",
            "option": [
              "-t"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "singletons",
            "label": "Import as singletons",
            "type": "boolean",
            "option": [
              "-s"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "flat",
            "label": "Flat (one album per directory)",
            "type": "boolean",
            "option": [
              "--flat"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "pretend",
            "label": "Preview only",
            "type": "boolean",
            "option": [
              "--pretend"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "logpath",
            "label": "Log skipped items to file",
            "type": "path",
            "option": [
              "-l"
            ],
            "path": {
              "kind": "file",
              "role": "output"
            },
            "sources": [
              "cli"
            ]
          },
          {
            "id": "paths",
            "label": "Files or directories",
            "type": "path",
            "position": 0,
            "multiple": true,
            "min": 1,
            "path": {
              "kind": "any",
              "role": "input",
              "must_exist": true
            },
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "import",
            "label": "Import (copy files)",
            "fields": [
              "paths",
              "quiet",
              "pretend"
            ],
            "required": [
              "paths"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "paths",
              "copy",
              "pretend",
              "quiet"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_copy",
              "no_write",
              "no_autotag",
              "timid",
              "singletons",
              "flat",
              "logpath"
            ]
          }
        ]
      },
      {
        "path": [
          "list"
        ],
        "label": "Query the library",
        "description": "List matching tracks or albums. Query syntax is passed through as typed.",
        "source": [
          {
            "id": "cli",
            "kind": "manual",
            "url": "https://beets.readthedocs.io/en/stable/reference/cli.html",
            "revision": "master 2026-10-27",
            "evidence": "beet list [-apf] [-l LIMIT] QUERY\nYou can use the ``-a`` switch to search for albums instead of individual items.\nUse the ``-l LIMIT`` (``--limit=LIMIT``) flag\nThe ``-p`` option makes beets print out filenames of matched items\nthe ``-f`` option lets you specify a specific format\n"
          }
        ],
        "field": [
          {
            "id": "albums",
            "label": "Albums instead of tracks",
            "type": "boolean",
            "option": [
              "-a"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "paths",
            "label": "Print file paths",
            "type": "boolean",
            "option": [
              "-p"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "format",
            "label": "Output format",
            "description": "Template such as '$album: $albumtotal'.",
            "type": "string",
            "option": [
              "-f"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "limit",
            "label": "Limit",
            "type": "integer",
            "option": [
              "--limit",
              "-l"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "query",
            "label": "Query",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "search",
            "label": "Search",
            "fields": [
              "query",
              "albums"
            ],
            "required": [
              "query"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "query",
              "albums",
              "paths",
              "format",
              "limit"
            ]
          }
        ]
      }
    ]
  }
}
