Obsidian VaultをGUIアプリなしで検索する ── ターミナルで完結する「知識への最短経路」

なぜGUIアプリを開かずに検索したいのか

私は日常的にUbuntuのターミナルで作業をしています。特に最近では、Claude CodeなどのAIエージェントと対話しながら開発や執筆を進めることが増えており、その過程で自分のObsidian Vault(知識ベース)に書き溜めた過去のメモを参照したい場面が頻繁に発生します。

しかし、そのたびにマウスに手を伸ばしてObsidianアプリを最前面に呼び出し、検索窓にキーワードを打ち込み、目当ての行を探して再びターミナルに戻る ── この一連の動作が、実は無視できない コンテキストスイッチ となっていました。思考の流れが一度途切れてしまうと、元の集中状態に戻るのには時間がかかります。

また、SSHを経由してターミナルでアクセスしているときは、GUIを呼び出すすべがありません。

知識のヘッドレス化:Vaultを「ただのディレクトリ」として扱う

Obsidianの最大の強みは、独自形式のデータベースではなく、ノートがすべてプレーンなMarkdownファイルとして保存されている点にあります。

GUIアプリとしてのObsidianが必要なのは「リッチな編集」や「グラフビューの閲覧」のときだけであり、情報の「検索」や「確認」であれば、ターミナルツールだけで完結できるはずです。

私はこの、GUIという制約から離れて知識ベースを操作するアプローチを 「知識のヘッドレス化」と定義します。GUIアプリの起動を待つことなく、コマンド一つで検索をし、Markdownファイルに快適にアクセスできる仕組みを構築しました。


使用するツールセット

今回採用したのは、以下の4つのCLIツールです。

ツール 役割
rg (ripgrep) 圧倒的な速さを誇る全文検索エンジン。
fzf インタラクティブに候補を絞り込むファジーファインダー。
bat シンタックスハイライト付きのコード表示ツール(cat の進化系)。
glow ターミナル上でMarkdownを美しくレンダリングするツール。

セットアップ手順

1. パッケージのインストール

Ubuntu(WSL2含む)環境を想定しています。まずは apt で主要なツールをインストールします。

sudo apt update
sudo apt install ripgrep fzf bat fd-find

※Ubuntuでは batbatcatfdfdfind というコマンド名でインストールされるため、後ほどエイリアスを設定します。

2. glowの導入

glow はターミナルでのMarkdown閲覧体験を一段引き上げてくれます。GitHubのリリースからバイナリを取得します。

mkdir -p ~/.local/bin
# バージョンは適宜最新を確認してください
curl -sL "https://github.com/charmbracelet/glow/releases/download/v2.1.2/glow_2.1.2_Linux_x86_64.tar.gz" \
  -o /tmp/glow.tar.gz
tar -xz -C ~/.local/bin --strip-components=1 -f /tmp/glow.tar.gz \
  glow_2.1.2_Linux_x86_64/glow
chmod +x ~/.local/bin/glow

3. Bash関数の設定

~/.bashrc の末尾に以下の設定を追加します。これにより、 vg (Vault Grep)と vo (Vault Open)という2つのコマンドが使えるようになります。

# === Obsidian Vault Tools ===
export VAULT="$HOME/projects/obsidian" # 自分のVaultパスに変更

# コマンド名のエクスポート
alias bat='batcat'
alias fd='fdfind'

# vg <query>: 全文検索からノートを特定して開く
vg() {
  if [[ $# -eq 0 ]]; then
    echo "Usage: vg <query>" >&2
    return 1
  fi
  local file
  file=$(cd "$VAULT" && rg --line-number --no-heading --smart-case "$*" \
    | fzf --delimiter=: \
          --preview "batcat --color=always --style=numbers --highlight-line {2} $VAULT/{1}" \
          --preview-window 'right,60%,border-left,wrap' \
          --prompt 'Vault Search> ' \
          --header 'preview scroll: Shift+↑/↓' \
    | cut -d: -f1)
  [[ -n "$file" ]] && glow --pager "$VAULT/$file"
}

# vo: ファイル名検索からノートを開く
vo() {
  local file
  file=$(cd "$VAULT" && fdfind --extension md . \
    | fzf --preview "batcat --color=always --style=plain $VAULT/{}" \
          --preview-window 'right,60%,border-left,wrap' \
          --prompt 'Vault Open> ' \
          --header 'preview scroll: Shift+↑/↓')
  [[ -n "$file" ]] && glow --pager "$VAULT/$file"
}

設定後、 source ~/.bashrc で反映させれば準備完了です。


使い方と操作方法

vg:全文検索(Vault Grep)

vg フロントマター

rg がVault内を検索し、マッチした行を fzf のリストとして表示します。右ペインには bat によるシンタックスハイライト付きのプレビューが表示され、該当行が強調されます。 Enter を押すと glow でそのノート全体を開きます。

vo:ファイル名でファジー検索(Vault Open)

vo

Vault内のすべての .md ファイルを fzf で絞り込みます。ノート名を覚えているときや、最近作成したファイルを探す際に便利です。

fzf 操作まとめ

ツール起動中の主要な操作は以下の通りです。

キー 動作
/ リストのカーソル移動
Shift+↑ / Shift+↓ プレビューペインのスクロール
Enter 選択を確定して glow で開く
Ctrl+C / ESC キャンセルしてターミナルに戻る

まとめ:GUIとCLIの「良いとこ取り」をする

アプローチ 快適なシーン
Obsidian (GUI) 複雑な編集、リンクの構築、グラフの視覚化
Terminal (CLI) 高速な検索、情報の確認、AIエージェントとの連携

大切なのは、特定のツールに自分を合わせるのではなく、目的に応じて最適なインターフェースを選択することです。プレーンテキストという「自由」を最大限に享受できるこの構成、ターミナル派のObsidianユーザーの方はぜひ試してみてください。

(ただ、basalt というObsidian Vault参照ツールに検索機能がついたら、乗り換えるかも…?)


参考資料

yourpalm.jubenoum.com

yourpalm.jubenoum.com