Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Checkboxes: Sort done to bottom

vin-cfvin-cf53 downloads

Sort completed checkboxes to the bottom of the list as soon as they’re checked.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

A demo of the plugin working

An Obsidian plugin that keeps your checkboxes sorted. When you check off an item, it sinks to the bottom of the list automatically.

How it works

The moment you tick a checkbox, the plugin reorders the surrounding list block: unchecked items stay at the top, checked items move to the bottom. A subtle divider line appears between the two groups so you can see at a glance what's done and what isn't.

  • Works in Reading or Editor mode.
  • Only the contiguous checkbox block containing the changed item is reordered; other lists in the note are not affected.
  • Child (indented) items stay attached to their parent item.
  • The plugin sorts on user edit.

Installation

From the Obsidian community plugin browser (recommended)

  1. Open Settings → Community plugins
  2. Turn off Safe mode if prompted
  3. Click Browse and search for Checkboxes: Sort done to bottom
  4. Install and enable

Development workflow

Prerequisites

  • Node.js ≥ 16
  • npm

Setup

npm install

Development (watch mode)

Run the build in watch mode — it recompiles main.ts to main.js on every save:

npm run dev

For the fastest feedback loop, clone the repo directly into your vault's plugin folder:

<vault>/.obsidian/plugins/checkbox-auto-sort/

After each recompile, open the Command palette in Obsidian and run Reload app without saving (or toggle the plugin off and on in Settings → Community plugins) to pick up the latest build.

Production build

npm run build

This type-checks first (tsc -noEmit) then bundles with esbuild. The output is main.js.

Linting

npx eslint main.ts

How the code works

main.ts registers two CodeMirror 6 extensions:

Extension Role
makeSorterPlugin() ViewPlugin — watches for document changes, identifies the affected checkbox block, and dispatches a transaction that sorts checked items to the end of the block
makeDividerField() StateField — scans the document on every relevant change and adds a checkbox-divider-line CSS decoration to the first checked item in each sorted block

A SORTED_EFFECT state effect acts as a re-entry guard so the sorter ignores transactions it produced itself, preventing infinite update loops.

styles.css draws the divider using a top border on the decorated line, themed with Obsidian's --background-modifier-border CSS variable so it adapts to light and dark themes automatically.

98%
HealthExcellent
ReviewPassed
About
Sort checked items to the bottom of their checkbox list automatically when you check them. Display a subtle divider between unchecked and checked groups, preserve indented child items with their parent, and reorder only the contiguous checkbox block containing the changed item in Editor or Reading mode.
TasksAutomation
Details
Current version
1.0.2
Last updated
Last week
Created
9 months ago
Updates
3 releases
Downloads
53
Compatible with
Obsidian 1.12.0+
Platforms
Desktop, Mobile
License
0BSD
Report bugRequest featureReport plugin
Author
vin-cfvin-cf
github.com/vin-cf
GitHubvin-cf
  1. Community
  2. Plugins
  3. Tasks
  4. Checkboxes: Sort done to bottom

Related plugins

Task Collector (TC)

Change task status and collect tasks within a document using hotkeys and context menus.

Rollover Daily Todos

Rollover any unchecked checkboxes from your last daily note into today's note.

Todoist Sync

Materialize Todoist tasks within your notes.

Tasks CalDAV Sync

Bidirectional sync between tasks and CalDAV servers.

QuickAdd

Quickly add new notes or content to your vault.

Templater

Create and use dynamic templates.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

TaskNotes

Note-based task management with calendar, pomodoro and time-tracking integration.

Day Planner

Day planning from a task list in a Markdown note with enhanced time block functionality.

BRAT

Easily install a beta version of a plugin for testing.