TODO Editor
An issue-tracker-like UI for a plain-text TODO.md file — right inside VS Code.
Track tasks in a single Markdown file with the convenience of a real issue tracker: filtering, sorting, sections, priorities, tags, and live sync. The file stays human-readable and diffable; the extension adds a structured layer on top.
Features
- Activate any
.md file as a TODO file — no magic file names or auto-discovery.
- Rich task syntax inspired by todo.txt: status markers,
(A)-(Z) priorities, +tags, @contexts, key:value metadata, #id references.
- Sidebar tree showing the heading hierarchy with task counts per section.
- Webview task table with status icons, priority badges, tag/context chips, due dates, and IDs.
- Filter by status, priority, tags, or contexts with multi-select dropdowns.
- Sort by clicking any column header.
- Live sync — edits in the raw file (by you, a teammate, or an AI agent) appear in the webview within 300 ms.
- New Task command with auto-assigned
#id.
- Reorder Tasks command to physically sort task lines in the file (fully undoable).
- Duplicate ID diagnostics with squiggles and cross-references.
- YAML frontmatter for label colors and custom status characters.
- Theme-aware — adapts to any VS Code color theme.
- [x] (A) Build parser for TODO format +parser @backend due:2026-04-01 [#12](https://github.com/stefbo/todo-md-editor/issues/12)
| Part |
Required |
Description |
- |
yes |
Markdown list marker |
[x] |
yes |
Status: [ ] open, [~] in-progress, [x] done, [-] cancelled |
(A) |
no |
Priority A-Z (A = highest) |
| Title text |
yes |
Free-form description |
+tag |
no |
Tag (repeatable) |
@context |
no |
Context / assignee |
key:value |
no |
Metadata (e.g. due:2026-04-01) |
#12 |
no |
Unique task ID |
Metadata tokens must be grouped at the end of the line. Multi-line notes are supported with 2-space indentation:
- [ ] (B) Refactor auth middleware +security @alice due:2026-04-15 [#7](https://github.com/stefbo/todo-md-editor/issues/7)
Needs review from legal before merging.
See also [#3](https://github.com/stefbo/todo-md-editor/issues/3).
Getting Started
- Install the extension.
- Open any
.md file in VS Code.
- Right-click the file in the Explorer and choose Open as TODO File, or use the command palette (
Ctrl+Shift+P / Cmd+Shift+P → "TODO Editor: Open as TODO File").
- The sidebar tree and webview task table will appear.
Optional: YAML Frontmatter
Add a frontmatter block to define label colors and custom statuses:
---
labels:
bug: { color: red }
feature: { color: "#2563eb" }
statuses:
- { char: r, label: review, color: purple }
- { char: b, label: blocked, color: "#dc2626" }
---
See doc/todo_file_format.md for the full format specification.
License
MIT