Full-featured task and project management: stunning Gantt charts, Kanban boards, Table views, customizable fields, due date notifications, dependancies
Project management inside Obsidian. Table, Gantt and Kanban over plain Markdown notes.
Install | Quick start | Docs | Website | Changelog
English | 简体中文
Project tools keep the plan in one app and the thinking about it in another. dotpm keeps both in the vault. A project is a note, a task is a note, and the table, the timeline and the board are three ways of looking at the same files.
In Obsidian, open Settings > Community plugins > Browse, search for dotpm, install and enable it. Or open the listing directly.
Needs Obsidian 1.13 or newer. Works on desktop and mobile.
BRAT: install BRAT, choose Add beta plugin and enter dotpm/obsidian-pm.
Manual: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/project-manager/, then reload Obsidian and enable the plugin.
Projects/Your project.md note and a Projects/Your project_tasks/ folder with one note per task.Already have notes you want as tasks? Run dotpm: Import notes as tasks. To turn an existing note into a project, add pm-project: true to its properties and run dotpm: Open current file as project.
Rows sort, filter and edit inline. A multi-row selection changes status, priority, assignee, tags, due date or parent for all of them at once. A filter and sort combination can be saved as a named view.
Dragging a bar reschedules the task, dragging its edge changes the duration, and dragging from one bar to another adds a dependency. The scale zooms from days to years. Milestones are diamonds and a line marks today.
One column per status. Dragging a card to another column changes its status. Cards show priority, assignees, tags and due date.
Tasks
Planning
Organizing
Customizing
A task looks like this. Open it in Obsidian, edit it in any text editor, or diff it in git.
---
pm-task: true
projectId: '[[Website redesign]]'
title: 'Write the launch post'
type: 'task'
status: 'in-progress'
priority: 'high'
start: '2026-09-01'
due: '2026-09-20'
progress: 40
assignees: ['[[Alice]]']
tags: ['marketing']
dependencies: ['[[Design the homepage]]']
---
Draft, review with the team, publish on launch day.
Sync works the way it does for any other note. Obsidian Sync, iCloud, Syncthing and git all carry projects along. Two people editing the same task at the same moment produce an ordinary sync conflict, and there is no real-time collaboration beyond that.
Share a view. dotpm: Export current view as HTML writes the open table, timeline or board to a single file that opens in any browser, with the tasks, the filter and the icons inside it.
Local API and MCP. Turn on Settings > Local API and the desktop app serves the vault's projects on 127.0.0.1 with a bearer token. Scripts use plain HTTP; coding agents connect over the Model Context Protocol:
claude mcp add --transport http dotpm http://127.0.0.1:<port>/mcp --header "Authorization: Bearer <token>"
Command line. npm install -g @dotpm/cli installs the dotpm command. Run inside the vault folder, it finds the server on its own.
dotpm projects
dotpm create <projectId> --title "Write the release notes" --due 2026-09-20
dotpm search release --status todo
Everything a client changes goes through the same code the views use and shows up in Obsidian at once. See docs/api.md and docs/cli.md.
TaskNotes. dotpm imports TaskNotes tasks with their dates, dependencies and hierarchy, and can share statuses and priorities with it. See docs/tasknotes.md.
Bug reports and feature requests go in issues. Pull requests are welcome. For anything larger than a fix, open an issue first so the approach can be agreed on before the work is done.
The repo is a pnpm workspace on Node 24. pnpm dev builds into the vault named by VAULT_PATH, and pnpm check, pnpm check:submission and pnpm test are what CI runs.