Obsidian v1.12.0でObsidian CLIがEarly Access featureとして利用可能になりました。ターミナルからObsidianを操作できるコマンドラインインターフェースで、100以上のコマンドが提供されています。
これにより、Claude CodeがObsidianをよりパワフルに操作できるようになります。Obsidianノートはプレーンなマークダウンファイルなので、これまでもClaude Codeはファイルの読み書きを通じてObsidian Vaultを操作できましたが、CLIの登場でObsidianアプリの機能(プラグイン、テンプレート、検索など)にもアクセスできるようになりました。
現在はEarly Accessですので、利用にはCatalyst License($25の一括払い)が必要です。将来的には全ユーザーに無料公開される予定です。
kepano/obsidian-skillsでClaude Codeから使い始めてみるのをオススメ
Obsidianはマークダウンファイルをベースに構築されていますが、独自のリンク記法やBaseと呼ばれるUI機能など、Obsidian独自の知識が必要になることも多いです。そんな知識をAIエージェントに理解させるためのClaude Code向けスキル集として、kepano/obsidian-skillsリポジトリが有名です。Obsidian CLIの公開に合わせ早速CLI用のスキルも追加されました。
Claude Codeでobsidian helpを実行させればコマンド一覧は取得できますが、このスキルファイルを読み込ませて使ってみるのがとっつきやすいと思います。
例: デイリーノートをCLIで作成する
Obsidian CLIで実現できることの一例として、デイリーノートの作成を紹介します。
❯ obsidian daily
Opened: daily/2026-02-15.mdこのコマンドで当日のデイリーノートがObsidianアプリで開きます。ノートがまだ存在しない場合は自動的に作成されます。 このコマンドの価値は何かというと、アプリ上でデイリーノートを作成するのと同様にテンプレートとして記載したスクリプトの展開ができる点です。
私のデイリーノートのテンプレートにはTemplater記法で記載した自動化スクリプトがいくつか含まれています。たとえばICSプラグインと連携してGoogleカレンダーの予定を取得するスクリプトや、過去の日付へのリンクを動的に生成する処理があります。
## 予定
<%*
var events = await app.plugins.getPlugin('ics').getEvents(moment(tp.file.title, 'YYYY-MM-DD'));
events.sort((a, b) => a.utime - b.utime).forEach((e) => {
tR += `- ${e.time}-${e.endTime} ${e.summary}${e.location ? ' @ ' + e.location : ''}\n`;
});
%>
## 過去ログ
- 昨日: [[<% tp.date.now("YYYY-MM-DD", -1) %>]]
- 1週間前: [[<% tp.date.now("YYYY-MM-DD", -7) %>]]Claude CodeのWriteツールでこのテンプレートを元にファイルを作成しても、Templaterの構文はそのままテキストとして書き込まれるだけです。Claude CodeでもGoogle Calendar APIから情報を取得し書き込んでもらうことはできますが、その処理は実行ごとに揺らぎがあります。
obsidian daily コマンドを使えば、Obsidianアプリを経由するため、Templaterが自動的にスクリプトを実行して展開してくれます。
スクリプトとエージェントの使い分け
この違いは「スクリプトによる確定的な自動化」と「エージェントによる柔軟な操作」を組み合わせられることを意味します。
- スクリプト(Obsidian CLI): カレンダー予定の取得、日付計算など、毎回同じ結果が求められる処理。曖昧性がなく、確実に動作する
- エージェント(Claude Code): タスクの整理、ノートの要約、コンテキストに応じた編集など、判断が必要な処理
たとえば私はcronスクリプトを利用して1時間に1回Google Tasksのタスク内容をデイリーノートに同期しています。以下のようにobsidian daily silentでデイリーノートの存在を保証した上で、Google Tasksの同期処理を行っています。
obsidian daily silent 2>/dev/null
sleep 2
# この後、デイリーノートへのタスク同期処理が続くテンプレート展開を含むデイリーノートの作成はObsidian CLIに任せ、その上でClaude Codeが今日の予定やタスクを理解・判断した上でエージェンティックに作業しノートを更新する、ということができるようになりました。
AIエージェントでできることの広がり
これまでObsidianのアプリ上でしかできず人間の操作が必要だった作業が、CLIからアクセスできるようになったことで、AIエージェントに任せられる幅が大きく広がりました。コマンド一覧を眺めていると、他にもいろいろなことができそうです。
backlinks/links/orphans/deadends: Vault内のリンク構造を分析し、孤立したノートや繋がりの薄いノートを発見してリンクの追加を提案するsearch/tags: Vault全体を横断検索し、関連するノートを見つけて新しいノートにまとめたり、タグの整理を行うbase:query: Basesのデータをクエリしてフィルタリングやソートした結果を取得し、レポートを生成するeval: Obsidianのアプリコンテキストで任意のJavaScriptを実行する。コミュニティプラグインのAPIを直接叩くこともでき、CLIコマンドとして提供されていない操作も実現できる
特にevalはCLIの枠を超えた拡張性があり、Obsidianのエコシステム全体をエージェントから操作する入り口になりそうです。
まとめ
Obsidian CLIの登場により、これまで「ファイルの読み書き」に限られていたエージェントによるObsidian操作が、「Obsidianアプリの機能を使った操作」へと拡張されました。 Templaterによるテンプレート展開やプラグインとの連携など、アプリを経由しなければできなかった処理をターミナルから実行できるようになったことで、スクリプトによる確定的な自動化とエージェントによる柔軟な判断を組み合わせた運用が可能になります。
Obsidianをナレッジベースとして活用している方は、ぜひCLIを試してみてください。