# Syntax

Markdown task lists and checklists

Last updated June 2026

A Markdown task list is a bullet followed by square brackets: - [ ] for an unchecked item and - [x] for a checked one. It turns a plain list into a checklist with a box in front of each line. Task lists are a GitHub extension, not part of original Markdown, so support varies by app.

Start from a normal bullet list. A task list is the same thing with a bracket pair added after the dash.

The basic syntax

Write a dash, a space, then a pair of square brackets, then your text:

- [ ] Buy oat milk
- [ ] Refill the dishwasher tablets
- [ ] Email the landlord about the radiator

Each line becomes a checkbox with the label next to it. The space inside the brackets matters. It's [ space ], not [].

Checking an item off

To mark an item done, put an x between the brackets:

- [x] Buy oat milk
- [ ] Refill the dishwasher tablets
- [ ] Email the landlord about the radiator

The first line now shows a ticked box. A lowercase x is the standard; most renderers also accept an uppercase X. Anything else between the brackets, a dash or a dot, isn't a checked state and the item won't render as ticked.

So the whole format is two characters wide: empty for to-do, x for done.

Mixing task items with regular text

A task list is still a list, so the usual list rules apply. You can nest items by indenting, and you can keep ordinary bullets in the same list:

- [x] Book the rental car
- [ ] Pack
  - [x] Charger
  - [ ] Passport
- Confirm the hotel by phone

The indented lines become a sub-checklist under "Pack." The last line has no brackets, so it stays a plain bullet with no box. Checkboxes and regular bullets can sit in the same list.

Why the brackets, and where it came from

Task lists aren't in John Gruber's original Markdown or in CommonMark, the standard most parsers follow. They come from GitHub Flavored Markdown (GFM), the extended flavor GitHub uses for issues and pull requests. That's why a checklist you wrote in a GitHub issue renders cleanly in some apps and shows up as literal - [ ] text in others. If an app supports GFM, your task lists work.

In Unmarked

Task lists render, and they're interactive. In Read mode, the checkboxes are clickable: tick one and Unmarked writes the change straight back into your file, in place, with no separate save step. In Write mode, put the cursor on a task line and press ⌘L to flip the box, or use the "+ Insert" menu's Task option to add a fresh one. Reopen the file later and the boxes sit exactly where you left them.

Unmarked is a free, private Markdown reader and editor for Mac. Read the story , or get in touch.