PDM

8.5k

Python workflow CLI for locking dependencies, syncing environments, running project scripts, and managing Python interpreters.

$curl -sSL https://pdm-project.org/install.sh | bash
Language
Python
Stars
8,540
Category
Package Managers
Agent
Ready
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis

PDM is a Python packaging workflow CLI that manages pyproject.toml, resolves and locks dependencies, syncs project environments, and can build or publish distributions. It also handles interpreter selection, managed Python installs, and project task running from the same command surface.

What It Enables
  • Create or migrate Python projects, declare dependencies in pyproject.toml, lock them, and sync the environment to the lockfile.
  • Select or install Python interpreters, create per-project environments, and inspect the active interpreter or package state.
  • Run project scripts, export lock data to requirements.txt or pylock.toml, and build or publish packages without switching tools.
Agent Fit
  • Several inspect surfaces are machine-readable, including pdm info --json, pdm list --json, pdm outdated --json, and pdm run --json for task metadata.
  • Core workflows are non-interactive once a project is configured, which makes lock, sync, export, run, and publish workable in CI or agent loops.
  • Some setup paths still prompt by default, especially pdm new and interpreter selection in pdm use, so unattended runs need explicit flags or preconfigured project state.
Caveats
  • It is tightly coupled to Python packaging conventions and project files, so its value is strongest inside Python repos rather than as a general system package manager.
  • Commands that install interpreters, resolve dependencies, or publish packages depend on network access and can mutate local environments or package indexes.