⚠️ Disclaimer: This was totally vibe coded. I'd never written an Obsidian plugin before and I still haven't. I disavow any responsibility for this plugin - it works for me, if it works for you that's great but it's fully AI-generated so be careful with your beloved tasks.
A kanban board plugin for Obsidian that extends the Tasks plugin to provide inline kanban views within markdown files.
- Inline Kanban Boards: Render kanban boards directly in markdown using
tasks-kanbancode blocks - Drag & Drop: Move tasks between columns with automatic file updates
- Swim Lanes: Support for dual grouping (e.g., group by project, then by status)
- Custom Statuses: Full support for Tasks plugin custom statuses
- Query Syntax: Supports Tasks plugin query syntax including placeholders
- Task Editing: Click-to-edit tasks with modal interface
This plugin requires the Obsidian Tasks plugin to be installed and enabled.
Create a kanban board by adding a tasks-kanban code block to any markdown file:
```tasks-kanban
not done
group by function task.status.typeGroupText
```Note: The preferred grouping method is group by function task.status.typeGroupText which properly handles all status types including custom statuses.
Create swim lanes by using two group statements - the first creates horizontal swim lanes, the second creates columns within each swim lane:
```tasks-kanban
path includes {{query.file.path}}
group by function task.file.property('project')
group by function task.status.typeGroupText
```This creates swim lanes by project with status columns in each lane.
Filter by current file path:
```tasks-kanban
path includes {{query.file.path}}
not done
group by function task.status.typeGroupText
```Group by priority:
```tasks-kanban
not done
priority is high
group by priority
```Custom project swim lanes:
```tasks-kanban
not done
group by function task.file.property('project')
group by status
```The plugin supports the complete Tasks plugin query syntax including:
not done/done- Filter by completion statuspath includes <pattern>- Filter by file pathdescription includes <pattern>- Filter by task descriptiontag includes <pattern>- Filter by tagspriority is <level>- Filter by priority leveldue before <date>- Filter by due date{{query.file.path}}- Current file path placeholder
group by function task.status.typeGroupText- Recommended: Group by status with custom status supportgroup by path- Group by file pathgroup by priority- Group by priority levelgroup by folder- Group by containing foldergroup by function task.file.property('project')- Group by frontmatter property
Use two group by statements for swim lanes (first = horizontal lanes, second = columns).
- Clone this repo to
.obsidian/plugins/tasks-kanban/in your vault - Install dependencies:
npm install - Start development mode:
npm run dev - Enable the plugin in Obsidian settings
Build commands: npm run dev, npm run build, npm run lint
- Download the latest release files:
main.js,styles.css,manifest.json - Create folder
VaultFolder/.obsidian/plugins/tasks-kanban/ - Copy the files into the folder
- Reload Obsidian and enable the plugin
MIT License - see LICENSE file for details.