Loading

ChordPro

The inline editor format. Chords go in square brackets right where they fall in the lyric. What Fretlist renders: inline chords, section directives, notes, diagrams, tabs, and what it skips.

ChordPro is the second editor tab. Instead of a chord line above the words, the chords go inline, in square brackets, right where they fall in the lyric. It is an open, portable plain-text format.

This page covers what the editor renders. For the full background on ChordPro, including its history, converting from other apps, and how transposition works, see the blog post ChordPro explained. For the chords-above-words style, see Chords over Lyrics.

Inline chords

Each chord sits above the character right after its bracket, so put the bracket exactly where the chord changes:

You type

[G]Strumming on my [C]guitar tonight
[Em]Singing songs beneath the [Am]light

Renders as

GStrumming on my Cguitar tonight
EmSinging songs beneath the Amlight

What counts as a chord is the same everywhere in Fretlist: a root note (A to G), optionally sharp or flat, with quality, extension, and an optional slash bass, like Am, C7, F#m7, Cmaj7, G/B.

Section headers

Mark a section with a comment directive:

You type

{c: Verse}
[G]Strumming on my [C]guitar tonight

Renders as

Verse
GStrumming on my Cguitar tonight

{comment: ...} is the long form of {c: ...}. Environment directives work too: {start_of_chorus} (or {soc}), {start_of_verse: Verse 2}, and {chorus} to mark a chorus repeat.

Notes that aren't chords

Mark a non-chord cue with an asterisk right after the bracket. It renders above the lyric in italic and never transposes:

You type

I found a [G]love [*Stop]for me

Renders as

I found a Glove Stopfor me

It is the same note that Chords over Lyrics writes as (Stop), and switching tabs converts between the two. Fretlist also accepts bare brackets like [Mute] or [(stop)] as notes.

Chord diagrams

Define shapes with {define:} and they render as fingering diagrams:

You type

{define: C base-fret 1 frets x 3 2 0 1 0}
{define: G base-fret 1 frets 3 2 0 0 0 3}
{define: Am base-fret 1 frets x 0 2 2 1 0}

Renders as

Chords
C
G
Am

See Getting the most out of Frets for the full diagram system.

Tabs

Wrap tab in {start_of_tab} and {end_of_tab}. Fretlist also auto-detects tab lines, so the wrapper is optional:

You type

{start_of_tab}
e|--------------0--|
B|----------0-1----|
G|------0-2--------|
D|--2-3------------|
A|-----------------|
E|-----------------|
{end_of_tab}

Renders as

eBGDAE||||||---------------2-----------3----------0-----------2----------0-----------1----------0-----------------||||||

Chord grids

Chart bars without lyrics in a {start_of_grid} environment. Real barlines divide the bars and a dot is a beat with no new chord:

You type

{start_of_grid}
| C . . . | F . . . | Am7 . . . | Dm . . . |
{end_of_grid}

Renders as

C
F
Am7
Dm

See Chord grids for split bars, repeats, first and second endings, and strum patterns.

What the editor skips

A line starting with a single # is a hidden comment, and metadata or layout directives ({title}, {artist}, {key}, {capo}, custom {x_...}) are not drawn in the chord-sheet body. In this example only the two lyric lines render:

You type

# reminder: capo 2 live
{title: Perfect}
[G]Everything in brackets [C]renders
{x_layout: ignored}
[Em]but the directives [D]do not

Renders as

GEverything in brackets Crenders
Embut the directives Ddo not

Set the song's key, capo, and other details in their own fields, not in the song text.

Directive support at a glance

Here is where the major ChordPro directives stand in Fretlist. When something is not drawn, it is kept in the file rather than dropped, so nothing is lost on export.

DirectiveWhat it doesFretlist
Song metadata
{title} {artist} {composer}Title and creditsYes
{subtitle}Subtitle (read as an artist fallback)Yes
{key} {capo}Key and capo positionYes
{tempo} {time} {tuning}Tempo, time signature, tuningYes
Sections and notes
{start_of_verse} {start_of_chorus} {start_of_bridge}Song sectionsYes
{chorus}Reprint the last chorusYes
{comment} {comment_box} {comment_italic} {highlight}Section labels and notesYes
{new_page}Page break for print and exportYes
Chords, grids, and tab
[C] inline chordsChords in the lyricYes
{define} {chord}Custom chord diagrams (guitar and ukulele)Yes
{instrument}Instrument for the diagrams that followYes
{transpose}Shift the chords by N semitonesYes
{start_of_grid}Bar-and-chord gridYes
{start_of_tab}Tab blockYes
Styling and layout
{textfont} {textsize} {textcolour}Text font, size, colorOwn style
{chordfont} {chordsize} {chordcolour}Chord font, size, colorOwn style
{columns} {column_break}Fixed multi-column page layoutOwn style
{grid} {no_grid} {diagrams}Show-or-hide display togglesOwn style
Embedded media
{image}Embedded imagePreserved
{start_of_abc} {start_of_ly}ABC and LilyPond music notationDropped on import

Yes renders or applies. Own style means Fretlist ignores the directive and uses its own consistent look. Preserved means it is not drawn, but kept in the file so it survives export. Dropped on import means the block is removed when a file is imported, the one place a file currently loses content.

The preview, and switching formats

The preview renders the finished sheet live. Switch to the Chords over Lyrics tab to see the same song in the chords-above-words style, then switch back for ChordPro. A few ChordPro directives have no Chords-over-Lyrics equivalent, so Fretlist warns you before you edit in that view.

Last updated: 18 August 2026Need help? hello@fretlist.com