Todo.md
A minimalist and flexible TODO manager for VS Code using pure Markdown. Keep your tasks structured, searchable, and manageable through dedicated sidebar views—all without leaving your editor.
Overview
todo.md is designed to provide powerful task management using simple markdown syntax (- [ ] task). It automatically tracks your tasks in a specific file (default: todo.md) and allows you to organize them with standard text syntax:
- Priorities:
(A), (B), (C)
- Tags:
#tag
- Projects:
+project
- Contexts:
@context
- Metadata:
due:YYYY-MM-DD
Features
- Activity Bar View: Browse tasks by hierarchy or flat list.
- Smart Filtering: Filter tasks by tags, projects, and context directly from the UI.
- Sorting: Order tasks by priority or due dates.
- Syntax Highlighting: Distinctive colors for priorities, projects, tags, and context.
- Quick Actions: Keyboard shortcuts to automatically modify tasks inline.
Example
Here is an example demonstrating parallel tasks, nested sub-tasks, notes (e.g. URLs), priorities, projects, contexts, tags, and metadata:
- [ ] (A) Setup VPC and Subnets +network #infra due:2024-06-01
- [x] (B) Create VPC (10.0.0.0/16) +network @console completed:2024-05-20
- [ ] (B) Configure Public and Private Subnets +network @terraform #wip
- https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet
- [ ] Public Subnet (10.0.1.0/24)
- [ ] Private Subnet (10.0.2.0/24)
- [ ] Deploy RDS Instance +database #urgent
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
- [ ] Check required instance types with team @slack
Keybindings
When your cursor is on a task line in markdown files, you can use the following shortcuts:
| Command |
Shortcut |
Description |
| Toggle Task |
Alt+X |
Toggles the completion status ([ ] <-> [x]) |
| Set Priority |
Alt+P |
Cycles through priorities (A -> B -> C -> None) |
| Set Due Date |
Alt+D |
Prompts to append a due:YYYY-MM-DD metadata tag |
| Set Project |
Alt+J |
Prompts to append a +project tag |
| Set Context |
Alt+C |
Prompts to append an @context tag |
| Set Tag |
Alt+T |
Prompts to append a #tag |
Extension Settings
You can customize the extension through VS Code settings:
| Setting |
Default |
Description |
todomd.todoFile |
"todo.md" |
The target file name the extension will look for in your workspace root. |
todomd.metadataKeys |
["due", "completed", "started", "tag", "tags"] |
Allowed key names for key:value metadata pairs. |
todomd.priorityA |
"#ff5555" |
Color for (A) priority tasks. |
todomd.priorityB |
"#ffb86c" |
Color for (B) priority tasks. |
todomd.priorityC |
"#f1fa8c" |
Color for (C) priority tasks. |
todomd.project |
"terminal.ansiYellow" |
Color for + projects. |
todomd.context |
"terminal.ansiCyan" |
Color for @ contexts. |
todomd.tag |
"terminal.ansiMagenta" |
Color for # tags. |