---
layout: docs
page_title: 'Commands: fmt'
description: |
  Rewrite Nomad config and job files to canonical format
---

# Command: fmt

The `fmt` commands check the syntax and rewrites Nomad configuration and jobspec
files to canonical format. It can be used to improve readability and enforce
consistency of style in Nomad files.

## Usage

```plaintext
nomad fmt [flags] paths ...
```

Formats Nomad agent configuration and job file to a canonical format. If a path
is a directory, it will recursively format all files with .nomad and .hcl
extensions in the directory.

If you provide a single dash (-) as argument, fmt will read from standard input
(STDIN) and output the processed output to standard output (STDOUT).

Note that, this command will check the syntax against
[HCL2](https://github.com/hashicorp/hcl/blob/hcl2/README.md), the second
generation of Hashicorp Configuration Language. Running this command with
deprecated HCL1 jobspec will result in errors.

## Format Options:

- `-check`: Check if the files are valid HCL files. If not, exit status of the
  command will be 1 and the incorrect files will not be formatted. This flag
  overrides any `-write` flag value.
- `-list`: List the files which contain formatting inconsistencies. Defaults to
  `-list=true`.
- `-recursive`: Process files in subdirectories. By default, only the given (or
	current) directory is processed.
- `-write`: Overwrite the input files. Defaults to `-write=true`.

## Examples

```shell-session
$ cat agent.hcl
server {
    enabled = true
  bootstrap_expect = 1
}

client {
  enabled = true
}
```

```shell-session
$ nomad fmt
agent.hcl
```

```shell-session
$ cat agent.hcl
server {
  enabled          = true
  bootstrap_expect = 1
}

client {
  enabled = true
}
```
