Nikolai Voronin52 downloadsKeeps parent checkboxes in sync with their children's status using configurable rules.
Task Cascade keeps a parent checklist item's status in sync with its children, and adds a quick shortcut for tagging a task to be deleted once it's done.
※ Note: Tasks are ordered from top to bottom. Their horizontal positions in the image are adjusted for compactness and do not reflect the actual layout.
[!WARNING] Task Cascade 1.0.0 and later requires Obsidian 1.13.0 or newer due to its use of the declarative settings API.
If you're using an older version of Obsidian, install Task Cascade 0.2.2, the last compatible release.
Task Cascade watches editor changes with a short debounce, walks the checklist bottom-up so children are resolved before their parents, and only rewrites a checkbox's marker when the computed status actually differs from what's on the line — so it never touches lines that don't need to change.
| Marker | Status |
|---|---|
[ ] |
Todo |
[x] |
Done |
[-] |
Cancelled |
[/] |
In Progress |
[>] |
Forwarded |
[<] |
Scheduling |
A checkbox whose status is a single character that isn't one of the markers above (e.g. - [⁇]) counts toward its parent's rules as a configurable default status — Todo, Done, Cancelled, or In Progress (Todo by default). Plain list items that aren't checkboxes at all, and malformed checkboxes with empty (- []) or multi-character (- [xyz]) brackets, are always ignored — they never affect a parent's computed status.
Whenever you edit a checklist, Task Cascade looks at each parent's children and decides whether the parent's own status should change. The decision is made by an ordered list of rules — the first rule that matches wins.
Each rule has:
and, or, and not (e.g. done or cancelled or forwarded).The default rules ship ready to use:
If nothing matches, the parent is left untouched.
Open Settings → Community plugins → Task Cascade to:
#task. shortcut — typing a period immediately after #task on a checklist line removes the period and appends 🏁delete to the line, so you can keep typing the task's description right after the tag. Turn this off if you don't use it.If Task Cascade isn't available in the Community plugins catalog yet, you can install it manually from the GitHub repository:
main.js, manifest.json, and styles.css.task-cascade inside your vault's .obsidian/plugins/ directory and place the three downloaded files there.Requirements: Node.js and npm installed.
Check esbuild.config.mjs exists. The dev/build npm scripts call it directly (node esbuild.config.mjs) — without it the build won't even start. The standard config bundles from src/main.ts to main.js, with external: ["obsidian", "electron", ...], format: "cjs".
Install dependencies:
npm install
Creates node_modules and package-lock.json, using devDependencies (esbuild, typescript) and dependencies (obsidian).
Build the plugin:
npm run build
Equivalent to tsc -noEmit -skipLibCheck && node esbuild.config.mjs production — type-checks first, then produces a minified main.js.
Watch mode for development (optional):
npm run dev
Runs esbuild in watch mode without minification (node esbuild.config.mjs without production).
Verify the build succeeded by checking npm run build exits with code 0 and main.js has been updated.