操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。
obsidian : Obsidian 库 = 磁盘上一个普通文件夹, 带有 Markdown 文件..是一项面向实际任务的技能,主要用于错误结构( 典型): :. 注: *. md( 普通文本 Markdown;编辑器编辑器).;
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
Obsidian 仓库(vault)= 磁盘上一个包含 Markdown 文件的普通文件夹。
仓库结构(典型):
*.md(纯文本 Markdown;可用任意编辑器编辑).obsidian/(工作区 + 插件设置;请勿通过脚本修改)*.canvas(JSON 格式)Obsidian 桌面端在配置文件中记录所有仓库(该文件为唯一可信来源):
~/Library/Application Support/obsidian/obsidian.json~/.config/obsidian/obsidian.jsonnotesmd-cli 从该配置文件解析仓库列表;仓库名称即其文件夹名(路径后缀)。
执行任何命令前,请务必先确认默认仓库:
notesmd-cli print-default --path-only 2>/dev/null && echo "OK" || echo "NOT_SET"
若输出 NOT_SET,请配置默认仓库:
notesmd-cli set-default "VAULT_NAME"
切勿猜测仓库路径 —— 请直接读取配置文件,或使用 print-default 命令获取准确路径。
notesmd-cli print-default # 显示默认仓库名称及路径 notesmd-cli print-default --path-only # 仅显示路径 notesmd-cli list # 列出仓库内所有笔记与文件夹 notesmd-cli list "Folder" # 列出指定文件夹内的内容
notesmd-cli search "query" # 模糊匹配笔记标题 notesmd-cli search-content "query" # 在笔记正文中搜索(显示匹配片段及所在行)
notesmd-cli print "path/note" # 输出笔记全文内容 notesmd-cli frontmatter "path/note" # 查看或修改笔记的 frontmatter
notesmd-cli create "Folder/Note" --content "..." --open # 创建新笔记 notesmd-cli create "Folder/Note" --content "..." --append # 追加内容至已有笔记 notesmd-cli create "Folder/Note" --content "..." --overwrite # 覆盖已有笔记
注意:create 命令依赖 Obsidian URI 处理器(需已安装 Obsidian)。请避免使用隐藏的点文件夹路径(如 .folder/)。
notesmd-cli move "old/path/note" "new/path/note" # 重命名或移动(自动更新 [[wikilinks]]) notesmd-cli delete "path/note"
在任意命令后添加 --vault "Name" 参数即可指定目标仓库:
notesmd-cli print "2025-01-10" --vault "Work" notesmd-cli search "meeting" --vault "Personal"
notesmd-cli daily # 打开或创建今日的每日笔记 notesmd-cli daily --vault "Work" # 指定特定仓库
date +%Y-%m-%d # 今天 # 昨天(GNU 版优先,BSD 版作为备选): date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d # 上周五: date -d "last friday" +%Y-%m-%d 2>/dev/null || date -v-friday +%Y-%m-%d # N 天前: date -d "3 days ago" +%Y-%m-%d 2>/dev/null || date -v-3d +%Y-%m-%d
# 日志条目 notesmd-cli create "$(date +%Y-%m-%d)" --content "- Did the thing" --append # 待办任务 notesmd-cli create "$(date +%Y-%m-%d)" --content "- [ ] Buy groceries" --append # 带时间戳的日志 notesmd-cli create "$(date +%Y-%m-%d)" --content "- $(date +%H:%M) Meeting notes here" --append # 指定自定义文件夹(例如 Daily Notes 插件所用文件夹) notesmd-cli create "Daily Notes/$(date +%Y-%m-%d)" --content "- Entry" --append
notesmd-cli print "$(date +%Y-%m-%d)" # 今日 notesmd-cli print "$(date -d yesterday +%Y-%m-%d 2>/dev/null || date -v-1d +%Y-%m-%d)" # 昨日 notesmd-cli print "2025-01-10" # 指定日期
创建含内容的新笔记:
notesmd-cli create "Projects/My Project" --content "# My ProjectnnNotes here." --open
查找并读取笔记:
notesmd-cli search "meeting" notesmd-cli print "path/from/search/result"
安全重命名(保持 wikilink 引用完整):
notesmd-cli move "old/note name" "new/folder/note name"
在笔记正文中搜索:
notesmd-cli search-content "TODO" notesmd-cli search-content "project alpha"
在适用场景下,可直接编辑 .md 文件(无需 CLI),Obsidian 会自动识别变更。