Installing yamllint

On Fedora / CentOS (note: EPEL is required on CentOS):

sudo dnf install yamllint

On Debian 8+ / Ubuntu 16.04+:

sudo apt-get install yamllint

On Mac OS 10.11+:

brew install yamllint

On FreeBSD:

pkg install py36-yamllint

On OpenBSD:

doas pkg_add py3-yamllint

Alternatively using pip, the Python package manager:

pip install --user yamllint

If you prefer installing from source, you can run, from the source directory:

python -m build
pip install --user dist/yamllint-*.tar.gz

Running yamllint

Basic usage:

yamllint file.yml other-file.yaml

You can also lint all YAML files in a whole directory:

yamllint .

Or lint a YAML stream from standard input:

echo -e 'this: is\nvalid: YAML' | yamllint -

The output will look like (colors are not displayed here):

  1:4       error    trailing spaces  (trailing-spaces)
  4:4       error    wrong indentation: expected 4 but found 3  (indentation)
  5:4       error    duplication of key "id-00042" in mapping  (key-duplicates)
  6:6       warning  comment not indented like content  (comments-indentation)
  12:6      error    too many spaces after hyphen  (hyphens)
  15:12     error    too many spaces before comma  (commas)

  1:1       warning  missing document start "---"  (document-start)
  6:81      error    line too long (87 > 80 characters)  (line-length)
  10:1      error    too many blank lines (4 > 2)  (empty-lines)
  11:4      error    too many spaces inside braces  (braces)

By default, the output of yamllint is colored when run from a terminal, and pure text in other cases. Add the -f standard arguments to force non-colored output. Use the -f colored arguments to force colored output.

Add the -f parsable arguments if you need an output format parsable by a machine (for instance for syntax highlighting in text editors). The output will then look like:

file.yml:6:2: [warning] missing starting space in comment (comments)
file.yml:57:1: [error] trailing spaces (trailing-spaces)
file.yml:60:3: [error] wrong indentation: expected 4 but found 2 (indentation)

If you have a custom linting configuration file (see how to configure yamllint), it can be passed to yamllint using the -c option:

yamllint -c ~/myconfig file.yaml


If you have a .yamllint file in your working directory, it will be automatically loaded as configuration by yamllint.