Obsidianをターミナルから操作する|公式CLIの手順とエージェント連携

Obsidianに公式のCLI(コマンドラインインターフェース)が入りました。ターミナルからデイリーノートへの追記やVault内検索、ファイルのリネームなどが実行できます。

CLIは起動中のObsidianアプリに接続して動きます。アプリが起動していなければ、最初のコマンドを実行したときにObsidianが起動します。対象はWindows、macOS、Linuxのデスクトップ版で、iPad版のObsidianでは使えません。iPadは収集と執筆、Mac側でCLIとエージェントを回す、という分担が前提になります。

有効化の手順

CLIを使うには、Obsidian 1.12以降のインストーラーで入れたアプリが必要です。アプリ内アップデートだけではCLIが入らないため、最新インストーラー(1.12.7以降)へのアップグレードが条件になります。

  1. 設定の「General」を開く
  2. 「Command line interface」を有効化する
  3. 表示されるプロンプトに従ってObsidian CLIを登録する

登録が終わったら、開いていたターミナルは再起動します。PATHの変更はターミナルの再起動後に反映されます。アップデート直後で設定項目が出てこない場合は、CLI設定を一度オフにしてオンに戻し、自動のPATH登録を許可すると直ります。

macOSでは、登録によって /usr/local/bin/obsidian にアプリ内蔵のCLIバイナリへのシンボリックリンクが作られます(管理者権限のダイアログが出ます)。Windowsではインストールフォルダにターミナルリダイレクタ「Obsidian.com」が追加され、Linuxでは ~/.local/bin/obsidian にバイナリがコピーされます。

基本の書式

パラメータは parameter=value の形式で、値にスペースを含む場合はクォートで囲みます。値を持たないフラグ(open や overwrite など)は、そのまま後ろに付けます。

obsidian create name=Note content="Hello world"
obsidian create name=Note content="Hello" open overwrite

複数行の内容では \n が改行、\t がタブとして扱われます。どのコマンドにも --copy を付けると、出力をクリップボードへコピーできます。

対象のVaultは、カレントディレクトリがVaultフォルダ内であればそのVault、そうでなければ現在アクティブなVaultが使われます。特定のVaultを指定する場合は vault= を使います。ただし、これは必ずコマンドの最初のパラメータに置きます。

obsidian vault="My Vault" search query="test"

ファイルの指定は2通りです。file= はWikiリンクと同じ解決方法でファイルを特定するので、フルパスや拡張子は要りません。path= はVaultルートからの正確なパスを指定します。どちらも指定しないコマンドは、アクティブファイルを対象にします。

ターミナルUI(TUI)モードもあります。obsidian とだけ入力して起動すると、以降は obsidian を付けずにコマンドを打てるようになり、自動補完や履歴、Ctrl+Rの逆検索が使えます。

デイリーノートへの追記

obsidian daily:append content="- [ ] 牛乳を買う"
obsidian daily:path
obsidian daily:read

daily:append は今日のデイリーノートへ追記します。対象ノートは開かれません(open フラグを付けた場合を除く)。今日のファイル名を探しに行く必要がないので、思いついた用事をその場で放り込む使い方に向きます。

見出しの下に追記したい場合は heading= を指定します。

obsidian daily:append content="アイデアのメモ" heading="メモ"

inline フラグを付けると改行なしで追記できます。前置版の daily:prepend もあります。

検索

obsidian search query="会議メモ" limit=10
obsidian search:context query="launch" limit=10

search はマッチしたファイルのパスを返します。search:context はマッチした行を path:line: text の形式で返すので、grepに近い感覚で使えます。どちらも path= でフォルダを絞り込めますし、format=json で構造化した出力も取れます。あくまでテキスト検索で、Vault全体を理解するAI検索ではない点は押さえておきたいところです。

作成・追記・リネーム

obsidian create name="旅の記録" template=Travel
obsidian append file="My Note" content="新しい行"
obsidian rename path="Projects/Launch.md" name="Product Launch"
obsidian move path="folder/note.md" to="archive/"

rename で拡張子を省略すると、拡張子は自動で保持されます。rename と move の大事な点はリンクの扱いです。Vault設定の「Automatically update internal links」がオンの場合、リネームや移動に合わせて内部リンクも自動で更新されます。ファイルシステムの mv コマンドでは起きないことで、これがCLIを使う大きな理由のひとつです。

delete は既定でゴミ箱行きです。permanent フラグを付けるとゴミ箱を経ずに完全削除されます。

プロパティとタスク

obsidian property:set name="status" value="done" file="My Note"
obsidian tasks daily todo
obsidian tags sort=count counts
obsidian backlinks file="My Note"

プロパティの設定や読み取り、タスクの一覧と状態変更、タグやバックリンクの取得もコマンドになっています。コマンドの全体像は obsidian help でいつでも引けますし、help <command> で個別コマンドのヘルプも見られます。

エージェントにVaultを操作させる

CLIのもうひとつの顔が、AIエージェントとの連携です。Obsidian公式のGitHubで公開されている「obsidian-skills」は、kepano氏が整備するエージェント向けスキルの集まりです。Claude CodeやCodex、OpenCodeなど、スキル互換のエージェントで使えます。

含まれるスキルは、Obsidian固有のMarkdown記法を扱う obsidian-markdown、Basesファイルを扱う obsidian-bases、Canvasを扱う json-canvas、Webページから本文だけを抽出する defuddle など7つです。その中の obsidian-cli が、CLI経由でVaultとやり取りするためのスキルです。

導入はマーケットプレイス経由が用意されています。

claude plugin marketplace add obsidianmd/obsidian-skills
claude plugin install obsidian@obsidian-skills
codex plugin marketplace add obsidianmd/obsidian-skills

Codexの場合は、コマンドのあとにCodexまたはChatGPTデスクトップアプリのプラグインディレクトリからObsidianをインストールします。npx skills add https://github.com/obsidianmd/obsidian-skills という導入方法もあります。

obsidian-cliスキルの設計で面白いのは、コマンドの一覧をスキル内に固定で持たない点です。エージェントにはまず obsidian help を実行させ、CLI自身が返す最新のリファレンスを正として動かします。バージョンが上がってコマンドが増えても、スキル側を書き換える必要がありません。

エージェントに任せるときの注意点もスキルに書かれています。リネームと移動はリンク更新のためにCLIの rename と move を使い、ファイルシステムの mv で代用しないこと。削除は既定のゴミ箱行きのままにし、permanent はユーザーが求めたときだけ付けること。CLIは失敗したときでも終了ステータス0で返る場合があるため、成功したかどうかは出力の内容で確かめること。どれも、エージェントにVaultを触らせるなら先に知っておきたい実務的なポイントです。

iPadで集めて、Macで処理する

CLIはデスクトップ側の機能なので、iPad単体では完結しません。ただ、iPadで集めたメモや素材がObsidianのVaultに同期されていれば、Mac側でエージェントが検索し、選び、追記し、整理するところまでをCLI経由で任せられます。

エージェントがVaultを扱う入口は、Vault内で動くCopilot for Obsidianのような形だけではなくなりました。ターミナルとCLIという、もうひとつの入口が公式に用意されたことになります。

参考情報