命令行工具
callumalpass/tasknotes avatar
callumalpass/tasknotes

TaskNotes:把 Obsidian 任务管理建在 Bases 之上的插件

该项目围绕「callumalpass/tasknotes」构建,面向真实业务场景提供可复用的开源实践方案,支持稳定落地与可扩展的项目实践。

2,125 个 Star222 个 ForkTypeScriptMIT

秒懂

它是什么?
TaskNotes 将每个任务存成独立 Markdown 笔记,所有视图都是 Bases 查询文件。它用自然语言解析和日历同步解决任务录入与展示的割裂问题,但依赖你对 Bases 的接受程度。
适合谁用?
适合已经熟悉 Obsidian Bases、愿意把任务数据当作纯文本管理的用户。不适合希望开箱即用、不想接触 .base 文件或公式属性的用户。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

任务即笔记,视图即查询

TaskNotes 解决的是 Obsidian 里任务管理的老问题:任务散落在各种插件里,数据格式不统一,迁移困难。它把每个任务存成一个独立的 Markdown 笔记,YAML frontmatter 里放状态、截止日期、优先级、上下文、项目、时间估算和时间条目。所有视图,包括任务列表、看板、日历和议程,都是 .base 文件,也就是 Obsidian Bases 核心插件的查询定义。这意味着没有插件专属数据库,任务数据是纯文本,任何工具都能读取和修改。这个设计直接回应了 Obsidian 用户对数据长期可访问的焦虑。

Bases 数据源与自定义视图类型

TaskNotes 注册为 Bases 的一个数据源,提供四种自定义视图类型:tasknotesTaskList、tasknotesKanban、tasknotesCalendar 和 tasknotesMiniCalendar。默认的议程文件是一个预配置的 tasknotesCalendar 列表视图,使用 listWeek 模式。任务笔记成为行,frontmatter 属性成为列。默认的 .base 文件里包含公式属性,比如 daysUntilDue 用 date(due) 和 today() 的差值除以 86400000 计算天数,isOverdue 判断任务是否过期且未完成,urgencyScore 综合优先级权重和剩余天数,efficiencyRatio 用 timeTracked 除以 timeEstimate 得出效率百分比。这些公式可以直接在 Bases UI 里编辑,也可以手工改 .base 文件。

自然语言创建与可配置字段

创建任务通过命令 TaskNotes: Create new task 触发,插件解析自然语言输入。比如输入 Buy groceries tomorrow #errands,它会自动提取截止日期和上下文标签。支持的解析语言包括英语、德语、西班牙语、法语、意大利语、日语、荷兰语、葡萄牙语、俄语、瑞典语、乌克兰语和中文,比 UI 语言列表多出意大利语、荷兰语、瑞典语和乌克兰语。所有属性名都可配置,如果你习惯用 deadline 而不是 due,可以在设置里重映射。frontmatter 是可扩展的,添加 energy-level 或 client 这样的字段后,它们立即出现在 Bases 的过滤和分组选项里。

重复任务的 RRULE 与实例物化

重复任务使用 RRULE 格式,比如 FREQ=WEEKLY;BYDAY=MO 表示每周一,配合 complete_instances 数组记录已完成的具体日期。当一个重复实例需要单独处理时,TaskNotes 可以把该次出现物化成一个普通任务笔记,用 recurrence_parent 指向父任务,occurrence_date 标明日期。物化后的笔记会继承父任务的计划元数据,包括计划时间、截止偏移、标签、上下文、项目、提醒、详情和时间估算,但不会复制重复规则、完成历史或时间条目。这个机制解决了重复任务中单次改动的需求,比如某周会议改期,你可以只调整那一次的笔记。

日历同步与时间追踪的边界

日历同步支持 Google 和 Microsoft 的 OAuth 认证,也支持任何 ICS 订阅源。时间追踪提供每个任务的开始停止操作、Pomodoro 计时器和会话历史。但这里有一个明显的边界:同步是单向还是双向,README 没有说明。它只提到 calendar sync with Google and Microsoft (OAuth) or any ICS feed,没有明确写事件能否从日历写回任务。如果你需要双向同步,比如在 Google 日历里改时间后任务笔记自动更新,文档里找不到依据。这个不确定性是采用前必须向作者确认的点。

扩展生态:HTTP API、CLI 与浏览器扩展

TaskNotes 提供可选的 HTTP API,配套有浏览器扩展和 CLI 工具,webhooks 可以在任务变化时通知外部服务。这些扩展让 TaskNotes 不局限于 Obsidian 内部,可以接入自动化流程。但 README 对 API 的具体端点、认证方式和数据格式没有展开,只给出了文档链接。对于工程师来说,这意味着你需要去 tasknotes.dev 或仓库的 docs 目录里查 HTTP_API.md 和 webhooks.md 才能评估集成成本。API 的存在是加分项,但文档的深度决定它是否实用。

维护节奏与许可证风险

仓库最后推送是 2026 年 8 月,最近发布了 5.0.0-beta.2,同时 4.12.5 仍在更新,说明项目处于活跃开发状态。5.0 版本引入破坏性变化的风险存在,升级前需要查看 changelog。许可证是 MIT,可以自由使用、修改和分发,没有 copyleft 义务。但要注意,TaskNotes 依赖 Obsidian 的 Bases 核心插件,而 Obsidian 本身是闭源软件,Bases 的功能和 API 由 Obsidian 公司控制。如果 Bases 未来发生变化,TaskNotes 的视图层可能被迫调整。这是任何 Obsidian 插件都有的平台依赖风险,TaskNotes 因为深度绑定 Bases 而更明显。

编辑结论

适合已经熟悉 Obsidian Bases、愿意把任务数据当作纯文本管理的用户。不适合希望开箱即用、不想接触 .base 文件或公式属性的用户。采用前先验证三点:你能否接受每个任务都是一个独立笔记的粒度,Bases 查询在大 vault 中的性能是否满足日常操作,以及 Google 或 Microsoft 日历同步的 OAuth 流程在你的网络环境下是否顺畅。TaskNotes 的核心承诺是数据可移植,这个承诺在 Markdown 和 YAML 层面成立,但视图逻辑完全绑定 Bases,迁移到其他工具时你需要重写所有视图。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记