obsidian-direct について
obsidian-directは、Obsidian vaultにプログラムからアクセスするスキルで、ノート作成やクエリの自動化に適しています。ファイル編集やテンプレート挿入、Dataviewクエリ、プラグインAPI呼び出しに対応します。
主な機能
- 01ファイルとフォルダーの作成
- 02テキストの追記・上書き・挿入
- 03Markdownテンプレートの挿入
- 04Dataviewクエリの実行
- 05プラグインAPIの呼び出し
活用シーン
- 01日付別の日次ノート作成
- 02クエリ結果のノートへの追記
- 03入力に基づくvaultファイルの更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill obsidian-directインストール後、Claude Code で/obsidian-directを入力して読み込まれたか確認します。
詳細
obsidian-direct
目的
このスキルを使うと、Obsidian の Vault にプログラムから直接アクセスし、ファイルの作成や編集、テンプレートの挿入、Dataview クエリの実行、プラグイン API の呼び出しなどを行えます。これにより、ノート作成ワークフローを自動化できます。
使用する場面
スクリプトで Obsidian の操作を自動化する場合にこのスキルを使用します。たとえば、外部データからデイリーノートを生成する、ユーザー入力に基づいてファイルを更新する、Dataview クエリを実行してメタデータを取得する、といった用途があります。CI/CD パイプラインや AI 主導のコンテンツ作成など、Vault を手動で管理するのが非効率な場面で使用してください。
主な機能
- 指定したパスと内容を使って、Vault に新しいファイルやフォルダーを作成します。
- 既存のファイルにテキストを追記、上書き、または特定の行に挿入して編集します。
- テンプレート(たとえば、あらかじめ用意した .md テンプレートファイル)を新規または既存のノートに挿入します。
- Dataview クエリを実行して、ノートのメタデータを取得または操作します。
- Obsidian のプラグイン API を呼び出して、プラグイン固有のデータを照会するなど、独自の拡張機能を利用します。
使用パターン
call_skill('obsidian-direct', subcommand, params) のような関数呼び出しでスキルを実行します。subcommand には、create-file、edit-file、insert-template、run-query、plugin-call のいずれかを指定します。必須の params は、例のように辞書形式で必ず指定してください。{'path': 'notes/file.md', 'content': 'Text here'}。認証が必要な操作では、環境変数 $OBSIDIAN_API_KEY を使って API キーを渡します。呼び出しは順番に行います。最初にファイルを作成し、その後で編集してください。複雑な params には JSON を使用します。例:{'query': '{"from": "folder", "where": "file.name contains 'key'"}'}。Vault の競合を防ぐため、同時に呼び出すことは避けてください。
一般的なコマンド/API
API エンドポイント:ファイル操作には https://api.openclaw.com/v1/obsidian/vault/{vault-id}/files に POST リクエストを送信し、{"path": "notes/file.md", "content": "Hello"} のような JSON ボディを指定します。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。
設定形式:params は、insert-template の場合は {"template": "path/to/template.md", "insert_at": 5} のような JSON オブジェクトで指定する必要があります。フラグ:--vault-id(必須)、--dry-run(変更を加えずにシミュレーション)、--force(ファイルを上書き)。
統合に関する注意
他のスキルの出力を入力として渡すことで統合できます。たとえば、検索スキルの結果を create-file の content として使用します。認証:環境に $OBSIDIAN_API_KEY を設定します。例:export OBSIDIAN_API_KEY=your_api_key。また、呼び出しにもこのキーを含めてください。リモートの場合は、Obsidian の sync プラグインを使って Vault が同期されていることを確認してください。複数のスキルを使うワークフローでは、返されたファイルパスを引数として使い、file-system スキルなどのツールと連携します。データ損失を防ぐため、まずローカルの Vault で統合をテストしてください。
エラー処理
VaultError(ファイルが見つからない場合の 404 など)や AuthError(API キーが無効な場合の 403 など)の例外を捕捉できるよう、スキルの呼び出しは必ず try-except ブロックで囲んでください。レスポンスコードを確認し、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
具体的な使用例
- デイリーノートの作成を自動化する:まず別のスキルで現在の日付を取得し、次に
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 のような新しいファイルが作成されます。 - 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 スキル。
- 重複:コンテンツ操作に使うノート作成クラスター。