GitHub Task Lists

GitHub Task Lists are interactive checklists built with GitHub Flavored Markdown (GFM). They use simple Markdown checkbox syntax to help you track work, organize projects, and manage progress across GitHub repositories.

Unlike basic Markdown checklists, GitHub Task Lists become interactive in supported GitHub features such as README files, Issues, Pull Requests, Discussions, and Wikis. Team members can check off completed tasks directly from the GitHub interface, making collaboration and project tracking much easier.

GitHub Task Lists are part of GitHub Flavored Markdown (GFM), GitHub's extension of the CommonMark specification. Along with task lists, GFM adds features such as tables, strikethrough, syntax highlighting, footnotes, and automatic URL linking for modern technical documentation.

Whether you're planning a release, tracking bugs, managing feature requests, documenting project progress, or creating deployment checklists, GitHub Task Lists provide a simple and consistent way to organize work inside your repository.

In this guide, you'll learn GitHub Task List syntax, where task lists work, how they behave on GitHub, best practices, common mistakes, and real-world examples for collaborative development.

🟢 Practice as you read: Generate GitHub-compatible task lists with the Markdown Task List Generator, then preview them in the Markdown Editor before adding them to your repository.

Open EditorDownload PDF

What Are GitHub Task Lists?

GitHub Task Lists are checklists created using GitHub Flavored Markdown (GFM). They use Markdown checkbox syntax to represent tasks that are completed or still in progress.

Unlike regular bullet lists, task lists can become interactive on supported GitHub pages. In Issues, Pull Requests, and other collaborative views, users can check or uncheck items directly from the GitHub interface without editing the Markdown source.

Task Lists are commonly used for:

  • Release checklists
  • Feature roadmaps
  • Bug tracking
  • Documentation progress
  • Project planning
  • Team collaboration

Because they combine simple Markdown syntax with GitHub's interactive interface, Task Lists have become one of the most widely used GFM features.

If you're new to Markdown checklists in general, see the Markdown Task Lists guide for core checkbox syntax across editors.

Why Use GitHub Task Lists?

GitHub Task Lists make project progress easy to understand at a glance. Instead of maintaining separate documents or spreadsheets, teams can manage work directly inside GitHub using simple Markdown checkboxes.

Common benefits include:

  • Track completed and pending work
  • Create release and deployment checklists
  • Organize feature development
  • Manage bug-fix progress
  • Improve collaboration during code reviews
  • Keep project documentation up to date

For individuals, Task Lists provide a lightweight way to organize personal to-do lists. For teams, they create a shared view of project progress directly within GitHub.

GitHub Task List Syntax

GitHub Task Lists use simple Markdown checkbox syntax. An unchecked task starts with - [ ], while a completed task uses - [x].

- [ ] Write documentation
- [x] Create repository
- [ ] Review pull request
- [ ] Publish release

Output

Live Preview

  • Write documentation
  • Create repository
  • Review pull request
  • Publish release

Each task is displayed as a checkbox when rendered on GitHub.

When editing Markdown manually:

  • - [ ] creates an unchecked task.
  • - [x] creates a completed task.
  • Both uppercase (X) and lowercase (x) are accepted.

On supported GitHub pages, users can simply click the checkbox to update its status without modifying the Markdown source.

Where GitHub Task Lists Work

GitHub Task Lists are supported across several GitHub features, making them useful for everything from project planning to technical documentation. While the Markdown syntax remains the same, the user experience varies depending on where the task list is used.

GitHub Feature Supported Interactive
README.md
Issues
Pull Requests
Discussions
Wikis

In interactive locations such as Issues, Pull Requests, and Discussions, users can check or uncheck tasks directly from the GitHub interface. In README files and most Wikis, task lists are rendered as checkboxes but typically serve as documentation rather than interactive project tracking.

Using Task Lists in README Files#

Task Lists are commonly used in README files to communicate project status, installation progress, release plans, and future improvements.

Typical examples include:

  • Feature roadmaps
  • Installation checklists
  • Project milestones
  • Release planning
  • Documentation progress

Although README task lists are generally not interactive, they provide a clear visual overview of completed and upcoming work for anyone visiting the repository.

See the GitHub README Guide for full README structure and templates.

Using Task Lists in GitHub Issues#

GitHub Issues provide the best experience for Task Lists because checkboxes become interactive.

Instead of editing Markdown manually, collaborators can check or uncheck tasks directly from the GitHub interface. GitHub automatically updates the rendered checklist, making Issues an effective tool for tracking bugs, feature development, release planning, and team workflows.

Interactive task lists are especially useful for:

  • Bug tracking
  • Sprint planning
  • Feature implementation
  • Release checklists
  • Team collaboration

Because task progress is visible to everyone involved, Issues are one of the most common places to use GitHub Task Lists.

Using Task Lists in Pull Requests#

Task Lists help reviewers and contributors track work before a Pull Request is merged.

