mcpField
O
obsidian-direct

obsidian-direct

github.com/alphaonedev生产力86 次安装
代码仓库

关于 obsidian-direct

obsidian-direct 是用于通过程序直接管理 Obsidian vault 的技能,适合自动化笔记和查询工作流。它支持文件与文件夹操作、模板插入、Dataview 查询及插件 API 调用。

主要功能

  1. 01创建文件与文件夹
  2. 02追加、覆盖或插入文本
  3. 03插入 Markdown 模板
  4. 04执行 Dataview 查询
  5. 05调用插件 API

适用场景

  1. 01按日期自动创建日记
  2. 02将查询结果追加到笔记
  3. 03根据输入更新 vault 文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill obsidian-direct

安装后在 Claude Code 中输入/obsidian-direct确认已加载。

详细介绍

obsidian-direct

用途

此技能可直接以编程方式访问 Obsidian 仓库,用于创建文件、编辑文件、插入模板、运行 Dataview 查询以及调用插件 API 等任务,从而实现笔记工作流自动化。

适用场景

在脚本中自动执行 Obsidian 操作时使用此技能,例如根据外部数据生成每日笔记、根据用户输入更新文件,或运行 Dataview 查询以获取元数据。也可用于手动管理仓库效率低下的场景,例如 CI/CD 流水线或 AI 驱动的内容创作。

主要功能

  • 使用指定路径和内容在仓库中创建文件或文件夹。
  • 通过追加、覆盖或在特定行插入文本来编辑现有文件。
  • 将模板(例如预定义的 .md 模板文件)插入新笔记或现有笔记。
  • 执行 Dataview 查询以检索或操作笔记元数据。
  • 调用 Obsidian 插件 API 来扩展自定义功能,例如查询特定插件的数据。

使用模式

通过类似 call_skill('obsidian-direct', subcommand, params) 的函数调用来使用此技能,其中 subcommand 可以是:create-file、edit-file、insert-template、run-query 或 plugin-call。始终将必需参数作为字典传入,例如 {'path': 'notes/file.md', 'content': 'Text here'}。对于需要身份验证的操作,通过环境变量 $OBSIDIAN_API_KEY 传入 API 密钥。按顺序组织调用:先创建文件,再编辑文件。复杂参数请使用 JSON,例如 {'query': '{"from": "folder", "where": "file.name contains 'key'"}'}。避免并发调用,以免仓库发生冲突。

常用命令/API

API 端点:对 https://api.openclaw.com/v1/obsidian/vault/{vault-id}/files 使用 POST 执行文件操作,请求正文采用如下 JSON 格式:{"path": "notes/file.md", "content": "Hello"}。对应的 CLI 命令:obsidian-direct create-file --vault-id myvault --path "notes/file.md" --content "Hello" --api-key $OBSIDIAN_API_KEY。

代码片段:

params = {'path': 'Daily/daily.md', 'content': 'Today\'s notes'}
result = call_skill('obsidian-direct', 'create-file', params)
print(result['file_path'])  # Outputs: Daily/daily.md

Dataview 用法:obsidian-direct run-query --vault-id myvault --query "LIST file.name FROM \"folder\" WHERE file.mtime > date(2023-01-01)" --api-key $OBSIDIAN_API_KEY。

配置格式:参数必须是 JSON 对象,例如 insert-template 使用 {"template": "path/to/template.md", "insert_at": 5}。标志:--vault-id(必需)、--dry-run(模拟操作,不做更改)、--force(覆盖文件)。

集成说明

将其他技能的输出作为输入传入即可进行集成,例如将搜索技能的结果作为 create-file 的内容。身份验证:在环境中设置 $OBSIDIAN_API_KEY,例如 export OBSIDIAN_API_KEY=your_api_key,并在调用中传入该密钥。如果仓库位于远程,请确保通过 Obsidian 的同步插件进行同步。对于多技能工作流,可使用文件系统技能等工具进行串联,并将返回的文件路径作为参数。请先在本地仓库中测试集成,以免数据丢失。

错误处理

始终将技能调用放在 try-except 块中,以捕获 VaultError(例如文件不存在时返回 404)或 AuthError(例如 API 密钥无效时返回 403)等异常。检查响应代码:如果 result['status'] == 'error',记录错误消息并使用指数退避策略重试。常见问题:使用 --force 标志处理文件冲突,或解析 Dataview 错误以排查查询语法问题。示例:

代码片段:

try:
    call_skill('obsidian-direct', 'edit-file', {'path': 'notes/file.md', 'content': 'Updated text'})
except VaultError as e:
    if e.code == 404:
        call_skill('obsidian-direct', 'create-file', {'path': 'notes/file.md', 'content': 'Default'})
    else:
        raise

具体使用示例

  1. 自动创建每日笔记:先通过其他技能获取当前日期,然后调用 obsidian-direct create-file --vault-id myvault --path "Daily/{date}.md" --content "Notes for {date}" --api-key $OBSIDIAN_API_KEY。这会创建一个类似 Daily/2023-10-01.md 的新文件,并写入初始内容。
  2. 运行并插入 Dataview 结果:使用 obsidian-direct run-query --vault-id myvault --query "TASK FROM \"Tasks\" WHERE !completed" 查询任务,然后使用 obsidian-direct edit-file --path "Summary.md" --append result['query_output'] 将输出追加到摘要笔记中。

图关系

  • 相关:社区集群(例如,与文件管理技能共享标签)。
  • 连接:与“obsidian-sync”等 Obsidian 相关技能连接,用于同步库。
  • 关联:通用 API 技能,用于处理身份验证。
  • 重叠:笔记集群,用于内容操作。

评论

支持 Markdown