Markdown syntax

Markdown Checkboxes
How to make a task list, and actually tick the boxes

You want a checkbox in Markdown, a task list you can tick off. The syntax is simple, but there is a catch most guides skip: whether you can actually click the box depends on where you open the file. Here is the syntax, why a box sometimes will not tick, and how to get checkboxes you can click and save.

The syntax: task lists

A checkbox is just a list item that starts with square brackets:

- [ ] Buy milk
- [x] Send the email
- [ ] Book the flight

A dash, a space, then [ ] for an unchecked box or [x] for a checked one. The space inside the empty brackets is required. This is GitHub Flavored Markdown (GFM), so it works on GitHub and in any tool that supports GFM task lists.

The catch: static box vs clickable box

Writing the syntax is the easy part. The real question is whether the box actually does anything when you click it, and that changes from tool to tool.

Where you open it What the checkbox does
A plain text editor Shows "- [ ]" as literal text, no box
GitHub (issues / PRs) A clickable box, but only in issues and PRs, not plain repo files
GitHub (a .md file view) A box, but read-only, you cannot tick it there
NoteLoom (edit and reading views) A clickable box that ticks off and writes back to the .md

So if your goal is an actual working checklist, not just text that looks like one, you need an editor that makes the box clickable and saves the change back to the file. If your boxes are showing as raw [ ] text, that is the same rendering issue covered in why your Markdown is not rendering.

Clickable checkboxes that save to the file

NoteLoom renders - [ ] and - [x] as real checkboxes in both the editing and reading views. Click one and it ticks or unticks, and the change is written straight back into the .md file as [ ] or [x]. Completed items show greyed out with a strikethrough, so a long list stays easy to scan.

That means your to-do list is two things at once: portable plain-text Markdown you can open anywhere, and a checklist you can actually tick off. Nothing is stored in a special format, the checkbox state lives in the .md as [ ] or [x].

Common checkbox gotchas

  • Missing the space: an empty box is [ ] with a space between the brackets, not []. Without the space, many renderers treat it as plain text.
  • Missing the list marker: the line has to start like a list item, with - (or * / +) and a space, before the brackets.
  • Checked is a lowercase x: - [x] marks it done. Leave the space for unchecked, put an x in for checked.
  • Nesting: indent a task under another to make a sub-task, and you can mix checkboxes with normal list items in the same list.

FAQ

How do you make a checkbox in Markdown?
Start a list item with a dash, a space, then square brackets: "- [ ]" for an unchecked box and "- [x]" for a checked one. The space inside the empty brackets matters. This is GitHub Flavored Markdown (GFM), so it works on GitHub and in any tool that supports GFM task lists.
Why is my checkbox showing as [ ] text instead of a box?
The tool you opened it in is not rendering GFM task lists, so it shows the raw source. Two common syntax slips also cause it: a missing space inside the brackets (write "- [ ]", not "- []"), or a missing dash and space before the brackets. Open the file in a tool that renders task lists and a correct "- [ ]" becomes a box.
Can I actually click a Markdown checkbox to tick it?
It depends on the tool. In a plain text editor the box is just text. On GitHub you can click it in an issue or pull request, but not in a plain repo file. In NoteLoom, the box is clickable in both the editing and reading views, and ticking it writes the change back to the .md file.
What is the difference between - [ ] and - [x]?
"- [ ]" (with a space between the brackets) is an unchecked item, and "- [x]" is a checked one. That is the only difference in the source. A renderer draws them as an empty or ticked box; in NoteLoom a completed "- [x]" item also shows greyed out with a strikethrough.
Are Markdown task lists standard?
They are part of GitHub Flavored Markdown (GFM), a widely used superset of standard Markdown, not the original CommonMark spec. Most modern Markdown tools support them, but a strict CommonMark-only renderer may show "- [ ]" as literal text.
Can I nest checkboxes or mix them with normal lists?
Yes. Indent a task item under another to nest it, and you can mix checkboxes with regular bullet or numbered items in the same list. Each "- [ ]" line is its own checkbox regardless of nesting.

Get checkboxes you can actually tick

Open NoteLoom in Chrome / Edge / Arc, open a .md file with a task list, and click the boxes to tick them off, saved straight back to the file as [ ] or [x]. No install and no account.

Open NoteLoom and try it