Common examples include:

  • Completing code reviews
  • Running tests
  • Updating documentation
  • Verifying deployments
  • Resolving review comments

A checklist makes it easier for reviewers to confirm that required tasks have been completed before approving changes.

Using Task Lists in Discussions#

GitHub Discussions support Task Lists for collaborative conversations, planning sessions, and community feedback.

Teams often use checklists to organize ideas, gather feedback, assign follow-up work, or summarize discussion outcomes.

Nested GitHub Task Lists

GitHub Task Lists can be nested to break larger tasks into smaller, manageable subtasks. This is useful for organizing complex features, release checklists, or multi-step workflows.

- [ ] Release v2.0
  - [x] Complete development
  - [x] Run automated tests
  - [ ] Update documentation
  - [ ] Publish release notes

Output

Live Preview

  • Release v2.0
    • Complete development
    • Run automated tests
    • Update documentation
    • Publish release notes

Nested task lists improve readability by grouping related work under a single parent task, making large projects easier to plan and track.

See Markdown Lists for general list nesting rules.

- [ ] Read the [Installation Guide](installation.md)
- [ ] Review the API documentation
- [ ] Submit the first pull request

This allows contributors to open the required documentation directly from the checklist. See Markdown Links for inline and reference link syntax.

Combining Task Lists with Inline Code#

- [ ] Run `npm install`
- [ ] Execute `npm run dev`
- [ ] Test the application

Using inline code makes commands easier to identify and copy. See Markdown Code Blocks for fenced blocks and syntax highlighting.

Combining Task Lists with Headings#

For larger projects, divide your checklist into sections using Markdown headings.

## Frontend

- [x] Create homepage
- [ ] Build dashboard

## Backend

- [x] Database setup
- [ ] User authentication

## Documentation

- [ ] README update
- [ ] API guide

GitHub Task Lists and GitHub Flavored Markdown (GFM)

Task Lists are a feature of GitHub Flavored Markdown (GFM), GitHub's extension of the CommonMark specification.

While standard Markdown does not define checkbox syntax, GFM adds support for task lists using - [ ] and - [x]. GitHub then renders these checkboxes across supported features such as README files, Issues, Pull Requests, Discussions, and Wikis.

If you want to learn more about the full GFM specification, including tables, footnotes, syntax highlighting, and other extensions, see the GitHub Flavored Markdown (GFM) guide.

GitHub Task Lists vs Standard Markdown

Task list syntax is not part of the original Markdown specification created by John Gruber. Instead, it was introduced through GitHub Flavored Markdown (GFM) and later adopted by many modern Markdown editors and documentation tools.

Feature Standard Markdown GitHub Flavored Markdown
Bullet Lists
Numbered Lists
Task Lists
Interactive Checkboxes ✅ (GitHub-supported pages)

If you're writing Markdown outside GitHub, check whether your editor or platform supports GitHub Flavored Markdown before using task lists.

💡 Tip: If you only want to learn Markdown checkbox syntax that works across supported Markdown editors, see the Markdown Task Lists guide. This guide focuses specifically on GitHub's implementation.

Best Practices

Follow these recommendations to make GitHub Task Lists easier to read and maintain.

Keep Tasks Short and Actionable#

Each task should describe a single action rather than combining multiple steps into one checkbox.

Use nested task lists to organize larger features, releases, or documentation projects into logical sections.

Keep Task Lists Up to Date#

Mark completed work promptly so collaborators always see accurate project progress.

Use Task Lists Where Collaboration Matters#

Task Lists work best in GitHub Issues and Pull Requests, where contributors can update progress directly from the GitHub interface.

Use Meaningful Task Order#

Arrange tasks in the order they should be completed to make project workflows easier to follow.

Common GitHub Task List Mistakes

Even experienced developers make small mistakes that reduce the usefulness of Task Lists.

Using Task Lists for Large Documentation#

Long documentation pages are usually easier to read with headings and regular lists. Reserve Task Lists for items that actually need to be completed.

Combining Multiple Actions in One Task#

Instead of writing one long checkbox, split complex work into smaller tasks or nested subtasks.

Forgetting to Update Completed Tasks#

Outdated Task Lists quickly lose their value. Keep checklists synchronized with actual project progress.

Assuming Every Markdown Platform Supports Task Lists#

Task Lists rely on GitHub Flavored Markdown (GFM). Some Markdown parsers may ignore checkbox syntax or display it as plain text.

Using Task Lists When a Numbered Process Is Better#

If readers need to follow steps in sequence, a numbered list is often more appropriate than a checklist. See Markdown Lists for ordered and unordered list patterns.

Real-World Examples

Website Launch Checklist#

# Website Launch Checklist

## Development

- [x] Homepage completed
- [x] Responsive layout
- [ ] Contact form testing

## SEO

- [x] Meta title
- [x] Meta description
- [ ] XML sitemap

