obsidian-cli について
Obsidian 公式 CLI を案内するスキルです。IPC 経由で起動中の Obsidian デスクトップアプリを操作し、ノート、検索、メタデータ、同期、開発者向けコマンドを扱います。
主な機能
- 01ノートの作成、編集、移動、検索
- 02デイリーノート、プロパティ、タグ、タスクの管理
- 03ノート検索とリンクの確認
- 04同期、プラグイン、テーマ、ワークスペースの管理
- 05開発・デバッグコマンドの実行
活用シーン
- 01デイリージャーナルの更新を自動化
- 02メタデータ付きテンプレートノートの作成
- 03AI 処理用にノートを検索・抽出
- 04同期履歴の確認とファイルの復元
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pablo-mano/ obsidian-cli-skill --skill obsidian-cliインストール後、Claude Code で/obsidian-cliを入力して読み込まれたか確認します。
同梱ファイルreferences/command-reference.md
詳細
Obsidian CLI
公式の Obsidian CLI(2026 年 2 月に v1.12 でリリース)を使うと、ターミナルから Obsidian のあらゆる機能を操作できます。実行中の Obsidian デスクトップインスタンスと IPC 経由で通信します。
コマンドグループの各コマンドについて、特定のフラグ、出力形式、サブコマンドが必要な場合は、
references/command-reference.mdを参照してください。全 130 以上のコマンドをパラメーター表付きで網羅しており、冒頭に目次があります。
前提条件
| 要件 | 詳細 |
|---|---|
| Obsidian Desktop | v1.12.0+ |
| CLI の有効化 | Settings → Command line interface → Toggle ON |
| Obsidian の起動 | CLI を使用するには、デスクトップアプリが実行中である必要があります(IPC) |
プラットフォームに関する注意事項
- macOS / Linux:設定で CLI を有効にすると、
obsidianバイナリが自動的に PATH に登録されます。 - Windows:
Obsidian.exeと同じ場所にObsidian.comリダイレクターファイルが必要です。通常のユーザー権限で実行してください。管理者権限のターミナルでは、エラーが表示されずに失敗します。- コロン付きサブコマンド(
property:set、daily:appendなど)にパラメーターを指定して実行し、終了コード 127 が返る場合は、Obsidian.comがObsidian.exeと同じ場所にあるか確認してください。見つからない場合はインストーラーが古いため、obsidian.md/download から最新版をダウンロードして再インストールしてください。 - Git Bash / MSYS2 のユーザー:Bash が
obsidianをObsidian.com(CLI)ではなくObsidian.exe(GUI)に解決するため、Obsidian.comが存在していても、コロンとパラメーターの組み合わせで実行すると終了コード 127 で失敗します。ラッパースクリプトを作成してください。詳細は「トラブルシューティング」を参照してください。
- コロン付きサブコマンド(
- ヘッドレス Linux:snap ではなく
.debパッケージを使用してください。xvfb上で実行します。コマンドの先頭にDISPLAY=:5(または使用している xvfb のディスプレイ番号)を付けてください。サービスとして実行する場合は、PrivateTmp=falseが設定されていることを確認してください。
構文
すべてのパラメーターには**key=value**構文を使用します。空白を含む値は引用符で囲んでください。
obsidian <command> [subcommand] [key=value ...] [flags]
複数の Vault
特定の Vault を対象にするには、最初の引数に指定します。
obsidian "My Vault" daily:read
obsidian "Work Notes" search query="meeting"
省略した場合、CLI は最後にアクティブだった Vault を対象にします。
コマンドの概要
CLI には、次のグループに分かれた 130 以上のコマンドが用意されています。
| グループ | 主なコマンド | 用途 |
|---|---|---|
| files | read, create, append, prepend, move, rename, delete, files, folders, file, random | ノートの CRUD とファイルの検索 |
| daily | daily, daily:read, daily:append, daily:prepend, daily:path | デイリーノートの操作 |
| search | search, search:context | 全文検索。search:context は一致した行を返します |
| properties | properties, property:read, property:set, property:remove, aliases | フロントマター/メタデータの管理 |
| tags | tags, tag | タグの一覧表示、件数確認、絞り込み |
| tasks | tasks, task | タスクの照会、絞り込み、切り替え |
| links | backlinks, links, unresolved, orphans, deadends | グラフとリンクの分析 |
| bookmarks | bookmarks, bookmark | ブックマークの一覧表示と追加 |
| templates | templates, template:read, template:insert | テンプレートの一覧表示、レンダリング、挿入 |
| plugins | plugins, plugin, plugin:enable, plugin:disable, plugin:install, plugin:uninstall, plugins:restrict | プラグインの管理 |
| sync | sync, sync:status, sync:history, sync:read, sync:restore, sync:deleted | Obsidian Sync の操作 |
| themes | themes, theme, theme:set, theme:install, theme:uninstall | テーマの管理 |
| snippets | snippets, snippets:enabled, snippet:enable, snippet:disable | CSS スニペットの管理 |
| commands | commands, command, hotkeys, hotkey | ID による Obsidian コマンドの実行、ホットキーの確認 |
| bases | bases, base:query, base:views, base:create | Obsidian Bases(v1.12 以降のデータベース機能) |
| history | history, history:list, history:read, history:restore | ファイルのバージョン復元(File Recovery プラグイン) |
| workspace | workspace, tabs, tab:open | ワークスペースのレイアウトとタブの管理 |
| diff | diff | ローカルと同期済みのファイルバージョンを比較 |
| dev | eval, dev:screenshot, dev:debug, dev:console, dev:errors, dev:css, dev:dom, devtools | 開発者向け/デバッグ用ツール |
| vault | vault, vaults, version, reload, restart | Vault の情報とアプリの制御 |
| other | outline, wordcount, recents | ユーティリティコマンド |
クイックリファレンス — よく使うコマンド
ノートの読み取りと書き込み
obsidian read path="folder/note.md"
obsidian create path="folder/note" content="# New Note"
obsidian create path="folder/note" template="meeting-notes"
obsidian append path="folder/note.md" content="New paragraph"
obsidian prepend path="folder/note.md" content="Top content"
obsidian move path="old/note.md" to="new/note.md"
obsidian delete path="folder/note.md"
obsidian delete path="folder/note.md" permanent
デイリーノート
obsidian daily # Open today's daily note
obsidian daily:read # Print content of today's note
obsidian daily:append content="- [ ] New task"
obsidian daily:prepend content="## Morning Notes"
検索
obsidian search query="project alpha"
obsidian search query="TODO" path="projects" limit=10
obsidian search query="meeting" format=json # Returns JSON array of file paths
obsidian search query="urgent" case
プロパティとタグ
obsidian properties path="note.md"
obsidian property:set path="note.md" name="status" value="active"
obsidian property:read path="note.md" name="status"
obsidian property:remove path="note.md" name="draft"
obsidian tags counts sort=count
obsidian tag name="project/alpha"
タスク
obsidian tasks # All tasks (done + todo) — same as tasks all in v1.12
obsidian tasks all # All tasks (done + todo)
obsidian tasks done # Completed only
obsidian tasks daily # Tasks in today's daily note
obsidian task path="note.md" line=12 toggle
obsidian tasks | grep "\[ \]" # Workaround: filter to incomplete only
開発者向けと自動化
obsidian eval code="app.vault.getFiles().length"
obsidian dev:screenshot path="folder/screenshot.png" # Path must be vault-relative
obsidian dev:debug on # Required before dev:console
obsidian dev:console limit=20
obsidian dev:errors
TUI モード
引数なしで obsidian を実行すると、対話型の TUI(ターミナルユーザーインターフェース)が起動します。
| キー | 操作 |
|---|---|
↑↓ | ファイルを移動 |
Enter | ファイルを開く |
/ | 検索 |
n | 新しいファイルを作成 |
d | ファイルを削除 |
r | ファイル名を変更 |
q | 終了 |
エージェントでよく使われるパターン
デイリージャーナルの自動化
# Append a timestamped entry
obsidian daily:append content="## $(date '+%H:%M') — Status Update
- Completed: feature branch merge
- Next: code review for PR #42
- Blocked: waiting on API credentials"
メタデータ付きでテンプレートからノートを作成
obsidian create path="projects/new-feature" template="project-template"
obsidian property:set path="projects/new-feature.md" name="status" value="planning"
obsidian property:set path="projects/new-feature.md" name="created" value="$(date -I)"
obsidian daily:append content="- Started [[projects/new-feature|New Feature]]"
Vault 分析スクリプト
obsidian files total # Total file count
obsidian tags counts sort=count # Most used tags
obsidian tasks | grep "\[ \]" # Incomplete tasks across vault
obsidian orphans # Notes needing integration
obsidian unresolved # Broken links to fix
AI 処理用の検索と抽出
obsidian search query="meeting notes" format=json | jq '.[]'
obsidian read path="meetings/standup.md" | grep "Action item"
同期の管理
obsidian sync:status # Check sync health
obsidian sync:history path="important.md" # Version history
obsidian sync:restore path="important.md" version=3 # Rollback
Obsidian コマンドの実行
# Find a command ID, then execute it
obsidian commands | grep "graph"
obsidian command id="graph:open"
# Open settings, trigger a plugin action
obsidian command id="app:open-settings"
obsidian command id="dataview:dataview-force-refresh-views"
ヒント
- パスはVaultからの相対パスです — 絶対ファイルシステムパスではなく、
folder/note.mdを使用してください。 createのパスには.mdを含めません — 拡張子は自動的に追加されます。moveには.md拡張子を含む完全な移動先パスが必要です。- パイプでの利用に適しています — プレーンテキストの出力は
grep、awk、sed、jqで処理できます。 - JSON出力 —
searchでformat=jsonを使用すると、ファイルパスのJSON配列を取得できます。filesコマンドはJSON出力に対応していません。 - stderrのノイズ — ヘッドレス環境でのGPU/Electron警告は無害です。
2>/dev/nullでフィルタリングしてください。 - **
daily:prepend**は、コンテンツをバイト位置0ではなく、フロントマターの後に挿入します。 evalを使用すると、Obsidian API(app.*)に対して任意のJavaScriptを実行できます。- **
template:insert**は、Obsidian UIで現在アクティブなファイルに挿入します。path=パラメーターは受け付けません。ファイルが開かれていない場合は、Error: No active editor. Open a file first.が返されます。CLIでテンプレートからファイルを作成するには、代わりにobsidian create path="..." template="..."を使用してください。 property:setはリスト値を文字列として保存します —value="tag1, tag2"は、YAML配列ではなく、カンマ区切りの文字列としてそのまま書き込みます。適切な配列フィールドを設定するには、ノートのフロントマターを直接編集する(例:read→ 変更 →create --force)か、evalを使用してObsidian APIを呼び出してください。evalには1行のJavaScriptが必要です — インラインで渡した複数行のJSは、トークンエラーになります。代わりに、一時ファイルにスクリプトを書き込んでください:cat > /tmp/obs.js << 'JS' var files = app.vault.getMarkdownFiles(); files.length; JS obsidian eval code="$(cat /tmp/obs.js)"- 複数Vaultの指定は、すべての環境で動作するとは限りません — 一部の環境では、
obsidian "My Vault" commandを実行するとError: Command "My Vault" not foundが返されることがあります。その場合はVault名を省略し(CLIは直近でアクティブだったVaultを対象にします)、Obsidian UIでVaultを手動で切り替えてください。 - コロン付きサブコマンドを利用できない場合(例:ラッパーのないWindows Git Bash)、コロンを使わない代替手段を優先してください。
property:readの代わりにpropertiesを使用し、daily:appendの代わりにobsidian daily:pathとappendを使用してください。
トラブルシューティング
| 問題 | 原因 | 対処方法 |
|---|---|---|
| 出力が空/停止する | Obsidianが起動していない、または管理者ターミナル(Windows) | Obsidianを起動し、通常の権限でターミナルを使用する |
| コマンドが見つからない | CLIがPATHに登録されていない | SettingsでCLIを再度有効にし、ターミナルを再起動する |
| Unicodeエラー | v1.12.2+で修正済み | Obsidianを更新する |
| 対象Vaultが違う | 複数Vaultの指定が曖昧 | 最初の引数としてVault名を渡す |
| IPCソケットが見つからない(Linux) | systemdのPrivateTmp=true | PrivateTmp=falseに設定する |
| Snapの制限に関する問題 | SnapがIPCを制限している | 代わりに.debパッケージを使用する |
複数Vaultで"Name" commandが失敗する | Vault名の照合に関する問題 | Vault名を省略し、直近のVaultを対象にする |
property:setのリスト値が文字列になる | CLIは値をそのまま保存する | フロントマターを直接編集するか、evalを使用する |
コロン+パラメーターで終了コード127(.comがない) | インストーラーが古く、Obsidian.comが存在しない | obsidian.md/downloadから再インストールする |
| コロン+パラメーターで終了コード127(Git Bash/MSYS2) | Bashがobsidianを.comではなく.exeとして解決する | ~/bin/obsidianラッパーを作成する:#!/bin/bash / /c/path/to/Obsidian.com "$@"。さらに、export PATH="$HOME/bin:$PATH"を~/.bashrcに追加する |
コメント
Markdown 対応