cfe8414k downloadsTrack your tasks across all the notes in your workspace. Organize your day. Plan your work
Track your tasks across all the notes in your workspace. Organize your day. Plan your work.

This is Proletarian Wizard's task board:

Enter tasks directly in your notes. Everything goes together, you can keep your to-dos right at their source, alongside everything else. When you enter a todo, it magically appears in PW's task board.

The top thread panels allow you to track your day. You start by selecting the tasks you want to do, optionally prioritize them. Then as you work on them, you can change their status, and finally mark them done.

Updates are working in both directions. Changing tasks on the board updates them in your notes, and vice-versa. Click on a task to see it in its note.

The panels below allow you to plan your work. When we get to that date, the tasks will automatically show up in the "Todo" column of today. If you don't complete tasks, they will show in a new panel called "Past". You can decide what to do with these later.

You can also use the auto-expand command (I recommend adding a hotkey, for example: alt+.) to replace natural language to an actual date (e.g. try tomorrow, next monday, or next month). Easier than having to calculate dates.

Produce a report of all the work you did, to help with status reports, and annual reviews.

.obsidian/plugins/proletarian-wizard/ folderCreate your first todo in any note:
- [ ] My first task @due(2025-01-02)
Open the task board using the command palette (Ctrl+P or Cmd+P on Mac):
Ctrl+P on Mac, Alt+P on PC)Select tasks for today by dragging on todos in the board
Track progress by changing task statuses as you work
Plan ahead by adding due dates to future tasks
Use attributes to sort your tasks: @due date, @started date, @completed date, @priority, and #tags.
Use autocomplete to make input easier. Map command "Complete line attribute" to transform @today into @due(2025-01-02), or @critical into @priority(critical)
Proletarian Wizard automatically scans all your notes for todo items and displays them in an organized task board. Simply create todos in your notes using standard Markdown syntax, and they'll appear in the plugin interface.
- [ ] This is a basic todo
- [x] This is a completed todo
- [-] This is a cancelled todo
Proletarian Wizard supports multiple todo statuses beyond the basic complete/incomplete:
[ ] - Todo (pending)[x] - Complete[-] - Canceled[>] - In Progress[!] - Attention Required[d] - Delegated (waiting for someone else)You can create subtasks by indenting todos:
- [ ] Main project task
- [ ] Subtask 1
- Some notes about that subtask
- [x] Completed subtask
- [ ] Sub-subtask
- [ ] Another main task
Add due dates to your todos using the @due() attribute:
- [ ] Review quarterly report @due(2023-12-31)
- [ ] Call client @due(tomorrow)
- [ ] Weekly meeting @due(next monday)
Use the Complete line attribute command to replace "tomorrow" or other text by the actual date.
Supported date formats:
2023-12-31, Dec 31, 2023tomorrow, next week, next monday, in 3 days+7d (7 days from now), +2w (2 weeks from now)Track when tasks were completed using the @completed() attribute:
- [x] Finished project @completed(2023-12-20)
When clicking the checkbox from the planner view, the completed attribute gets added automatically.
Mark tasks as selected for today's work and set priority levels:
- [ ] Important task @selected @priority(high)
- [ ] Medium priority task @priority(medium)
- [ ] Low priority task @priority(low)
Marking a task as selected adds it to today automatically. This is useful if you want something to stay in today from one day to the next. It also appears in its own sub-section of the todo/in-progress sections, which you can use to identify them even more (e.g. task you're actually currently working on, vs. all in progress.)
You can add any custom attributes to your todos:
- [ ] Development task @project(website) @estimate(4h) @assigned(john)
- [ ] Meeting preparation @category(admin) @location(conference-room-a)
For simple flags, you can use boolean attributes:
- [ ] Urgent task @urgent @blocking @important
If you prefer Dataview syntax, you can enable it in settings and use:
- [ ] Task with dataview syntax [due:: 2023-12-31] [priority:: high]
You can also use wikilink syntax to set the due date. This is useful if you use daily notes, to link directly to that daily note.
- [ ] Task with wikilink date [[2025-01-05]]
If several dates are present for a todo, the latest is used as the due date. This can be useful if you want to keep track of all the days you worked on a task, and corresponding notes.
The top section shows your daily workflow:
The bottom section helps you plan future work:
Use the auto-expand command (recommend binding to Alt+.) to convert natural language:
tomorrow → actual tomorrow's datenext monday → date of next Mondayin 2 weeks → date 2 weeks from nownext month → first day of next monthGenerate comprehensive reports of your work:
Customize which attributes to use for:
due)completed)selected)Proletarian Wizard works well with:
For large vaults with many notes:
Clone the repository:
git clone https://github.com/cfe84/obsidian-pw.git
cd obsidian-pw
Install dependencies:
yarn install
Run tests:
yarn test
# Or with coverage
yarn test:coverage
# Or in watch mode
yarn test:watch
Build the plugin:
yarn build
Development with hot reload:
yarn dev
The project includes some test coverage:
Run tests with:
yarn test # Run all tests
yarn test:coverage # Run with coverage report
yarn test:watch # Run in watch mode
src/
├── domain/ # Core business logic
│ ├── LineOperations.ts # Todo parsing and manipulation
│ ├── FileTodoParser.ts # File-level todo parsing
│ ├── TodoIndex.ts # Todo management and indexing
│ └── ...
├── ui/ # React components
├── Commands/ # Obsidian commands
├── Views/ # Obsidian views and modals
└── infrastructure/ # Platform adapters
tests/
├── domain/ # Unit tests for business logic
├── integration/ # Integration tests
└── mocks/ # Test utilities and mocks
The build process:
We welcome contributions! Here's how to get started:
git checkout -b feature/my-new-featureyarn testgit commit -am 'Add some feature'git push origin feature/my-new-featureThis project is licensed under the GNU GPLv2 License - see the LICENSE file for details.