## Deployment

- [ ] Upload files
- [ ] Configure domain
- [ ] Enable HTTPS

Open Source Release Checklist#

## Release Checklist

- [x] Update version number
- [x] Run automated tests
- [ ] Update CHANGELOG
- [ ] Publish release notes
- [ ] Create GitHub release

Bug Fix Checklist#

## Bug Fixes

- [x] Fix login issue
- [ ] Resolve image loading bug
- [ ] Improve error messages
- [ ] Add automated tests

Documentation Progress#

## Documentation Tasks

- [x] Introduction
- [x] Installation Guide
- [x] Getting Started
- [ ] API Reference
- [ ] Tutorials
- [ ] FAQ

Feature Roadmap#

## Development Progress

- [x] Project setup
- [x] Authentication
- [x] User dashboard
- [ ] Notifications
- [ ] Payment integration

Practice GitHub Task Lists

The best way to learn GitHub Task Lists is by using them in real projects.

Open the Markdown Editor to write and preview task lists before adding them to your repository. If you're starting from scratch, use the Markdown Task List Generator to create properly formatted checklists instantly.

Practice creating:

  • A release checklist
  • A bug-fix checklist
  • A feature roadmap
  • A documentation progress tracker
  • A deployment checklist with nested tasks

As you become familiar with GitHub Task Lists, you'll naturally start using them in README files, Issues, Pull Requests, Discussions, and project documentation.

Summary#

GitHub Task Lists make it easy to organize work, track progress, and collaborate using simple Markdown checkbox syntax.

In this guide, you learned:

  • What GitHub Task Lists are
  • How to create task lists using GitHub Flavored Markdown (GFM)
  • Where task lists work across GitHub
  • How nested task lists improve project organization
  • The differences between standard Markdown and GitHub Task Lists
  • Best practices for collaborative development
  • Common mistakes to avoid

Whether you're maintaining an open-source project, planning a release, managing issues, or documenting development progress, GitHub Task Lists provide a simple and effective way to keep work organized.

Frequently Asked Questions

  1. 1

    What are GitHub Task Lists?

    GitHub Task Lists are interactive checklists created using Markdown. They allow you to track tasks with checkboxes in README files, Issues, Pull Requests, Discussions, and Wikis. Example: - [ ] Write documentation and - [x] Publish the project.

  2. 2

    How do I create a Task List in GitHub?

    Create a bullet list and place a checkbox after the dash. Use - [ ] for an incomplete task and - [x] for a completed task. GitHub automatically renders these items as checkboxes in supported locations.

  3. 3

    Where can I use GitHub Task Lists?

    GitHub Task Lists work in README.md files, GitHub Issues, Pull Requests, GitHub Discussions, Repository Wikis, and GitHub Pages when using GitHub Flavored Markdown.

  4. 4

    Are GitHub Task Lists interactive?

    Yes. In GitHub Issues, Pull Requests, and some other GitHub interfaces, task list checkboxes can be checked or unchecked directly from the GitHub interface without editing the Markdown source. In README files, task lists are generally displayed as rendered checkboxes for documentation purposes.

  5. 5

    Can I create nested GitHub Task Lists?

    Yes. GitHub supports nested task lists by indenting child tasks beneath a parent task. Nested checklists are useful for breaking large features, releases, or documentation work into smaller, manageable tasks.

  6. 6

    What's the difference between Markdown Task Lists and GitHub Task Lists?

    Markdown Task Lists describe the basic checkbox syntax. GitHub Task Lists use the same syntax but take advantage of GitHub Flavored Markdown, allowing checklists to work across GitHub features like Issues, Pull Requests, and README files. See the Markdown Task Lists guide for core syntax and this guide for GitHub-specific usage.

  7. 7

    Can I use links and inline code inside Task Lists?

    Yes. Example: - [ ] Read the Installation Guide, - [ ] Run npm install. Combining links and inline code makes Task Lists more informative and practical.

  8. 8

    Why aren't my checkboxes working?

    Common reasons include incorrect Markdown syntax, missing space inside the brackets, an unsupported Markdown parser, or publishing on a platform that doesn't support GitHub Flavored Markdown. Always preview your document to confirm that checkboxes render correctly.

  9. 9

    Are GitHub Task Lists supported by CommonMark?

    Not always. Task Lists are an extension provided by GitHub Flavored Markdown. Many Markdown editors support them, but basic CommonMark implementations may not. Test your Markdown on the platform where it will be displayed.

  10. 10

    Should I use Task Lists or bullet lists?

    Use Task Lists when you need to track progress. Use bullet lists when you're simply presenting information without needing checkboxes. Choosing the right list type makes your documentation easier to read.

  11. 11

    What are the best uses for GitHub Task Lists?

    GitHub Task Lists are ideal for project roadmaps, feature planning, release checklists, bug tracking, documentation progress, website launch checklists, team collaboration, and personal to-do lists.