Markdown-powered - Your todos live in plain .md files, not a proprietary format
Kanban board view - Visualize tasks across columns defined by ## Headers
Live sync - Changes in the editor instantly update the board and vice versa
Drag and drop - Move tasks between columns or nest them under parent tasks
Right-click to move - Right-click any task to quickly move it to a different section
Nested tasks - Support for subtasks
Add tasks - Click "+" to add tasks to columns or subtasks to existing tasks
Inline editing - Double-click any task to edit its text
Checkbox support - Works with - [ ]/- [x] and unicode ☐/☑ checkboxes
Auto-move to Done - Checking a task automatically moves it to your Done column
Mark done from the editor - Use the Todo Sidebar: Mark Task at Cursor as Done command (default Ctrl+Alt+D / Cmd+Alt+D on Mac) to mark the task on the cursor's line and move it to Done. Toggling a top-level checkbox directly in the markdown text (e.g. via markdown-inline-editor click-to-toggle, or by manually changing [ ] to [x]) also moves the task — toggle this off via todoSidebar.shouldMoveWhenCheckingInEditor.
Keep the rest of your MD file untouched - Only tasks you drag / interact with will move, other markdown will stay.
History support (ctrl+z, ctrl+y)
Usage
Initial Setup
Create H2 sections in your MD file
IMPORTANT: Make sure to create a "Done" section
Just include the word "done", and only have 1
Run VSCode command: Todo Sidebar: Open Markdown File
Select your markdown file
Note: you can also use a relative path to the workspace. (e.g. ./TODO.md)
Toggle VSCode Secondary Sidebar (CTRL + ALT + B) (or CMD + ALT + B on Mac)
Drag the Todo Sidebar icon from the left bar to the right (see gif)
Using it
Click the + to add a task, or the arrow to open in the editor
Drag tasks between columns, check/uncheck to toggle status
todoSidebar.activeFile (string): Path to the currently active markdown file for the todo board. Can be relative (e.g., ./TODO.md) or absolute.
todoSidebar.onDoneAction (string: "move" | "delete"): Action to perform when a top-level task is marked as complete. Defaults to "move".
"move" (default): Toggles checkbox to [x] and moves task to Done column
"delete": Immediately deletes task and all its children. No confirmation dialog - use Ctrl+Z (Cmd+Z on Mac) to undo if needed.
Note: Only affects top-level tasks. Subtasks always just toggle in place.
todoSidebar.shouldMoveWhenCheckingInEditor (boolean): When enabled, checking a top-level task's checkbox directly in the markdown editor (e.g. via markdown-inline-editor click-to-toggle, or by manually changing [ ] to [x]) will move the task to the Done section, mirroring the sidebar behavior. Defaults to true.
Only fires for top-level tasks (no leading whitespace before the bullet); subtasks toggle in place.
Respects todoSidebar.onDoneAction ("move" or "delete").
The Todo Sidebar: Mark Task at Cursor as Done command is unaffected by this setting — it always moves.
todoSidebar.hiddenSections (array of strings): List of section names (H2 headers) to hide from the board view. Defaults to [] (empty array, all sections visible).
Example: ["Done", "Archive"] will hide sections titled "Done" and "Archive"
Supports wildcards: ["*Done*", "Archive"] will hide any section with "Done" in the name