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

Inline Todo

冰块冰块1 downloads

Inline todos anywhere in a line: []text/ and [x]text/. Multi-line content, native Markdown inside, click to toggle, source reveals on cursor, skipped in code, JS API for other plugins.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates2

English | 中文说明见下方

Checkable inline todos anywhere in a line for Obsidian — not just at the start of a list item.

Buy groceries[]milk /[]bread /[x]report done/

A todo can also span[]several lines
within the same paragraph,
until the slash/ and normal text continues here.

Features

  • Inline syntax: []text/ = unchecked, [x]text/ = checked (strikethrough). The todo only covers the text between the markers.
  • Multi-line: content may span soft line breaks within the same paragraph.
  • Native Markdown inside: bold, italics, highlights, inline code, links etc. inside the markers are rendered by Obsidian as usual — the plugin only draws the checkbox and the "done" style, and never interferes with inner syntax.
  • Click to toggle in both Live Preview and Reading mode. State is written back to the file ([] ↔ [x]).
  • Cursor reveals source: place the cursor inside a todo in Live Preview and it shows the raw []text/ so you can edit it, like native Markdown syntax does.
  • Safe by default: markers inside inline code / code blocks are ignored. Source mode always shows raw text. An unmatched [] or / never renders.
  • Escaping: a literal slash inside the content is written as \/.
  • JS API for other plugins and statistics scripts (see below).

Syntax

Syntax Meaning
[]text/ unchecked inline todo
[x]text/ checked inline todo (strikethrough)
\/ inside content literal /
(single line break inside) keeps the todo open (same paragraph only)

Install

  • Community plugins: search Inline Todo (pending review).
  • Manual: download main.js, manifest.json, styles.css from the latest release into <vault>/.obsidian/plugins/inline-todo/ and enable it.

For developers / statistics

The plugin exposes a public API so other plugins and scripts can read inline todos (they are not list items, so the Tasks plugin / Dataview task lists will not see them — use this API instead):

const api = app.plugins.plugins['inline-todo']?.api;

// All inline todos of one note (in document order)
const todos = await api.getTodos('notes/today.md');
// [{ checked: false, text: 'milk', raw: '[]milk /', index: 12, line: 3, column: 4 }, ...]

// Scan the whole vault: { 'path/to/note.md': [todos...] }
const all = await api.getAll();

// Subscribe to toggles (callback receives the file path)
const ref = api.onChanged((path) => console.log('changed:', path));
// app.workspace.offref(ref) to unsubscribe

DataviewJS example — count open inline todos per note:

const api = app.plugins.plugins['inline-todo']?.api;
const all = await api.getAll();
const rows = Object.entries(all).map(([path, todos]) => ({
  note: path,
  open: todos.filter(t => !t.checked).length,
  done: todos.filter(t => t.checked).length,
}));
dv.table(['note', 'open', 'done'], rows.map(r => [r.note, r.open, r.done]));

中文说明

在 Obsidian 里让一行中的任意位置都能放可勾选的待办,不再受“待办必须是列表项”的限制。

买菜[]牛奶 /[]面包 /[x]周报写完了/

待办也可以[]跨行书写,
只要在同一个段落内,
到斜杠为止/ 后面就恢复普通文字。

语法

写法 含义
[]内容/ 未完成待办
[x]内容/ 已完成待办(内容自动划删除线)
内容里的 \/ 字面斜杠 /
段落内换行 待办继续,跨段落不行

行为说明

  • 实时预览与阅读模式都渲染,点击复选框直接写回源文件([] ↔ [x])
  • 光标进入待办范围(实时预览)时自动露出原始语法,方便编辑
  • 源码模式始终显示原始语法
  • 行内代码、代码块中的标记不会误渲染;没有结束符的 [] 也不会
  • 待办内部的加粗、斜体、高亮、链接等一切语法都按 Obsidian 原生规则渲染,插件只负责待办框和完成样式

给插件开发者 / 统计脚本

行内待办不是列表任务,所以 Tasks、Dataview 的任务列表默认看不到它们。本插件提供公开 API:

const api = app.plugins.plugins['inline-todo']?.api;

await api.getTodos('笔记.md');  // 该笔记全部行内待办
await api.getAll();             // 全库扫描 { 路径: 待办数组 }
api.onChanged(path => { ... }); // 监听勾选变化

每个待办对象包含:checked(是否完成)、text(内容,已还原转义)、index(源文偏移)、line / column(行/列,从 0 计)。

DataviewJS 统计示例见上文 English 部分。

License

MIT © icecode825

HealthExcellent
ReviewPassed
About
Create checkable inline todos anywhere in a line using []text/ for unchecked and [x]text/ for checked items. Toggle checks in Live Preview and Reading view, keep native Markdown inside todos, span soft line breaks within a paragraph, write state back to the file, and expose a JS API.
TasksDevelopers
Details
Current version
0.3.1
Last updated
8 hours ago
Created
8 hours ago
Updates
2 releases
Downloads
1
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
冰块冰块icecodes
GitHubicecode825
  1. Community
  2. Plugins
  3. Tasks
  4. Inline Todo

Related plugins

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Local REST API with MCP

Unlock your automation needs by interacting with your notes over a secure REST API.

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering. Maintained by Clare Macrae and Ilyas Landikov, created by Martin Schenck.

TaskNotes

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

Git

Integrate Git version control with automatic backup and other advanced features.

Day Planner

Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.

Hot Reload

Automatically reload in-development plugins when their files are changed

Checklist

Consolidate checklists across all files into a single view.

Operon

Task and project management system that unifies inline tasks and file-based tasks in the same workflows with Tables, Filters, Calendars, Kanban boards, Gantt views, Canvas, and time tracking.

BRAT

Easily install a beta version of a plugin for testing.