{
  "id": "pdm",
  "name": "PDM",
  "homepage": "https://pdm-project.org/",
  "description": "A modern Python package and dependency manager supporting the latest PEP standards.",
  "executables": [
    "pdm"
  ],
  "dotfiles": {
    "paths": [
      "[appData]/pdm/config.toml"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false,
    "secret_paths": [
      {
        "file": "[appData]/pdm/config.toml",
        "match": {
          "key_path": [
            "repository.*.password",
            "source.*.password"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "PDM",
    "description": "Add dependencies and build distributions with PDM. Install, lock, run, publish and the other subcommands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "add"
        ],
        "label": "Add dependencies",
        "description": "Write requirements to pyproject.toml, update the lockfile and sync the environment.",
        "source": [
          {
            "id": "ref",
            "kind": "help",
            "url": "https://pdm-project.org/latest/reference/cli/",
            "revision": "2026-10-27",
            "evidence": "-e, --editable: Specify editable packages\npackages: Specify packages\n-g, --global: Use the global project, supply the project root with -p option\n-p, --project: Specify another path as the project root, which changes the base of pyproject.toml and __pypackages__ [env var: PDM_PROJECT]\n--pre, --prerelease: Allow prereleases to be pinned\n--dry-run: Show the difference only and don't perform any action\n-d, --dev: Add packages into dev dependencies\n-G, --group: Specify the target dependency group to add into\n--no-sync: Only write pyproject.toml and do not sync the working set (default: False)\n--save-exact: Save exact version specifiers\n--save-minimum: Save minimum version specifiers\n"
          }
        ],
        "field": [
          {
            "id": "packages",
            "label": "Packages",
            "description": "Requirement specifiers such as requests or 'flask>=3'.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "ref"
            ]
          },
          {
            "id": "dev",
            "label": "Dev dependencies",
            "type": "boolean",
            "option": [
              "--dev",
              "-d"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "group",
            "label": "Dependency group",
            "type": "string",
            "option": [
              "--group",
              "-G"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "editable",
            "label": "Editable install",
            "type": "boolean",
            "option": [
              "--editable",
              "-e"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_sync",
            "label": "Do not sync environment",
            "type": "boolean",
            "option": [
              "--no-sync"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "prerelease",
            "label": "Allow prereleases",
            "type": "boolean",
            "option": [
              "--pre"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "save_exact",
            "label": "Pin exact versions",
            "type": "boolean",
            "option": [
              "--save-exact"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "save_minimum",
            "label": "Save minimum versions",
            "type": "boolean",
            "option": [
              "--save-minimum"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "global",
            "label": "Global project",
            "type": "boolean",
            "option": [
              "--global",
              "-g"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "project",
            "label": "Project root",
            "type": "path",
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "option": [
              "--project",
              "-p"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "add",
            "label": "Add packages",
            "fields": [
              "packages",
              "group"
            ],
            "required": [
              "packages"
            ]
          },
          {
            "id": "add_dev",
            "label": "Add dev packages",
            "fields": [
              "packages"
            ],
            "required": [
              "packages"
            ],
            "set": {
              "dev": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "packages",
              "dev",
              "group",
              "editable",
              "dry_run"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_sync",
              "prerelease",
              "save_exact",
              "save_minimum",
              "global",
              "project"
            ]
          }
        ]
      },
      {
        "path": [
          "build"
        ],
        "label": "Build distributions",
        "description": "Build sdist and wheel artifacts for the project.",
        "source": [
          {
            "id": "ref",
            "kind": "help",
            "url": "https://pdm-project.org/latest/reference/cli/",
            "revision": "2026-10-27",
            "evidence": "-p, --project: Specify another path as the project root, which changes the base of pyproject.toml and __pypackages__ [env var: PDM_PROJECT]\n--no-sdist: Don't build source tarballs (default: False)\n--no-wheel: Don't build wheels (default: False)\n-d, --dest: Target directory to put artifacts (default: dist)\n--no-clean: Do not clean the target directory (default: False)\n--no-isolation: Disable isolation when building a source distribution that follows PEP 517, as in: build dependencies specified by PEP 518 must be already installed if this option is used.\n"
          }
        ],
        "field": [
          {
            "id": "dest",
            "label": "Output directory",
            "type": "path",
            "path": {
              "kind": "directory",
              "role": "output"
            },
            "option": [
              "--dest",
              "-d"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_sdist",
            "label": "Skip sdist",
            "type": "boolean",
            "option": [
              "--no-sdist"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_wheel",
            "label": "Skip wheel",
            "type": "boolean",
            "option": [
              "--no-wheel"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_clean",
            "label": "Keep existing artifacts",
            "type": "boolean",
            "option": [
              "--no-clean"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "no_isolation",
            "label": "Disable build isolation",
            "type": "boolean",
            "option": [
              "--no-isolation"
            ],
            "sources": [
              "ref"
            ]
          },
          {
            "id": "project",
            "label": "Project root",
            "type": "path",
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "option": [
              "--project",
              "-p"
            ],
            "sources": [
              "ref"
            ]
          }
        ],
        "task": [
          {
            "id": "build",
            "label": "Build all artifacts",
            "fields": [
              "dest"
            ],
            "required": []
          },
          {
            "id": "wheel",
            "label": "Wheel only",
            "fields": [
              "dest"
            ],
            "required": [],
            "set": {
              "no_sdist": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "dest",
              "no_sdist",
              "no_wheel"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "no_clean",
              "no_isolation",
              "project"
            ]
          }
        ]
      }
    ]
  }
}
