Chordly Logo

ChordPro Syntax

Learn the practical ChordPro syntax most musicians actually use: bracketed chords, lyric lines, comments, directives, and simple song examples.

ChordPro syntax is simple once you see the pattern: lyrics stay as plain text, chords go in square brackets, and directives go in curly braces on their own lines.

This page explains the ChordPro format itself so you can read existing files confidently. Inside Chordly, you work in a live visual editor rather than typing bracketed syntax by hand.

The basic rule

In ChordPro, a lyric line can contain chords inline:

[G]Amazing [C]grace how [G]sweet the [D]sound

Each chord is written in square brackets immediately before the lyric syllable it belongs to. When a ChordPro renderer processes the file, that chord is displayed above the following lyric text.

So this:

[Am]Hello [F]darkness, my old [C]friend

is meant to become something like this in the rendered chart:

 Am    F              C
Hello darkness, my old friend

Lyrics are just text

Most of a ChordPro file is still normal text. If a line does not start with a directive and does not include bracketed chords, it is simply a lyric or text line.

This line has no chords at all
And this one does not either

Blank lines matter too. They are usually kept as spacing between sections.

Chords go in square brackets

The part most people notice first is the chord syntax:

[C]Let it [G]be

A few practical things to know:

  • the chord goes before the lyric syllable it belongs to
  • the text inside the brackets is what the renderer treats as the chord label
  • the format is very forgiving in practice, but commonly used chord names work best

You will often see examples like:

[D]Take me [A]home, country [Bm]roads

ChordPro implementations differ in how deeply they validate or interpret chord names, but the day-to-day pattern is always the same: square brackets mark chord placement.

Directives go in curly braces

Directives are lines that tell a ChordPro-aware program something about the song:

{title: Hallelujah}
{artist: Leonard Cohen}
{start_of_chorus}
{end_of_chorus}

Directives are usually placed on their own lines. Some describe metadata, like the title or artist. Others describe structure, like verse or chorus sections.

This page is about the text format in general. For the directive families people use most often, see ChordPro Directives. For Chordly's current import behavior, see Importing ChordPro Files.

Comments start with #

Lines that begin with # are comments for humans maintaining the file.

# capo version for acoustic set
# play this slower than the record

They are not meant to become part of the rendered chord sheet.

A complete small example

This is a realistic small ChordPro file:

# acoustic version
{title: Wagon Wheel}
{artist: Old Crow Medicine Show}
{key: G}

{start_of_verse}
[G]Headed down south to the [D]land of the pines
And I'm [Em]thumbin' my way into [C]North Caroline
{end_of_verse}

{comment: Chorus}
[G]Rock me mama like a [D]wagon wheel

That file contains the main pieces you will run into most often:

  • a comment line
  • metadata directives
  • a section directive
  • lyric lines with bracketed chords
  • a comment directive used as a visible label

Where syntax stops and directives start

If you just want the mental model, it is this:

  • syntax is how the text file is written
  • directives are the named commands inside that file

So if your question is "how do brackets work?" you are in the right place. If your question is "what does start_of_chorus do?" or "what metadata directives are common?" go to ChordPro Directives.

Next steps