# Hatch

| | |
| --- | --- |
| CI/CD | [![CI - Test](https://github.com/ofek/hatch/actions/workflows/test.yml/badge.svg){ loading=lazy }](https://github.com/ofek/hatch/actions/workflows/test.yml) [![CD - Build Hatch](https://github.com/ofek/hatch/actions/workflows/build-hatch.yml/badge.svg){ loading=lazy }](https://github.com/ofek/hatch/actions/workflows/build-hatch.yml) [![CD - Build Hatchling](https://github.com/ofek/hatch/actions/workflows/build-hatchling.yml/badge.svg){ loading=lazy }](https://github.com/ofek/hatch/actions/workflows/build-hatchling.yml) |
| Docs | [![Docs - Release](https://github.com/ofek/hatch/actions/workflows/docs-release.yml/badge.svg){ loading=lazy }](https://github.com/ofek/hatch/actions/workflows/docs-release.yml) [![Docs - Dev](https://github.com/ofek/hatch/actions/workflows/docs-dev.yml/badge.svg){ loading=lazy }](https://github.com/ofek/hatch/actions/workflows/docs-dev.yml) |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/hatch.svg?logo=pypi&label=PyPI&logoColor=gold){ loading=lazy }](https://pypi.org/project/hatch/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/hatchling.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold){ loading=lazy }](https://pypi.org/project/hatch/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hatch.svg?logo=python&label=Python&logoColor=gold){ loading=lazy }](https://pypi.org/project/hatch/) |
| Meta | [![code style - black](https://img.shields.io/badge/code%20style-black-000000.svg){ loading=lazy }](https://github.com/psf/black) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg){ loading=lazy }](https://github.com/python/mypy) [![imports - isort](https://img.shields.io/badge/imports-isort-ef8336.svg){ loading=lazy }](https://github.com/pycqa/isort) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg){ loading=lazy }](https://spdx.org/licenses/) [![GitHub Sponsors](https://img.shields.io/github/sponsors/ofek?logo=GitHub%20Sponsors&style=social){ loading=lazy }](https://github.com/sponsors/ofek) |

-----

Hatch is a modern, extensible Python project manager.

## Features

- Standardized [build system](build.md#packaging-ecosystem) with reproducible builds by default
- Robust [environment management](environment.md) with support for custom scripts
- Easy [publishing](publish.md) to PyPI or other sources
- [Version management](version.md)
- Configurable [project generation](config/project-templates.md) with sane defaults
- Responsive [CLI](cli/about.md), ~2-3x faster than equivalent tools

## License

Hatch is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.

## Navigation

Documentation for specific `MAJOR.MINOR` versions can be chosen by using the dropdown on the top of every page. The `dev` version reflects changes that have not yet been released.

Also, desktop readers can use special keyboard shortcuts:

| Keys | Action |
| --- | --- |
| <ul><li><kbd>,</kbd> (comma)</li><li><kbd>p</kbd></li></ul> | Navigate to the "previous" page |
| <ul><li><kbd>.</kbd> (period)</li><li><kbd>n</kbd></li></ul> | Navigate to the "next" page |
| <ul><li><kbd>/</kbd></li><li><kbd>s</kbd></li></ul> | Display the search modal |
