Hatch is a unified tool for managing Python environments, building packages, scaffolding projects, and installing Python versions. It provides a single command-line interface for automating common development workflows, including running scripts, tests, and static analysis with automatic dependency resolution and configuration.
The tool manages project settings, dependencies, and build instructions through a declarative TOML configuration file, ensuring reproducibility across environments. It creates and manages isolated virtual environments across all major shells, installs and manages multiple Python versions for project-specific requirements, and generates new project skeletons from customizable templates that enforce standard directory layouts and best practices.
Hatch builds Python packages with deterministic, repeatable outputs using a plugin ecosystem for customization, and can upload built packages to PyPI or other package indices with minimal configuration. It also runs test suites with automatic code coverage reporting, performs static analysis using Ruff with sensible defaults, and increments version numbers according to semantic versioning rules without manual file edits.