stepankropachev8k downloadsFull-featured project management: stunning Gantt charts, Kanban boards, Table views, customizable fields, due date notifications.
Full-featured project management, natively in your vault.
Table views, Gantt charts, Kanban boards, custom fields, time tracking, smart scheduling — all stored as plain Markdown with YAML frontmatter. No external services. No sync subscriptions. Your data stays yours.
.md files in your vault. Portable, searchable, version-controllable. No lock-in, ever.Sortable, filterable task grid with inline editing. Save custom filter/sort combinations as named views. Quick-add tasks from the top bar. Select multiple tasks and apply bulk actions — change status, priority, assignee, or delete in one move.
Interactive timeline with draggable bars, resizable edges, and dependency arrows. Zoom from day to quarter. Drag to reschedule, resize to adjust duration. Milestones render as diamonds. A "today" line keeps you oriented.
Card-based board grouped by status. Drag cards between columns to update status instantly. Cards show priority, assignees, and tags at a glance.
You can add any existing note from your vault to project as a task. Run Project Manager: Import notes as tasks in the Command Palette, pick a project, select files, then choose default status, default priority, and whether to move files into the task folder or copy them. Already-imported notes are skipped.
https://github.com/user-attachments/assets/64e386c5-09b5-42a6-9599-089cc54c98eb
You can also create a project from a note. Add pm-project: true to any note's frontmatter, then run Open current file as project.
The vault is the database. Anything that syncs your vault syncs your projects.
Git works well. Commit your projects folder, push, pull. Sync conflicts show up as regular Markdown conflicts. Resolve them like any other file. Obsidian Sync, iCloud, Dropbox, Syncthing all work without extra setup.
For teams:
There is no real-time multi-user editing. Two people editing the same task at once produces a sync conflict, same as any Markdown note.
| Setting | Description |
|---|---|
| Projects folder | Vault folder where project and task files are stored |
| Default view | Table, Gantt, or Kanban |
| Gantt granularity | Default timeline scale (day / week / month / quarter) |
| Gantt week labels | Week number, date range, or both |
| Due date notifications | Reminders N days before due dates |
| Notifications on/off | Master switch for due date reminders, separate from lead time |
| Auto-schedule | When a blocking task moves, its dependents shift to match. Cycles are refused. |
| Hide done in Gantt | Skip completed and cancelled tasks on the timeline |
| Show subtasks in Kanban | Render subtasks as their own cards, not just inside the parent |
| Custom statuses | Edit labels, colors, and icons for each status |
| Custom priorities | Edit labels, colors, and icons for each priority |
| Team members | Global roster for task assignment |
Each task is a .md file in your vault supporting:
| Property | Description |
|---|---|
| Title | Task name |
| Description | Rich text body (Markdown) |
| Type | Task, Subtask, or Milestone |
| Status | To do, In progress, Blocked, In review, Done, Cancelled |
| Priority | Critical, High, Medium, Low |
| Start / Due date | Schedule boundaries |
| Progress | 0–100% completion |
| Time estimate | Estimated hours |
| Time logs | Logged hours with date and notes |
| Assignees | One or more team members |
| Tags | Freeform labels |
| Subtasks | Nested child tasks |
| Dependencies | Blocking/dependent task links |
| Recurrence | Repeat interval and end date |
| Custom fields | Any per-project fields you define |
https://github.com/StepanKropachev/obsidian-pmmain.js, manifest.json, and styles.css from the latest release.<vault>/.obsidian/plugins/project-manager/Commands:
| Command | What it does |
|---|---|
| Open projects pane | Open the project list |
| Create new project | Open the new project modal |
| Create new task | Pick a project, then create a task |
| Create new subtask | Pick a project and a parent task |
| Import notes as tasks | Convert Markdown notes into tasks |
| Open current file as project | Open the active note as a project (needs pm-project: true) |
| Undo last action | Revert the last change |
| Redo last action | Reapply an undone change |
Everything is stored as Markdown files with YAML frontmatter in a configurable vault folder (default: Projects/). Plain text — readable, portable, and version-controllable.
---
pm-task: true
title: "Ship v1.0"
status: in-progress
priority: high
due: "2026-04-01"
progress: 60
assignees: ["alice", "bob"]
tags: ["launch"]
dependencies: ["task-abc123"]
---
Task description in Markdown goes here.
| Setting | Description |
|---|---|
| Projects folder | Vault folder where project and task files are stored |
| Default view | Table, Gantt, or Kanban |
| Gantt granularity | Default timeline scale (day / week / month / quarter) |
| Gantt week labels | Week number, date range, or both |
| Due date notifications | Reminders N days before due dates |
| Custom statuses | Edit labels, colors, and icons for each status |
| Custom priorities | Edit labels, colors, and icons for each priority |
| Team members | Global roster for task assignment |
I appreciate community interest in the project! However, since this plugin is maintained by one person in their spare time, I have strict rules to keep the codebase clean, stable, and manageable.
If you want to contribute, please follow these rules:
pnpm check, pnpm check:submission, and pnpm test locally before pushing.Bug fixes and thoroughly discussed features are always welcome!
MIT