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 anxin 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?
Why is my checkbox showing as [ ] text instead of a box?
Can I actually click a Markdown checkbox to tick it?
What is the difference between - [ ] and - [x]?
Are Markdown task lists standard?
Can I nest checkboxes or mix them with normal lists?
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.