MichaHoffmann/tree-sitter-hcl

HCL grammar for tree-sitter

145

stars

175

commits

HCL

primary language

Jan 17, 2026

updated

tree-sitter-grammars.github.io/tree-sitter-hcl/
hcl
parser
tree-sitter

README

tree-sitter-hcl

tree-sitter grammar for the HCL language

Try It Out

Try the parser in the playground

Example

Highlighting example/example.hcl:

Highlighting Example

Developing

It is recommended to use nix to fulfill all development dependencies. To activate the development environment simply run nix-shell in the project root.

Running Tests

To run tests simply run nix-shell --run 'tree-sitter test'.

Compliance

The directory example/real_world_stuff contains a corpus of hcl files that I found with the github query language:HCL for users coreos, hashicorp, oracle and terraform-community-modules.

tree-sitter parse --quiet --stat example/real_world_stuff/*/*

Total parses: 1892; successful parses: 1892; failed parses: 0; success percentage: 100.00%

Fuzzing

See the fuzzing repo for this parser

Attributions

Pages were copied from https://github.com/m-novikov/tree-sitter-sql

Contributors

MichaHoffmann

141 commits

maunzCache

13 commits

amaanq

4 commits

MichaHoffmann/tree-sitter-hcl

HCL grammar for tree-sitter

145

stars

175

commits

HCL

primary language

Jan 17, 2026

updated

tree-sitter-grammars.github.io/tree-sitter-hcl/
hcl
parser
tree-sitter

README

tree-sitter-hcl

tree-sitter grammar for the HCL language

Try It Out

Try the parser in the playground

Example

Highlighting example/example.hcl:

Highlighting Example

Developing

It is recommended to use nix to fulfill all development dependencies. To activate the development environment simply run nix-shell in the project root.

Running Tests

To run tests simply run nix-shell --run 'tree-sitter test'.

Compliance

The directory example/real_world_stuff contains a corpus of hcl files that I found with the github query language:HCL for users coreos, hashicorp, oracle and terraform-community-modules.

tree-sitter parse --quiet --stat example/real_world_stuff/*/*

Total parses: 1892; successful parses: 1892; failed parses: 0; success percentage: 100.00%

Fuzzing

See the fuzzing repo for this parser

Attributions

Pages were copied from https://github.com/m-novikov/tree-sitter-sql

Contributors

MichaHoffmann

141 commits

maunzCache

13 commits

amaanq

4 commits

Languages

HCL

82.1%

C

17.4%