README file from
GithubTask Project Tree
Turn folders into task projects with automatic overview notes and tree-based progress tracking.
Features
- Right-click any folder in the Obsidian file explorer and choose "Set As Project"
- Auto-generated overview notes — each project folder gets a summary note showing total progress and child project breakdowns
- Live progress badges on folder names in the file explorer (e.g.
3/5 · 60%) - Nested child projects — subfolders can also be projects, forming a tree; parent totals include children
- Automatic refresh on file changes (create, modify, delete, rename) with debounce
How It Works
- Right-click a folder in Obsidian → Set As Project
- The plugin scans all markdown files inside that folder for checkbox tasks (
- [ ]/- [x]) - An overview note (named after the folder) is created in that folder with a progress summary
- The file explorer shows a live badge with completion stats
Marking Tasks
Any checkbox in a markdown file inside the project folder is counted:
- [ ] Write the introduction
- [x] Draft the conclusion
- [ ] Review the draft
The overview note's progress section is enclosed in HTML comments and auto-updated whenever files change.
Removing a Project
Right-click the folder → Unset Project. This removes the project marker from the overview note's frontmatter. The note itself is not deleted.
Commands
| Command | Description |
|---|---|
Refresh Current Project |
Refresh the project containing the active note |
Refresh All Projects |
Scan and refresh all projects in the vault |
Installation
From Obsidian Community Plugins
- Open Obsidian → Settings → Community Plugins
- Turn off Restricted Mode
- Click Browse and search for "Task Project Tree"
- Install and enable
Manual Installation
- Download the latest release from Releases
- Extract into
{vault}/.obsidian/plugins/task-project-tree/ - Enable the plugin in Settings → Community Plugins
Development
# Install dependencies
npm install
# Start dev mode with hot-reload
npm run dev
# Production build
npm run build
Releasing
- Bump version in
manifest.json,package.json, andversions.json - Commit and tag:
git add -A && git commit -m "release: x.y.z" git tag x.y.z git push && git push --tags - GitHub Actions will automatically build and create the release.
License
MIT