obsidian-cli について
obsidian-cli は、Obsidian のインデックスやアプリ機能をエージェントが使うためのコマンドライン参照スキルです。ノート間の関係、タグ、タスク、プロパティの操作に加え、ファイルツールとの使い分けや安全策、代替手段も説明します。
主な機能
- 01構造化出力によるノート検索
- 02タグ、タスク、プロパティ、リンクの照会
- 03デイリーノート、テンプレート、Bases の操作
- 04ノートの読み取り、作成、追記、移動
- 05安全ルールとトラブル時の代替手段
活用シーン
- 01ノートを検索してバックリンクを確認
- 02未完了タスク、タグ、プロパティを確認
- 03テンプレートを使ったノートの作成や更新
- 04CLI が使えない場合にファイルツールへ切り替え
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jackal092927/ obsidian-official-cli-skills --skill obsidian-cliインストール後、Claude Code で/obsidian-cliを入力して読み込まれたか確認します。
詳細
Obsidian CLI — エージェント向けリファレンス
CLI とファイルツールの使い分け
Obsidian のインデックスやアプリ機能が必要な場合は CLI を使用します: 検索、バックリンク、リンク、タグ、タスク、プロパティ、ベース、テンプレート、アウトライン、孤立ノート、未解決リンク
ファイルツール(Read/Write/Edit/Grep/Glob)は、次の場合に使用します: 単純なファイルの読み書き、一括テキスト置換、ファイル横断の grep — アプリへの依存はありません
目安:Obsidian のインデックスが役立つ場合は CLI を使用します。単純なテキスト操作の場合は、ファイルツールを使用します。
構文の基本
obsidian <command> [param=value ...] [flag ...]
- Vault の指定:最初のパラメーターに
vault="My Vault"を指定するか、Vault ディレクトリ内から実行します - ファイルの指定:
path=exact/path.md(Vault からの相対パス)とfile=name(リンク形式の解決) - パラメーター:
key=value— スペースを含む値は引用符で囲みます:name="My Note" - フラグ:
=を使わないブール値の切り替え指定です — 例:silent、overwrite、counts、total - 複数行:コンテンツ文字列では、改行に
\n、タブに\tを使用します - 構造化出力:
format=json(search、base:query)、format=tsv(properties、tags) - クリップボード:出力をコピーするには
--copyを追加します
主なコマンド
読み取りと書き込み
obsidian read path=<path> # read file content
obsidian append path=<path> content="<text>" # append to file
obsidian prepend path=<path> content="<text>" # prepend after frontmatter
obsidian create name=<name> content="<text>" silent # create file (safe — won't overwrite)
obsidian create name=<name> template=<template> overwrite silent # create from template
obsidian move path=<from> to=<to> # move/rename file
obsidian delete path=<path> # move to system trash (safe)
注意点:
silentを付けずにcreateを実行すると、Obsidian の UI でファイルが開きます。エージェントの操作中は必ずsilentを追加してください。createはディレクトリを自動作成しません。親フォルダーが存在しない場合は、先に Bash でmkdir -pを使用します。template=を指定したcreateは、path=を無視してテンプレートに設定されたフォルダーにファイルを配置する場合があります。作成後、searchまたはfilesで実際のパスを確認してください。
デイリーノート
obsidian daily # open today's daily note
obsidian daily:read # read daily note content
obsidian daily:append content="<text>" # append to daily note
obsidian daily:prepend content="<text>" # prepend to daily note
プロパティ(Frontmatter)
obsidian property:set name=<key> value=<val> path=<path> # set property
obsidian property:set name=<key> value=<val> type=<type> path=<path> # set with explicit type
obsidian property:read name=<key> path=<path> # read one property
obsidian property:remove name=<key> path=<path> # remove property
obsidian properties path=<path> # list all properties
obsidian properties path=<path> format=tsv # list as TSV (key\tvalue)
検索
obsidian search query="<text>" # search vault (file paths)
obsidian search query="<text>" path=<folder> limit=10 # scoped search
obsidian search query="<text>" format=json # JSON array of paths
obsidian search query="<text>" format=json matches # structured JSON with line numbers (preferred)
obsidian search query="<text>" matches # text format with matching lines
ヒント:format=json matches は [{"file":"path","matches":[{"line":N,"text":"..."}]}] を返します。プログラムから検索する場合に使用します。
タグとタスク
obsidian tags all counts # list ALL vault tags with counts
obsidian tags all counts sort=count # sorted by frequency
obsidian tag name=<tag> # files with specific tag
obsidian tasks all todo # vault-wide open tasks
obsidian tasks all done # vault-wide completed tasks
obsidian tasks daily # tasks from daily note
obsidian tasks path=<path> # tasks in file/folder
obsidian task ref="<path>:<line>" toggle # toggle task status
obsidian task ref="<path>:<line>" done # mark done
注:all を付けずに tags を実行すると、アクティブなファイルまたは指定したファイルのタグのみが一覧表示されます。
注:スコープ(all、daily、path=)を指定せずに tasks を実行すると、アクティブなファイルが対象になります。Vault 全体の結果を取得するには tasks all を使用します。
リンクとグラフ
obsidian backlinks path=<path> # incoming links to file
obsidian backlinks path=<path> counts # with link counts
obsidian links path=<path> # outgoing links from file
obsidian unresolved # broken/unresolved links
obsidian orphans # files with no incoming links
obsidian deadends # files with no outgoing links
構成
obsidian files folder=<path> ext=md # list files in folder
obsidian folders # list all folders
obsidian outline path=<path> # heading structure of file
ベース
obsidian bases # list .base files
obsidian base:query path=<path> format=json # query a base
obsidian base:query path=<path> view=<name> format=json # query specific view
テンプレート
obsidian templates # list available templates
obsidian template:read name=<name> # read template source
obsidian template:read name=<name> resolve # render with variables filled
安全ルール
ユーザーから明示的な依頼がない限り、以下を実行しないでください:
eval— 任意のコード実行delete permanent— ゴミ箱を経由せずに削除しますplugin:install/plugin:uninstall— プラグインの状態を変更しますdev:cdp— Chrome DevTools プロトコルへのアクセス
安全な方法を優先してください:
- ファイル全体を上書きするより
append/prependを使用します overwriteフラグを付けないcreateは安全です(既存ファイルを置き換えません)- プロパティの一括変更、ファイルの移動、削除の前にユーザーへ確認します
診断
obsidian vault # confirm CLI connection — returns vault name, path, file count
obsidian version # show CLI version (e.g. "1.12.1 (installer 1.11.4)")
エラー処理
| 症状 | 考えられる原因 | 対処方法 |
|---|---|---|
obsidian version が失敗する | CLI がインストールされていない、または PATH にない | ファイルツールに切り替えます |
| コマンドが停止する、またはタイムアウトする | Obsidian アプリが実行されていない | Obsidian を起動するか、ファイルツールを使用します |
| "Unknown command" | CLI のバージョンが古すぎる | obsidian help を実行して、利用可能なコマンドを確認します |
| search/tags の結果が空 | Vault のインデックスがまだ準備できていない | 少し待ってから再試行するか、代替手段として Grep を使用します |
一般的な代替手段:CLI を利用できない場合は、ファイル操作に Read/Write/Edit/Grep/Glob を使用します。CLI を使うには、Obsidian のデスクトップアプリが実行されている必要があります。