---
title: "Configuration"
---

# Config file name

Lefthook supports the following file names for the main config:

| Format | Acceptable config names |
|-------|-----------|
| YAML  | `lefthook.yml` `lefthook.yaml` `.lefthook.yml` `.lefthook.yaml` `.config/lefthook.yml` `.config/lefthook.yaml` |
| TOML  | `lefthook.toml`  `.lefthook.toml`  `.config/lefthook.toml` |
| JSON  | `lefthook.json`  `.lefthook.json`  `.config/lefthook.json` |
| JSONC | `lefthook.jsonc`  `.lefthook.jsonc`  `.config/lefthook.jsonc` |

If there are more than 1 file in the project, only one will be used, and you'll never know which one. So, please, use one format in a project.

Filenames without the leading dot will also be looked up from the [`.config` subdirectory](https://github.com/pi0/config-dir).

Lefthook also merges an extra config with the name `lefthook-local`. All supported formats can be applied to this `-local` config. If you name your main config with the leading dot, like `.lefthook.json`, the `-local` config also must be named with the leading dot: `.lefthook-local.json`.

The `-local` config can be used without a main config file. This is useful when you want to use lefthook locally without imposing it on your teammates – just create a `lefthook-local.yml` file and add it to your global `.gitignore`.

