KB Benton447 downloadsInteractive task checkboxes in Markdown table cells and lists, with custom statuses such as done, in progress, cancelled, forwarded, and more, styled by your theme.
An Obsidian plugin for interactive task checkboxes inside Markdown table cells — and custom task statuses everywhere, rendered by your theme.

A Markdown table cell is inline-only, so a task like - [ ] One written in a cell renders as dead text: Obsidian never turns it into a checkbox, and task plugins skip it. Flexible Tasks turns those cell tasks into real, interactive checkboxes and writes toggles back to the source file. It also adds a right-click status menu to ordinary block-list tasks, so you can set any status without retyping the marker.
[ ], [x], [/], [-], [>], [?], [!], and any other single character round-trip faithfully in the source.data-task="<char>" in place; your checkbox theme draws the status icon. Nothing is overridden.Status icons are drawn by your checkbox theme, not by the plugin. Flexible Tasks puts a real checkbox carrying data-task="<char>" in place; any theme that styles task statuses from data-task renders the icons.
data-task mechanism means they generally work once their alternative-checkbox styling is enabled.
Whatever the theme, the status character is always preserved in your Markdown — only the rendered glyph depends on the theme.
Write a table whose cells contain tasks:
| Today | This Week | Someday |
| :---------- | :------------- | :--------------- |
| - [>] One | - [/] Draft PR | - [ ] Learn Rust |
| - [x] Two | - [ ] Review | - [-] Old idea |
| - [/] Three | - [>] Deferred | - [?] Maybe |
Each - [ ] becomes a clickable checkbox.
Every status beyond a plain done/to-do toggle lives on the right-click — on both surfaces, so nothing is hidden behind a hotkey or command palette entry:

[ ], [x], [/], [-], [>], [?], [!]).In short: left-click is the quick done/to-do toggle; right-click is how you reach the full status set.
npm install
npm run dev # watch build -> main.js
npm run build # type-check + production bundle
For a live dev loop, symlink this folder into a test vault's plugin directory:
ln -s "$(pwd)" /path/to/TestVault/.obsidian/plugins/flexible-tasks
Then enable Flexible Tasks in the vault's community-plugin settings and use "Reload app without saving" (or the Hot-Reload plugin) after each build.
Bug reports, ideas, and pull requests are welcome — see CONTRIBUTING.md for the dev loop, the UAT plan, and the defer-to-theme architecture to keep in mind.
GPL-2.0-only. See LICENSE.