An Obsidian plugin for managing projects in a PARA-style vault. Provides a drag-and-drop dashboard, status tracking, archiving, and a priorities file that keeps everything in sync.
Projects are folders inside a configurable project directory (default: 10 - Project). Each project folder has a main file with the same name as the folder (e.g. My Project/My Project.md). The main file's frontmatter drives the dashboard:
---
title: "My Project"
created: 2025-01-15
tags:
- project-page
emoji: "🎯"
status: active
category: work
priority-group: Foundation
priority: high
---A priorities file (a plain markdown file with ## Section headers) is the source of truth for project ordering. The plugin reads and writes this file to persist the dashboard layout. Sections map to statuses:
| Section | Status |
|---|---|
## Active |
active |
## Coming Soon |
coming-soon |
## Deferred Effort |
deferred |
## On Hold |
on-hold |
Projects with status: complete are removed from the priorities file.
Open via the command palette: Project Control: Open Project Dashboard.
- Drag and drop projects to reorder or move between status sections
- Click a project name to open it
- Click the status badge to change status
- Context menu (
...) for rename, duplicate, archive, edit metadata, and more - Category groups and sections are collapsible; collapse state persists across reloads
- Projects with a
#project-pagetag but not in the priorities file appear in a "Not in Priorities" section with a+button to add them
| Command | Description |
|---|---|
| Open Project Dashboard | Open the dashboard view |
| Open Project Page | Fuzzy search projects by name |
| Go to Project Root | Jump to current project's main file |
| Project Actions | Context-aware actions for the current project |
| Create Project | Create a new project folder and main file |
| Archive Project | Move a project to the archive folder |
| Restore Project from Archive | Move a project back from archive |
| Rename Project | Rename folder, file, and update links vault-wide |
| Duplicate Project | Copy a project with optional task reset |
| Edit Project Metadata | Edit frontmatter fields |
| Find Stale Projects | List projects with no recent activity |
| Sync All Projects to Priorities | Rebuild priorities sections from frontmatter |
| Open Project Priorities | Open the priorities file directly |
| Setting | Default | Description |
|---|---|---|
| Project folder | 10 - Project |
Where active projects live |
| Archive folder | 80 - Archive |
Where archived projects go |
| Priorities file | 10 - Project/💫 Project Priorities.md |
Markdown file that tracks project order |
| Stale threshold | 30 days | Inactivity threshold for stale detection |
npm install
npm run dev # watch mode
npm run build # type-check + production buildAfter building, reload Obsidian or use the "Reload app without saving" command to pick up changes.
- Clone this repo into your vault's
.obsidian/plugins/project-control/directory npm install && npm run build- Enable "Project Control" in Obsidian settings under Community Plugins
Download main.js, manifest.json, and styles.css from a release and place them in .obsidian/plugins/project-control/.