Obsidianで文章をガシガシ書いているとき、「ここ、もうちょっと詳しくしたいな」とか「誤字脱字チェックしてほしいな」と思うこと、ありますよね。
そのたびにブラウザを開いてGeminiを呼び出すのは、せっかくの没入(ゾーン)が途切れてしまう、非常にもったいない行為でした。
そこで今回、選択したテキストをそのままGeminiに飛ばして、回答をObsidian内に自動で埋め込むスクリプトを自作しました。 試行錯誤の末、CLI経由ではなく「REST API」で直接叩く形に落ち着いたのですが、これが驚くほど快適だったのでシェアします。

コマンドラインの「壁」を、HTTPリクエストで突破する
最初は、普段使い慣れている「Gemini CLI」をObsidianから子プロセスとして起動させようとしていました。 しかし、いざ実装してみると「OSのパスが通らない」「対話モードで勝手にハングする」「特殊文字のエスケープが面倒」といった、コマンドライン特有の泥臭い問題に直面しました。
そこで発想を変えました。 「CLIに頼らず、Obsidianから直接Gemini APIにリクエストを送ればいいじゃないか」 と。
実はObsidianには requestUrl という便利なAPIが備わっています。これを使えばNode.jsの複雑な設定なしに、ウェブ上のAPIとやり取りができるんです。しかも、通常のブラウザの fetch で悩まされる「CORS(特権の問題)」を回避できるという大きなメリットもありました。
REST APIに切り替えたことで、環境依存(exeの場所やOSの違い)を一切気にしなくてよくなり、処理も一気に安定しました。
執筆を止めない「コールアウト自動挿入」の快感
今回作ったスクリプト(QuickAddのマクロとして登録)の動きは、とてもシンプルです。
- 修正したいテキストをガバッと選択する
- ホットキーでマクロを起動し、「要約して」などと指示を入れる
- 数秒後、選択範囲のすぐ下に「Geminiの回答」がコールアウト([!info])形式で挿入される

これが、想像以上に気持ちいいんです。 ブラウザを往復していたときに失われていた「数分間の集中」が、わずか「3秒の待機」に変わります。
CLIでのレスポンスの速さも魅力ですが、APIを使うことで「指示プロンプト」を完全に、かつ柔軟に渡せるようになったのも大きな収穫でした。
「自分専用のアシスタント」を育てる楽しみ
今回のスクリプトは、単なる便利ツール以上の価値を私に与えてくれました。
「面倒だな」と思った瞬間に、自分のコードでその不便を解消し、執筆環境をさらに自分好みに拡張できる。このカスタマイズ性こそが、私たちがObsidianを愛してやまない理由なんだなと再確認した次第です。
さて、次はこのスクリプトに「過去の記事データ」を食わせて、私の文体を完璧に模倣させる仕組みでも作ってみようかな。 執筆の相棒(AI)が、どんどん私の「分身」へと近づいていく感覚があります。
こういう「自分だけの環境作り」にかける時間こそが、結果として後々の作業効率を何十倍にも引き上げてくれるんですよね。
今回の実装メモ(自分用)
- Plugin: QuickAdd (Macro使用)
- API: Gemini REST API (gemini-2.0-flash / 2.1-flash)
- Method: Obsidian内蔵の
requestUrlを活用 - Insert:
editor.replaceRangeで選択範囲の直後にコールアウトを挿入 - Config: APIキーは
config.jsonに外出ししてGit管理から除外
次は画像生成の自動化もObsidian内で完結させたい……なんて野望も膨らんでいます(笑) これからも、「考えること」により多くの時間を割ける環境を作っていきたいと思います。
