Communitygithub.com

gmickel/obsidian-skill

Obsidian CLI(1.12+)向けエージェントスキル。Obsidian Vault内のノートの読み取り、作成、検索、整理を行います。

obsidian-skill とは?

このスキルは、Obsidian CLI(バージョン1.12以降)と連携して動作するAIエージェント向けのツールです。エージェントがObsidianアプリケーションの実行中にのみ利用可能な機能(インデックス、設定、コマンドレジストリ、開発者ランタイムに依存する動作)を安全かつ正確に操作できるようにします。通常のファイル操作には標準のファイルシステムツールを使うべきで、このスキルはObsidian固有の操作(ノートの読み書き、検索、メタデータ取得、デイリーノート、タスク管理、ワークスペース操作など)に特化しています。macOS/LinuxおよびPowerShellに対応し、環境変数や標準的なインストールパスからCLI実行ファイルを動的に解決するプローブ機構を備えているため、クロスプラットフォームで安全に利用できます。また、セッションの破壊を防ぐため、エージェントセッション中にObsidianアプリの再起動やプラグインの無効化を行わないなどの重要な安全ルールが定義されており、ユーザーの明示的な意図なしに破壊的操作を実行しない設計になっています。

対応~Claude Code~Codex CLI~Cursor
npx skills add gmickel/obsidian-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Obsidian CLI

Obsidianの実行中のアプリケーション、インデックス、設定、コマンドレジストリ、開発者ランタイムに依存する動作にはCLIを使用します。通常のファイル操作には標準のファイルシステムツールを使用してください。

CLIの解決とプローブ

単一の実行ファイル名を想定しないでください。Obsidianの登録方法やパッケージングはプラットフォームやリリースによって異なり、無関係なサードパーティ製バイナリが同じ名前を使用する可能性もあります。version プローブが成功した場合にのみ、候補を選択してください。

macOS/Linux:

resolve_obsidian_cli() {
  local candidate
  for candidate in \
    "${COPILOT_OBSIDIAN_CLI:-}" \
    /Applications/Obsidian.app/Contents/MacOS/obsidian-cli \
    "$(command -v obsidian 2>/dev/null || true)" \
    "$(command -v obsidian-cli 2>/dev/null || true)"
  do
    [[ -n "$candidate" && -x "$candidate" ]] || continue
    if "$candidate" version >/dev/null 2>&1; then
      printf '%s\n' "$candidate"
      return 0
    fi
  done
  return 1
}

OBSIDIAN_CLI=$(resolve_obsidian_cli) || {
  echo "Obsidian CLIが見つかりません" >&2
  exit 1
}
"$OBSIDIAN_CLI" version

PowerShell:

$candidates = @(
  $env:COPILOT_OBSIDIAN_CLI,
  (Get-Command obsidian -ErrorAction SilentlyContinue).Source,
  (Get-Command obsidian-cli -ErrorAction SilentlyContinue).Source
) | Where-Object { $_ }

$OBSIDIAN_CLI = $candidates | Where-Object {
  try { & $_ version *> $null; $LASTEXITCODE -eq 0 } catch { $false }
} | Select-Object -First 1

if (-not $OBSIDIAN_CLI) { throw "Obsidian CLIが見つかりません" }
& $OBSIDIAN_CLI version

プローブが失敗した場合は、ユーザーに互換性のあるObsidianリリースを開き、設定 > 一般 > コマンドラインインターフェースを有効にして登録を完了し、ターミナルを再起動するよう依頼してください。明示的なユーザーの意図なしにObsidianのインストール、PATHの変更、CLIの登録を行わないでください。

解決された実行ファイルを、すべてのリファレンス例の中で obsidian の代わりに使用します:

"$OBSIDIAN_CLI" vaults
"$OBSIDIAN_CLI" help search

Vaultを正確に指定する

ターゲットがわかっている場合は、常に vault="<名前またはID>" を使用してください。このスキルに個人のVault名やマシンのパスを埋め込まないでください。

"$OBSIDIAN_CLI" vault="<vault-name>" search query="プロジェクトの期限" format=json
"$OBSIDIAN_CLI" vault="<vault-name>" backlinks path="Projects/Plan.md" format=json

厳密なVault相対パスには path= を使用します。Obsidianのウィキリンク形式の名前解決が必要な場合のみ file= を使用してください。スペースやシェルの特殊文字を含む値はクォートで囲みます。インストールされているバージョンで表示されない構文に依存する前に、ライブヘルプを確認してください:

"$OBSIDIAN_CLI" help <command>

基本操作

# 読み取りと書き込み
"$OBSIDIAN_CLI" vault="<vault-name>" read path="Projects/Roadmap.md"
"$OBSIDIAN_CLI" vault="<vault-name>" append path="Journal.md" content="- 新しいエントリ"

# 検索とメタデータ
"$OBSIDIAN_CLI" vault="<vault-name>" search query="API" limit=10 format=json
"$OBSIDIAN_CLI" vault="<vault-name>" properties path="Projects/Roadmap.md"

# 設定済みデイリーノートとインデックス化されたタスク
"$OBSIDIAN_CLI" vault="<vault-name>" daily:append content="- 14:00 電話" silent
"$OBSIDIAN_CLI" vault="<vault-name>" tasks all todo

# ライブワークスペース
"$OBSIDIAN_CLI" vault="<vault-name>" tabs ids
"$OBSIDIAN_CLI" vault="<vault-name>" workspace ids

ホストセッションの保護

エージェントセッション中にObsidianアプリ/ウィンドウをリロードまたは再起動しないでください。現在のエージェントセッションをホストしているプラグインをリロード、無効化、アンインストールしないでください。同等のコマンド、JavaScript、開発者ツールの操作も避けてください。これらの操作はセッションを終了させ、進行中の作業を破棄する可能性があります。

永続的な削除、ローカルヒストリーまたはSyncの復元、公開/非公開、プラグイン/テーマのインストール/削除、制限モードの変更、またはJavaScript/開発者呼び出しの変更を行う前に、明示的なユーザーの意図を必要とします。可逆的な操作を優先してください。コマンドリファレンスは機能を説明するものであり、変更を許可するものではありません。

リファレンスガイド

タスクに関連するガイドのみを参照してください。例の中の obsidian は解決された $OBSIDIAN_CLI 実行ファイルとして扱い、ターゲットが既知の場合は vault="<名前またはID>" を追加してください。

タスクリファレンス
ノート操作、アウトライン、単語数、ユニークノートreferences/note-operations.md
検索、タグ、プロパティ、バックリンク、孤立ノート、未解決リンクreferences/search-metadata.md
デイリーノート、タスク、テンプレートreferences/daily-tasks-templates.md
Vault、ワークスペース、ブックマーク、プラグイン、テーマ、Sync、Publish、Bases、開発ツールreferences/vault-management.md

関連スキル