YAML

What is a YAML file?

Indentation-based configuration format. Readable by people, picky about whitespace.

What YAML is

YAML is a plain-text format you can open in any editor. It is used for moving data between programs and editing.

The extension is .yaml, and the full name is YAML Ain't Markup Language. Both matter less than what the file can hold, which is what the rest of this page is about.

Where YAML came from

It dates from 2001. The specification is YAML 1.2.

Age is worth knowing here for one practical reason: the older a format is, the more programs have had time to learn it.

The specification is public

Anyone can implement it without asking permission or paying a licence, which is why it turns up in so many programs and why files written twenty years ago still open.

Nothing is thrown away

YAML stores its content exactly. Saving it again changes nothing, so it can be opened, edited and re-saved as often as you like without accumulating damage — which is what makes it a working format rather than a delivery one.

You can leave notes in it

YAML has a comment syntax, which is the difference between a file a person maintains and one a program writes. Comments are the first thing lost converting to a format without them, and nothing warns you.

What opens YAML

Visual Studio Code and yq read it, and so do most programs of the same kind.

If a file will not open, the format is rarely the problem — it is more often that the program predates it. Converting to something older is the reliable way past that, and it is what the rest of this site is for.

Opening it in a browser

No browser reads it.

That is the single most common reason to convert it: not that the format is bad, but that the place you want to show the file cannot read it.

It is a working format

YAML is meant to be opened and changed. Keep the file in this format for as long as the work is going on, and export from it whenever a finished copy is needed.

The facts, in one place

Identifiers and provenance for the YAML format.
Extension.yaml, .yml
Media typeapplication/yaml
First published2001
SpecificationYAML 1.2

Converting YAML to something else

Converting something else to YAML

Formats worth considering instead of YAML