はじめに

本日2026年2月11日に、Obsidian CLIがCatalystメンバー向けに公開された。なんとObsidianがターミナルで操作できるようになる。まだベータ版ではあるが、少し触ってみた。

使い方

設定で有効化してターミナルでobsidianと打つと起動する。

起動画面

起動するといってもobsidianコマンドが打ちやすくなるだけで、ターミナルで直接obsidian <command> [options]と打つのと特に変わりはない。

LLM連携

今までObsidianとLLMを連携するにはMCPサーバーを介する必要があったのだが、

Run `obsidian file && obsidian read` to get the active file from Obsidian.

のようにプロンプトに書いておくだけでLLMが現在のアクティブファイルを確認できるようになる。obsidian daily:readだとデイリーノートを確認できるし、tasks dailyでデイリーノートのタスクを確認できる。可能性は無限大だ。

スラッシュコマンドにする

Claude Codeのスラッシュコマンドにする。
~/.claude/commandsobsidian_read.mdを作成する。

---
description: Read Obsidian active file
---
# Metadata
!`obsidian file`
# Content
!`obsidian read`

~/.claude/settings.jsonobsidian readコマンドへの権限を付与する

{
  "permissions": {
    "allow": [
      "Bash(obsidian file)",
      "Bash(obsidian read)"      
    ],
    "ask": [],
    "deny": []
  }
}

すると

example of slash command

手動でもObsidianのアクティブファイルがClaude Codeに渡せるようになる。

シェルスクリプト

obsidian command id=<command-id>でコマンドが実行できるので、シェルスクリプトでも実行できる。Raycastで実行する用のシェルスクリプトを作ってみる。

#!/bin/bash
 
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Obsidian Leader Command
# @raycast.mode compact
 
# Optional parameters:
# @raycast.icon 🤖
 
# Documentation:
# @raycast.author masaki39
# @raycast.authorURL https://github.com/masaki39
 
/Applications/Obsidian.app/Contents/MacOS/obsidian command id=<command-id>

パスは環境によって異なる。

command selection modal

これをRaycastから実行する。
leader command

Obsidian内部でコマンドが実行された(コマンド例は自作プラグインのもの)。
バックグラウンドで実行されるようなので、Obsidian画面に移動したい場合はURIスキームの方が良いかもしれない。

今後、コミュニティプラグインのコマンドへの引数の追加が期待される。

Basesの連携強化

恐らくkepano氏がやりたかったのはこれだろう。

obsidian base:query file="General.base"

のように、baseのファイル名を指定したりすると、内部がjson形式で出力できる。これが何を意味するかというと、これまではObsidian内でのみ使用可能だったBasesのデータベースが外部に出力して使用可能になるということだ。Basesのローカルデータベースとしての役割が強化されることになる。

使用可能なコマンド

obsidian helpで確認できる。既にものすごく多い。今後もっと増えるのだろう。

おわりに

Obsidian CLIの登場により、Obsidianはエディタの枠を超えてシステム全体に統合可能なツールへと進化した(?)。まだベータ版なので、今後に期待したい。