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

To-Do to Done Mover

wenzel1983wenzel1983523 downloads

Move completed checkbox tasks (with their sub-tasks) into a Done section — via right-click, command, or automatically.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

An Obsidian plugin that quickly moves completed checkbox tasks — including their indented sub-tasks — from a to-do list into a ### Done section of the same note.

🌍 Languages: English (this page) · Deutsch The plugin interface follows Obsidian's UI language: English by default, German when Obsidian is set to German.

Demo

The To-Do to Done Mover plugin in action

Features

  • Right-click menu in the editor:
    • Move completed tasks to Done — moves every fully completed task.
    • Move selection to Done — moves the task blocks touched by the current text selection (only shown when text is selected).
  • The same actions are available as commands (command palette, can be bound to hotkeys).
  • Auto mode (optional): as soon as a task is checked, it moves to Done automatically — but only when the task and all of its sub-tasks are checked.
  • Excluded folders/files (optional): auto mode stays inactive in the configured vault paths (including subfolders); manual commands still work there.
  • Sub-tasks move along with their parent; indentation is preserved.
  • Optionally appends a completion date ✅ YYYY-MM-DD to each moved, checked line (no duplicate dates).
  • If the ### Done heading does not exist, it is created at the end of the note.

Settings

Setting Description Default
Auto mode Move completed tasks automatically off
Done heading Name of the target heading Done
Append completion date Append a ✅ date to moved lines on
Excluded folders/files Vault paths (one per line) where auto mode stays inactive empty

Usage

  1. Open a note that contains a checkbox to-do list.
  2. Right-click in the editor and choose an action, or run the matching command from the command palette.
  3. Completed tasks are moved under the configured Done heading.

Disclosures

  • The plugin works entirely offline and makes no network requests.
  • It collects no telemetry and stores no data outside your vault.
  • It only modifies the note in which a move action runs (manually or via auto mode) and never touches other files.
  • Settings are stored in the plugin's data.json inside your vault's configuration folder.
  • No account, payment, or external service is required.

Build from source

npm install
npm test          # unit tests (Vitest)
npm run build     # produces main.js

Install into a vault

Copy main.js and manifest.json into <Vault>/.obsidian/plugins/todo-done-mover/, then enable the plugin under Settings → Community plugins.

For development you can use the project folder directly as the plugin folder (npm run dev for a watch build).

Releases

Pushing a git tag triggers the GitHub Actions workflow in .github/workflows/release.yml, which builds the plugin and attaches main.js and manifest.json to a new GitHub release. Make sure the tag matches the version in manifest.json.

Project structure

File Purpose
main.ts Plugin class: commands, context menu, auto mode
src/taskParser.ts Markdown parsing, section and block detection
src/mover.ts Pure move logic (moveCompletedTasks, moveSelectedTasks)
src/settings.ts Settings UI
src/exclusions.ts Path-exclusion matching for auto mode
src/i18n.ts UI string localization (English / German)
src/types.ts Shared types and defaults
src/*.test.ts Unit tests

taskParser.ts, mover.ts and exclusions.ts have no Obsidian dependencies, so they are unit-testable without a running Obsidian instance.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Move completed checkbox tasks and their indented sub-tasks into a Done section in the same note, preserving indentation and task hierarchy. Run via right-click or command palette, enable auto mode to move tasks when fully checked, and optionally append a completion date to moved lines.
TasksAutomationCommands
Details
Current version
1.0.4
Last updated
4 weeks ago
Created
3 months ago
Updates
5 releases
Downloads
523
Compatible with
Obsidian 1.0.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
wenzel1983wenzel1983donnervs
grimheim.de
GitHubdonnervs
donnervs
donner_v_s
  1. Community
  2. Plugins
  3. Tasks
  4. To-Do to Done Mover

Related plugins

Task Collector

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

Actions URI

Add additional `x-callback-url` endpoints to the app for common actions — it's a clean, super-charged addition to Obsidian URI.

Persistent Graph

Save and restore the positions of nodes on your graph.

Todoist Sync

Materialize Todoist tasks within your notes.

Rollover Daily Todos

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

Attachment Management

Customize attachment path, auto-rename attachments, etc.

Shell commands

Define system commands that you want to execute via command palette, hotkeys, URI links or automated events. E.g. open external applications or perform automated file modifications.

TaskNotes

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

BRAT

Easily install a beta version of a plugin for testing.

Homepage

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