# Hassfest

> The tool in Home Assistant Core that validates the files of every integration, like its manifest and translations, and generates files from them.

Source: https://contributors.home-assistant.io/glossary/hassfest/

- In code: `script/hassfest`, `python -m script.hassfest`

Hassfest checks that the files around the code of an integration, like `manifest.json`, `strings.json`, `services.yaml`, and `quality_scale.yaml`, are complete and consistent. It also generates files from them, like `CODEOWNERS` and the lists in [`homeassistant/generated/`](https://github.com/home-assistant/core/tree/dev/homeassistant/generated).

It runs in [CI](https://contributors.home-assistant.io/glossary/ci/) on every pull request to Home Assistant Core, and you can run it yourself with `python -m script.hassfest`. Custom integrations can use it too, with the hassfest action from the home-assistant/actions repository. See [Linters, hassfest, and CI](https://contributors.home-assistant.io/core/development/checks/).

## Related terms

- [Manifest](https://contributors.home-assistant.io/glossary/manifest/): The `manifest.json` file of an integration: its domain, name, integration owners, requirements, and how it can be discovered.
- [Translation key](https://contributors.home-assistant.io/glossary/translation-key/): The key that points to a text in an integration's `strings.json`, so the text can be translated. Integrations use keys, not English text in the code.
- [Integration quality scale](https://contributors.home-assistant.io/glossary/quality-scale/): Tiers that integrations earn by following rules for code quality and user experience: Bronze, Silver, Gold, and Platinum.
- [CI](https://contributors.home-assistant.io/glossary/ci/): Continuous integration: the automated checks, like tests, linters, and type checks, that run on every pull request.
