Task Sorter
approvedby Artem Oreshkin
Reorders checklist tasks in a note by priority and due date physically (in place). - This plugin has not been manually reviewed by Obsidian staff.
Task Sorter plugin for Obsidian
The plugin physically reorders the checklist under your cursor by priority and due date ā right-click, pick "Sort task block at cursor", and the lines actually move in the note.
Unlike the Tasks plugin, which sorts virtually inside a query block, this one rewrites the list itself, so the order survives outside of any query. The emoji syntax is the same one Tasks uses, so both plugins work on the same notes.
Features
Sorts only the block you are standing in
The contiguous run of checklist items around the cursor is sorted; a blank line or any other line ends the block. The rest of the note is never touched.
Priority first, due date second
šŗ ā ā« ā š¼ ā no priority ā š½ ā ā¬, then š
YYYY-MM-DD ascending within each
tier. Tasks with no due date come after the dated ones, and equal tasks keep
their original order.
- [ ] Write the README
- [ ] Ship v1 šŗ š
2026-08-20
- [ ] Reply to email š¼
- [ ] Water the plants š½
- [ ] Buy milk ā«
becomes
- [ ] Ship v1 šŗ š
2026-08-20
- [ ] Buy milk ā«
- [ ] Reply to email š¼
- [ ] Write the README
- [ ] Water the plants š½
The cursor stays where it was
After sorting, the cursor is still on the same task, at the same spot in the line ā the list moves around it, so you can keep typing.
Sub-items travel with their parent
Indented lines below a task ā notes, links, nested checkboxes ā move together with it as one unit.
Special tasks go where you want them
For finished tasks (- [x]), in-progress ones (- [/]) and empty ones ā an
unfinished - [ ] with no text yet ā you pick one of three behaviours in the plugin
settings: sort them together with everything else, pin them to the top of the
block, or pin them to the bottom. Out of the box finished and empty tasks go to
the bottom, while in-progress ones are sorted along with the active tasks.
Pinned tasks keep their order relative to each other and never break the list in
two; any other status marker is always sorted as an ordinary active task.
Clearing out what's done
A second command, Remove completed tasks, deletes every - [x] of the block
at the cursor along with its sub-items, leaving the unfinished ones untouched.
It is in the right-click menu too, and only shows up when there is something to
remove.
Installation
Manual
- Download
main.jsandmanifest.jsonfrom the latest release - Put them into
<vault>/.obsidian/plugins/task-sorter/ - Reload plugins and enable Task Sorter in Settings ā Community plugins
BRAT
Install via BRAT:
artem98/obsidian_tasks_sort
Usage
Put the cursor on a task and either right-click and choose Sort task block at cursor, or run the same command from the command palette. The menu entry only shows up when the cursor is on a task. The same goes for Remove completed tasks, which throws away the finished items of that block.
Configure Obsidian hotkeys
- Open Obsidian Settings
- Go to Hotkeys
- Filter "Task Sorter" and you should see both commands
- Click on
+icon and press hotkey (e.g.ā + Shift + S)
Ideas and issues
Got an idea, a suggestion, or something that doesn't work? Feel free to open an issue ā bug reports and feature requests are equally welcome.
Development
npm install
npm run dev # watch build
npm run build # type-check + production bundle
npm run lint
npm test # unit tests for the sorting logic
Copy main.js and manifest.json into
<vault>/.obsidian/plugins/task-sorter/ and reload the plugin to test a build.
License
MIT
If the plugin saves you a bit of time, you can buy me a coffee. Entirely optional.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.