adamk25 downloadsMoves checked checklist items to the bottom of their task group.
An Obsidian plugin that keeps your checklists tidy by moving completed items to the bottom of their task group.
When you check off a task, the unchecked items stay at the top and the checked ones sink to the bottom — so what's left to do is always front and center.
Before:
- [x] Buy milk
- [ ] Walk the dog
- [x] Pay rent
- [ ] Call the dentist
After sorting:
- [ ] Walk the dog
- [ ] Call the dentist
- [x] Buy milk
- [x] Pay rent
Nested checklists are sorted within their parent too:
- [ ] Trip prep
- [ ] Book hotel
- [x] Book flights
Ctrl/Cmd + P) and run Sort Checked Tasks: Sort current note. You can assign a hotkey to it under Settings → Hotkeys.Only contiguous runs of checklist items at the same indentation are treated as a group. Headings, blank-line-separated lists, and non-task text act as natural boundaries between groups, which are each sorted independently.
main.js and manifest.json from the latest release.VaultFolder/.obsidian/plugins/sort-checked-tasks/.This project uses TypeScript and is bundled with esbuild.
npm install # install dependencies
npm run dev # build in watch mode
npm run build # type-check and produce a production main.js
npm test # run the unit tests (Vitest)
npm run lint # lint with ESLint + eslint-plugin-obsidianmd
The sorting logic lives in src/sort.ts as a pure, dependency-free function (sortTaskGroups), which makes it easy to test without mocking the Obsidian API — see src/sort.test.ts. The plugin lifecycle and Obsidian wiring live in src/main.ts.
MIT © Adam Kamsheh