erikars38k downloadsOrganizes all of the tasks within your files into a kanban view.
Task List Kanban is a free, open source Obsidian plugin that turns Markdown tasks from your vault into a kanban board. Tasks stay in their original files, and changes made from the board are written back to Markdown.
Use it to:
Click the New Kanban board ribbon icon, run Create new kanban board from the command palette, or open the dashboard and choose New board. Each flow lets you choose the destination folder.
You can also right-click the folder where you want the board file, then choose New kanban.
Open the dashboard from the board rail or run Show board dashboard while a kanban view is focused. The dashboard lists every board in the vault, shows task counts plus updated/opened timestamps, and lets you create or switch boards without hunting through files.
From the dashboard, right-click a board card to rename, hide, show, or delete that board. Delete asks for confirmation and moves the board file through Obsidian's trash flow. Drag cards to choose the dashboard order; hidden boards move under Other boards instead of becoming inaccessible.
When your vault has more than one board, the board rail gives one-click board switching. Drag rail items to reorder boards. In plugin settings, dock the rail on the left or across the top; the left rail can also be resized.
Create Markdown tasks in any included file:
- [ ] Write release notes #this-week
Task List Kanban supports the standard Markdown task bullets -, *, and +.
Tasks without a column tag appear in Uncategorized. To place a task in a column, either add the column tag in Markdown or drag the task to that column on the board. Placement tags are hidden from task cards so the board stays clean.
Click Add new at the bottom of a column to create a task from the board. If a default or recently used task file is available, the input opens immediately; otherwise, choose a file first.
Open board settings with the settings icon in the top-right corner.
Board settings inherit from plugin-wide board defaults unless the board has its own override. In the settings modal, inherited fields can be pinned to freeze the current board value, or reset so the board follows the defaults again. The command palette also includes Use current board settings as global defaults and Prune board settings that match the defaults for keeping older boards tidy.
Plugin settings include:
Choose which files feed the board:
Use Excluded paths to omit directories or files after scope is applied. The board's own folder cannot be excluded directly, but its subdirectories can.
Use the Columns section to rename, color, remove, and reorder custom columns. Uncategorized and Done stay fixed at the top and bottom of the settings list, with separate visibility and name controls.
Column matching options:
In Progress matches tags such as #InProgress, #in-progress, and #In-Progress.status/active and project/alpha matches only tasks with both tags.[ ], in-progress [/], or blocked [!]. Moving a task into that column updates the checkbox marker.Column display options:
#FF5733 to show a color bar on the column and its cards.Enable Consolidate tags in settings to move non-column tags to the card footer.
The Excluded tags setting hides configured tags from cards, tag grouping, and consolidated tag footers. A settings button can automatically exclude all tags mapped to active columns.
Flow direction controls how columns are arranged:
Card width can be adjusted from the view controls between 200px and 600px.
Enable a Property schema in settings to read and write task metadata from the Obsidian Tasks plugin or Dataview inline fields.
Task List Kanban can display, sort, group, and edit metadata from either integration while keeping each task in its source Markdown format.
The Show properties setting controls whether parsed metadata appears on task cards:
When the schema is Tasks Plugin or Dataview, task cards show a compact + Date control. Use it to set or clear due, scheduled, and start dates directly from the board. New tasks created from the board can include the same dates.
Date writes use the selected integration's native format:
- [ ] Send invoice 📅 2026-06-15 ⏳ 2026-06-16 🛫 2026-06-17
- [ ] Send invoice [due:: 2026-06-15] [scheduled:: 2026-06-16] [start:: 2026-06-17]
Completing an open task from the board adds a completion date when the selected schema supports it and the task does not already have one:
- [x] Send invoice ✅ 2026-06-15
- [x] Send invoice [completion:: 2026-06-15]
Existing completion dates are preserved. Reopening, moving, cancelling, archiving, or editing a task does not remove or rewrite historical completion metadata.
Enable Treat nested tasks as subtasks to show only the root task as a card while keeping nested tasks and notes inside that card. Nested rows can be edited, status-cycled, added, deleted, and reordered from the card without turning each child task into its own board card.
When this mode is on, source-block actions stay together: moving, duplicating, deleting, or archiving the parent card operates on the owned nested Markdown block instead of only the first task line.
Task status visuals come from your active Obsidian theme or plugin CSS.
Status marker settings control how checkbox characters behave:
xX.-.Examples:
xX recognizes [x] and [X] as done.xX✓ also recognizes [✓].- hides [-] tasks.Cancel and restore only change checkbox markers. If a cancelled marker is also configured as ignored or done, that marker setting determines whether the task is hidden or treated as complete.
#archived tag.Use the Sort dropdown in the board header to order tasks within each column:
Manual sorting keeps pinned tasks together at the top of the column. Pinned cards show a pin marker; click it to unpin the task and return it to the file-order tail. When a task is first pinned, the plugin will add an Obsidian block link like ^abc123 to the source line unless one already exists, so the order survives text edits and reloads.
Manual drag reordering is available when the board is not grouped. When grouping is active, saved manual order still displays, but the Manual sort option is readonly until grouping is turned off because relative order would not be stable across different groupings.
The search bar above the board filters tasks with a single query. A query is a space-separated list of tokens, and a task must match every token:
| Token | Filters by | Example |
|---|---|---|
word or "quoted phrase" |
content contains the term (case-insensitive) | fix, "big rocks" |
tag:x or tag:x,y |
task has the tag; a comma list matches any listed tag | tag:home,errand |
file:x or file:x,y |
file path contains any listed entry (case-insensitive) | file:projects |
due:<$TODAY |
date property compared to a date | due:<=2026-07-04 |
Details:
fix tag:home file:projects due:<$TODAY keeps tasks containing "fix", tagged home, in a file path containing "projects", due before today. There is no OR across tokens and no negation.tag: tokens AND together, so tag:home tag:errand requires both tags, while tag:home,errand matches either. Repeated file: tokens merge into one "any of" list.file:"weekly notes".due, scheduled, start, done, created) with an operator (<, <=, =, >=, >) and either a YYYY-MM-DD date or $TODAY, which re-evaluates at midnight. Tasks without the referenced property are never hidden by a date token.note: or a bad date value) is treated as plain content text.Filtering applies when you press Enter. As you type, suggestions appear for the token under the caret — tag names, file paths, date keys and operators, and query-only saved view names. The sliders icon expands a structured editor under the bar; it and the bar are two views of the same query, so edits in either stay in sync. Filters persist per board.
Saved views live in the expanded view controls. A saved view can capture the current filter, sort, grouping, flow direction, and card width. Save one with an optional name, click it to apply its stored view properties, or delete a board-local saved view with the × control. Query-only saved views also appear as search bar suggestions, so the older saved-filter workflow is still there in a more general form. Global saved views are read-only from the board and can be edited from plugin settings.
Each column header has a Done / Select toggle.
After selecting tasks, use the column bulk menu to move, complete, cancel, restore, archive, duplicate, or delete them. Selected-card command palette actions are also available for marking done, cancelling, archiving, duplicating, and deleting. Dragging one selected task moves all selected tasks in that column.
Use Group by in the board header to split tasks into swimlanes.
Group and column headers stay visible while scrolling grouped boards, making large swimlane views easier to scan.
Tasks are grouped by source Markdown file.
Tasks are grouped by tag, optionally limited to a configured prefix.
When a Tasks Plugin or Dataview property schema is enabled, tasks can also be grouped by parsed properties. Date groups support Combine past dates so overdue dates can collapse into one past bucket.
Saved views replace the older saved grouping workflow and can reuse common grouping setups, including tag prefixes, include lists, property groups, group direction, and the surrounding layout.
The current README still uses older screenshots. Useful new or replacement screenshots would be:
npm install
npm run dev
Build output is written to the repository root for Obsidian plugin loading.
npm run build
npm test
npm run build runs TypeScript checking and a production ESBuild bundle. npm test runs the Vitest suite.
Deploy to the vendored test vault:
./tools/deploy_for_manual_test.sh
This copies the built plugin into test-vaults/obsidian-plugin-dev/.obsidian/plugins/task-list-kanban/. You can pass a target directory to deploy somewhere else.
Bump the version:
npm run version
Commit the version changes, create an annotated tag, then push main and
the tag.
Wait for GitHub Actions to create the draft release with built assets.
Edit and publish that draft from the releases page.
Do not create a release draft manually with gh release create or the GitHub UI; the automated draft is the one with the correct assets.