mcpField
O
obsidian-cli

obsidian-cli

github.com/pablo-mano生産性456148 回インストール34 週間前に更新
リポジトリ

obsidian-cli について

Obsidian 公式 CLI を案内するスキルです。IPC 経由で起動中の Obsidian デスクトップアプリを操作し、ノート、検索、メタデータ、同期、開発者向けコマンドを扱います。

主な機能

  1. 01ノートの作成、編集、移動、検索
  2. 02デイリーノート、プロパティ、タグ、タスクの管理
  3. 03ノート検索とリンクの確認
  4. 04同期、プラグイン、テーマ、ワークスペースの管理
  5. 05開発・デバッグコマンドの実行

活用シーン

  1. 01デイリージャーナルの更新を自動化
  2. 02メタデータ付きテンプレートノートの作成
  3. 03AI 処理用にノートを検索・抽出
  4. 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 Desktopv1.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 以上のコマンドが用意されています。

グループ主なコマンド用途
filesread, create, append, prepend, move, rename, delete, files, folders, file, randomノートの CRUD とファイルの検索
dailydaily, daily:read, daily:append, daily:prepend, daily:pathデイリーノートの操作
searchsearch, search:context全文検索。search:context は一致した行を返します
propertiesproperties, property:read, property:set, property:remove, aliasesフロントマター/メタデータの管理
tagstags, tagタグの一覧表示、件数確認、絞り込み
taskstasks, taskタスクの照会、絞り込み、切り替え
linksbacklinks, links, unresolved, orphans, deadendsグラフとリンクの分析
bookmarksbookmarks, bookmarkブックマークの一覧表示と追加
templatestemplates, template:read, template:insertテンプレートの一覧表示、レンダリング、挿入
pluginsplugins, plugin, plugin:enable, plugin:disable, plugin:install, plugin:uninstall, plugins:restrictプラグインの管理
syncsync, sync:status, sync:history, sync:read, sync:restore, sync:deletedObsidian Sync の操作
themesthemes, theme, theme:set, theme:install, theme:uninstallテーマの管理
snippetssnippets, snippets:enabled, snippet:enable, snippet:disableCSS スニペットの管理
commandscommands, command, hotkeys, hotkeyID による Obsidian コマンドの実行、ホットキーの確認
basesbases, base:query, base:views, base:createObsidian Bases(v1.12 以降のデータベース機能)
historyhistory, history:list, history:read, history:restoreファイルのバージョン復元(File Recovery プラグイン)
workspaceworkspace, tabs, tab:openワークスペースのレイアウトとタブの管理
diffdiffローカルと同期済みのファイルバージョンを比較
deveval, dev:screenshot, dev:debug, dev:console, dev:errors, dev:css, dev:dom, devtools開発者向け/デバッグ用ツール
vaultvault, vaults, version, reload, restartVault の情報とアプリの制御
otheroutline, 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"

ヒント

  1. パスはVaultからの相対パスです — 絶対ファイルシステムパスではなく、folder/note.mdを使用してください。
  2. createのパスには.mdを含めません — 拡張子は自動的に追加されます。
  3. moveには.md拡張子を含む完全な移動先パスが必要です。
  4. パイプでの利用に適しています — プレーンテキストの出力はgrep、awk、sed、jqで処理できます。
  5. JSON出力 — searchでformat=jsonを使用すると、ファイルパスのJSON配列を取得できます。filesコマンドはJSON出力に対応していません。
  6. stderrのノイズ — ヘッドレス環境でのGPU/Electron警告は無害です。2>/dev/nullでフィルタリングしてください。
  7. **daily:prepend**は、コンテンツをバイト位置0ではなく、フロントマターの後に挿入します。
  8. evalを使用すると、Obsidian API(app.*)に対して任意のJavaScriptを実行できます。
  9. **template:insert**は、Obsidian UIで現在アクティブなファイルに挿入します。path=パラメーターは受け付けません。ファイルが開かれていない場合は、Error: No active editor. Open a file first.が返されます。CLIでテンプレートからファイルを作成するには、代わりにobsidian create path="..." template="..."を使用してください。
  10. property:setはリスト値を文字列として保存します — value="tag1, tag2"は、YAML配列ではなく、カンマ区切りの文字列としてそのまま書き込みます。適切な配列フィールドを設定するには、ノートのフロントマターを直接編集する(例:read → 変更 → create --force)か、evalを使用してObsidian APIを呼び出してください。
  11. evalには1行のJavaScriptが必要です — インラインで渡した複数行のJSは、トークンエラーになります。代わりに、一時ファイルにスクリプトを書き込んでください:
    cat > /tmp/obs.js << 'JS'
    var files = app.vault.getMarkdownFiles();
    files.length;
    JS
    obsidian eval code="$(cat /tmp/obs.js)"
    
  12. 複数Vaultの指定は、すべての環境で動作するとは限りません — 一部の環境では、obsidian "My Vault" commandを実行するとError: Command "My Vault" not foundが返されることがあります。その場合はVault名を省略し(CLIは直近でアクティブだったVaultを対象にします)、Obsidian UIでVaultを手動で切り替えてください。
  13. コロン付きサブコマンドを利用できない場合(例:ラッパーのない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=truePrivateTmp=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に追加する

コメント