
なぜ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では bat が batcat、fd が fdfind というコマンド名でインストールされるため、後ほどエイリアスを設定します。
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参照ツールに検索機能がついたら、乗り換えるかも…?)