obsidian-direct
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseobsidian-direct
obsidian-direct
Purpose
用途
This skill enables direct programmatic access to Obsidian vaults for tasks like file creation, editing, template insertion, Dataview queries, and plugin API calls, allowing automation of note-taking workflows.
本Skill可实现对Obsidian库的程序化直接访问,支持文件创建、编辑、模板插入、Dataview查询和插件API调用等任务,从而自动化笔记工作流。
When to Use
使用场景
Use this skill for automating Obsidian interactions in scripts, such as generating daily notes from external data, updating files based on user input, or running Dataview queries to fetch metadata. Apply it in scenarios where manual vault management is inefficient, like in CI/CD pipelines or AI-driven content creation.
在脚本中自动化Obsidian交互时使用本Skill,例如从外部数据生成每日笔记、根据用户输入更新文件,或运行Dataview查询以获取元数据。适用于手动管理库效率低下的场景,比如CI/CD流水线或AI驱动的内容创建。
Key Capabilities
核心功能
- Create new files or folders in the vault using specified paths and content.
- Edit existing files by appending, overwriting, or inserting text at specific lines.
- Insert templates (e.g., from a predefined .md template file) into new or existing notes.
- Execute Dataview queries to retrieve or manipulate note metadata.
- Call Obsidian plugin APIs for custom extensions, such as querying plugin-specific data.
- 使用指定路径和内容在库中创建新文件或文件夹。
- 通过追加、覆盖或在特定行插入文本的方式编辑现有文件。
- 将模板(例如预定义的.md模板文件)插入新笔记或现有笔记中。
- 执行Dataview查询以检索或操作笔记元数据。
- 调用Obsidian插件API进行自定义扩展,例如查询插件特定数据。
Usage Patterns
使用模式
Invoke the skill via a function call like , where subcommand is one of: create-file, edit-file, insert-template, run-query, or plugin-call. Always include required params as a dictionary, e.g., {'path': 'notes/file.md', 'content': 'Text here'}. For authenticated actions, pass the API key via env var . Structure calls sequentially: first create a file, then edit it. Use JSON for complex params, e.g., {'query': '{"from": "folder", "where": "file.name contains 'key'"}'}. Avoid concurrent calls to prevent vault conflicts.
call_skill('obsidian-direct', subcommand, params)$OBSIDIAN_API_KEY通过函数调用来调用本Skill,其中子命令为以下之一:create-file、edit-file、insert-template、run-query或plugin-call。务必以字典形式传入必填参数,例如。对于需要认证的操作,通过环境变量传递API密钥。按顺序调用:先创建文件,再编辑它。复杂参数使用JSON格式,例如。避免并发调用以防止库冲突。
call_skill('obsidian-direct', subcommand, params){'path': 'notes/file.md', 'content': 'Text here'}$OBSIDIAN_API_KEY{'query': '{"from": "folder", "where": "file.name contains \\'key\\'"}'}Common Commands/API
常用命令/API
API Endpoint: Use POST to for file operations, with JSON body like {"path": "notes/file.md", "content": "Hello"}. CLI equivalent: .
https://api.openclaw.com/v1/obsidian/vault/{vault-id}/filesobsidian-direct create-file --vault-id myvault --path "notes/file.md" --content "Hello" --api-key $OBSIDIAN_API_KEYCode Snippet:
skill
params = {'path': 'Daily/daily.md', 'content': 'Today\'s notes'}
result = call_skill('obsidian-direct', 'create-file', params)
print(result['file_path']) # Outputs: Daily/daily.mdFor 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_KEYConfig Formats: Params must be JSON objects, e.g., {"template": "path/to/template.md", "insert_at": 5} for insert-template. Flags: --vault-id (required), --dry-run (simulates without changes), --force (overwrites files).
API端点:文件操作使用POST请求到,JSON请求体示例为。对应的CLI命令:。
https://api.openclaw.com/v1/obsidian/vault/{vault-id}/files{"path": "notes/file.md", "content": "Hello"}obsidian-direct create-file --vault-id myvault --path "notes/file.md" --content "Hello" --api-key $OBSIDIAN_API_KEY代码片段:
skill
params = {'path': 'Daily/daily.md', 'content': 'Today\\'s notes'}
result = call_skill('obsidian-direct', 'create-file', params)
print(result['file_path']) # Outputs: Daily/daily.mdDataview相关命令:。
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对象,例如插入模板时使用。可用标志:--vault-id(必填)、--dry-run(模拟操作不实际修改)、--force(覆盖文件)。
{"template": "path/to/template.md", "insert_at": 5}Integration Notes
集成说明
Integrate by passing outputs from other skills as inputs, e.g., use a search skill's result as content for create-file. Authentication: Set in your environment, e.g., , and include it in calls. Ensure the vault is synced via Obsidian's sync plugin if remote. For multi-skill workflows, chain with tools like file-system skills by using the returned file paths as arguments. Test integrations in a local vault first to avoid data loss.
$OBSIDIAN_API_KEYexport OBSIDIAN_API_KEY=your_api_key通过将其他Skill的输出作为输入来进行集成,例如使用搜索Skill的结果作为create-file的内容。认证方式:在环境中设置,例如,并在调用时传入。如果是远程库,确保通过Obsidian的同步插件完成同步。对于多Skill工作流,可与文件系统类Skill联动,将返回的文件路径作为参数使用。请先在本地库中测试集成,避免数据丢失。
$OBSIDIAN_API_KEYexport OBSIDIAN_API_KEY=your_api_keyError Handling
错误处理
Always wrap skill calls in try-except blocks to catch exceptions like VaultError (e.g., 404 for missing files) or AuthError (e.g., 403 for invalid API key). Check response codes: if result['status'] == 'error', log the message and retry with exponential backoff. Common issues: Handle file conflicts with --force flag, or parse Dataview errors for query syntax. Example:
Code Snippet:
skill
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务必将Skill调用包裹在try-except块中,以捕获VaultError(例如文件不存在的404错误)或AuthError(例如API密钥无效的403错误)等异常。检查响应状态码:如果,记录错误信息并使用指数退避策略重试。常见问题:使用--force标志处理文件冲突,或解析Dataview查询语法错误。示例:
result['status'] == 'error'代码片段:
skill
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:
raiseConcrete Usage Examples
具体使用示例
- Automate daily note creation: First, get current date via another skill, then call . This creates a new file like Daily/2023-10-01.md with initial content.
obsidian-direct create-file --vault-id myvault --path "Daily/{date}.md" --content "Notes for {date}" --api-key $OBSIDIAN_API_KEY - Run and insert Dataview results: Query tasks with , then use the output in
obsidian-direct run-query --vault-id myvault --query "TASK FROM \"Tasks\" WHERE !completed"to append results to a summary note.obsidian-direct edit-file --path "Summary.md" --append result['query_output']
- 自动化每日笔记创建:首先通过其他Skill获取当前日期,然后调用。这将创建一个类似Daily/2023-10-01.md的新文件,并包含初始内容。
obsidian-direct create-file --vault-id myvault --path "Daily/{date}.md" --content "Notes for {date}" --api-key $OBSIDIAN_API_KEY - 运行并插入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']
Graph Relationships
关联关系
- Related to: community cluster (e.g., shares tags with file-management skills).
- Connected to: obsidian-related skills like "obsidian-sync" for vault syncing.
- Links with: general API skills for authentication handling.
- Overlaps with: note-taking cluster for content manipulation.
- 关联社区集群:例如与文件管理类Skill共享标签。
- 连接Obsidian相关Skill:如用于库同步的“obsidian-sync”。
- 链接通用API Skill:用于认证处理。
- 与笔记集群重叠:用于内容操作。",