用途
obsidian-capture 用于将待办(todos)、日志(logs)、学习记录(learnings)和反思(reflections)追加到 Obsidian 的每日或每周笔记中,并运行 agent 自身的相关操作。其核心原则是:一次 capture 对应一次 scripts/capture.py 调用。脚本负责所有确定性工作——解析今天的每日笔记或本周的每周笔记(若缺失则从 vault 模板创建)、路由到正确的分区、在追加前填充空的占位槽、格式化 Tasks 插件日期——因此永远不要手动编辑笔记。
主要能力
脚本提供以下命令:
scripts/capture.py todo "回 offer 邮件":写入 daily 的 ✅ 其他分区,截止今天。scripts/capture.py todo "准备 design review" --must:写入 daily 的 🎯 今天必须完成分区,截止今天。scripts/capture.py todo "写 freshrss theme" --weekly:写入 weekly 的 ## Todos 分区,截止日期为今天+3天,且不超过周日。scripts/capture.py todo "读论文" --due friday -p high:任意 todo,显式指定截止日期并设置 ⏫ 优先级。scripts/capture.py log "和 recruiter 通话":写入 daily 的 🪵 Log 分区,带当前时间戳(可用 --time HH:MM 回填)。scripts/capture.py learned "TIL 内容":写入 daily 的 📝 今日记 → 新知:分区。scripts/capture.py diary "发生的事":写入 daily 的 📝 今日记 → 新事:分区。scripts/capture.py fun "有趣的事":写入 weekly 的 ## Something Fun This Week 分区。scripts/capture.py reflect "杠杆" "答案全文":写入 weekly 的 Reflections,位于匹配该子串的问题下方。scripts/capture.py done "package 邮件":勾选第一个匹配的未完成 #agent-todo(优先今天的笔记,然后全部),并追加 ✅ 日期。scripts/capture.py annotate "加 CI" "blocked: 缺权限":在第一个匹配的未完成 #agent-todo 下追加子条目。scripts/capture.py todo "给 skills repo 加 CI" --agent --ctx "context: repo ~/Local/wilbeibi-skills,GitHub Actions 跑 skill lint" --ctx "done-when: push 后 Actions 全绿":创建 agent 自有待办(#agent-todo),供之后可能较弱的 agent 冷启动执行。scripts/capture.py agenda:列出截止日期 ≤ 今天的未完成 #agent-todo 及其上下文,显示 file:line(--days 默认 90)。
--due 接受 today、tomorrow、+Nd、mon..sunday、this-week、next-week、YYYY-MM-DD、none——应直接传递用户的说法,而不是自行计算日期。运行 --help 查看其余参数。
使用方式
需要设置环境变量 $OBSIDIAN_VAULT,并安装 python3(仅使用标准库)。每次 capture 调用一次脚本,脚本会打印写入的文件、分区和确切行号,应将其作为确认信息转达,然后停止。如果脚本报错(分区/问题/待办未匹配),应修正参数,而不是回退到手动编辑。
判断规则(模型唯一需要决定的部分)
- 普通 todo 属于人类;带
--agent的属于 agent。agenda/done/annotate只匹配#agent-todo行,因此不会触碰人类 todo——但未经对照其自身的done-when:检查,绝不要标记完成。 - 保持 capture 文本使用用户所用的语言;不要翻译或改写。
- “必须 / must / today's deadline / blocking” → 使用
--must;否则为普通 todo。 - Daily 与 weekly:默认 daily。仅当用户说 weekly / 本周,或任务以周为范围且无固定日期时,才使用
--weekly。截止日期很远的 todo 仍写入今天的 daily——Tasks 插件通过其 📅 日期查找,而非文件位置。 - “让 agent 做 / 给 agent 记” → 使用
--agent。执行者可能是没有对话历史的弱模型,因此 todo 必须可冷启动执行:用--ctx "context: ..."提供绝对路径/仓库/URL,用--ctx "done-when: ..."提供验收标准。从当前对话中提取具体信息;如果无法使其自包含,应询问用户,而不是记录一个模糊的 todo。(脚本拒绝没有--ctx的--agent。)
适用场景
适用于使用 Obsidian 管理每日/每周笔记,并希望将待办、日志、学习记录、反思等快速、规范地追加到对应分区的用户。也适用于需要为后续 agent 创建可冷启动执行任务的场景。
限制
需要 $OBSIDIAN_VAULT 环境变量和 python3(仅标准库)。脚本只匹配 #agent-todo 行进行 agenda/done/annotate 操作。--agent 必须配合 --ctx 使用。其他功能、收费、价格、平台、效果或使用步骤在提供的资料中暂未提供。