# atmos git hooks

Run your project's checks automatically when developers commit or push. Define Git hooks through
steps, workflows, or custom commands so the team shares the same checks, tools, and configuration.

Atmos installs small `.git/hooks/*` scripts that delegate to `atmos git hooks run`.
Configure each hook under [`git.hooks`](/cli/configuration/git#local-git-hooks) in
`atmos.yaml` with either a command or a sequence of steps.
[Inline script steps](/cli/configuration/git#inline-script-steps) execute inside Atmos
and can use the same step library as other automation scripts.

Configure hooks once in `atmos.yaml`:

```yaml
git:
  hooks:
    pre-commit:
      command: atmos workflow pre-commit
    commit-msg:
      command: atmos workflow commit-msg -- "$1"
```

Then install the shims:

```shell
atmos git hooks install
```

:::note Local Git hooks vs. lifecycle hooks

Local Git hooks are triggered by **Git itself** (`git commit`, `git push`, ...) in the current repository. They are separate from Atmos lifecycle hooks (the [`git` hook kind](/stacks/hooks#kind-git)), which trigger on Atmos events like `after.terraform.apply`.

:::

## Subcommands

## Related

- [Git Configuration](/cli/configuration/git#local-git-hooks) — the `git.hooks` section
- [Workflows](/cli/configuration/workflows) — what hook commands typically invoke
- [`kind: git` lifecycle hooks](/stacks/hooks#kind-git) — event-bound Git publishing
