CodeVetter · Repo Unpack · Feature catalog
pypa/hatch
Hatch exposes developer workflows through commands rather than application routes or screens. Its main capabilities cover project generation, environment execution, dependency management, interpreter installation, packaging, and publishing. Quality commands add pytest-based testing, Ruff checks, and Pyrefly type checking. Configuration and diagnostic commands support local operation and troubleshooting.
- hatch new supports interactive details, CLI scaffolding, initialization of existing projects, and attempted setuptools metadata migration; selected template plugins generate the resulting files.
- hatch env registers create, find, lock, prune, remove, run, and show; hatch run adds ENV: command selection and matrix inclusion/exclusion, with an empty environment prefix selecting system execution.
- hatch run recognizes existing .py files with inline metadata, merges their dependencies into a skip-install environment, defaults its installer to uv, and selects a compatible known Python distribution when needed.
- hatch dep provides lock, sync, hash, and dependency display commands; source types include path, Git, URL, index, and workspace, while locked synchronization through the pip locker is explicitly unsupported.
- hatch python registers find/install/remove/show/update; hatch test offers interpreter/matrix selection, randomization, parallel workers, retries, and coverage through the hatch-test environment.
- hatch check runs code, fmt, then types when no subcommand is given; Ruff supplies lint/format scripts, Pyrefly supplies default type checks, and the separate fmt command remains registered.
- hatch build defaults to sdist and wheel, supports target versions and hook/clean controls, and consolidates workspace builds with --all; clean delegates to build's clean-only path, and publishing supports PyPI, TestPyPI, or custom repositories.
- Administrative commands display/update configuration, inspect project metadata and status, view/set versions, enter shells, and manage Hatch through report/update/restore; the self-management command name follows PYAPP_COMMAND_NAME.