Max Nardit
Beetroot

Beetroot v1.5.0:5 つの AI プロバイダ、よりスマートなアプリ検出

Beetroot が OpenAI、Gemini、Claude、DeepSeek、ローカルモデルに対応しました。AI スパークル、Ollama プリセット、よりスマートなソースアプリ追跡も追加。

Beetroot の最初のバージョンは OpenAI としか会話できませんでした。これは私を悩ませていました。私はこれを 自分の クリップボードマネージャとして作ったのに、ひとつの AI プロバイダにロックされているのは間違っていると感じたのです。誰もがクリップボードを OpenAI に送りたいわけではないし、トークンごとに支払いたいわけでもない、そしてクラウド AI を全く使いたくない人もいます。

そこでハードコードされた OpenAI 統合を引き剥がし、きちんとしたプロバイダシステムに置き換えました。結果は、5 つの AI プロバイダ、フルローカルモデル対応、そしてようやく筋の通った設定ページです。

ひと目で:

  • 最大の変更: OpenAI のみから 5 つの AI プロバイダへ。無料枠も含む
  • プライバシー重視のユーザーへ: Ollama、LM Studio、または任意の OpenAI 互換エンドポイントによる完全ローカル AI
  • 新しい視覚的キュー: AI で変換されたクリップにスパークルアイコンが付き、プレビューで使われたプロンプトとモデルを表示
  • アプリ追跡の改善: Java、Python、Electron アプリが本当の名前とアイコンで表示
  • セキュリティ修正: ローカル AI エンドポイントが SSRF を防ぐために URL を検証
  • 破壊的変更: なし。プロンプト、設定、履歴は引き継がれます

今すぐアップデートすべき人: 毎日 AI 変換を使う人、無料プロバイダ (Gemini) が欲しい人、完全にローカルな処理が必要な人、IntelliJ のような Java や Electron アプリを使う人。


なぜ動作している AI レイヤを引き剥がすのか

v1.4 の OpenAI 統合は問題なく動作していました。しかし、繰り返しぶつかる問題が 3 つありました。

  1. コストの障壁。 すべての AI 変換が、ちょっとした文法修正でさえトークンを消費していました。1 日に何十ものクリップをコピーするユーザーもいます。それは積み重なります。
  2. プライバシーの懸念。 クリップボードのデータには何でも入りえます。パスワード、コードスニペット、個人的なメッセージ。それをすべてひとつのクラウドプロバイダに送ることに、誰もが快適というわけではありませんでした。
  3. 単一障害点。 OpenAI が停止すると AI 変換も停止します。フォールバックも代替もありません。

修正は「プロバイダを追加する」ことではなく、プロバイダを差し替え可能にするように AI レイヤを再設計することでした。すべてのプロバイダが同じプロンプトライブラリ、同じ右クリック変換メニュー、同じ設定パターンを共有します。プロバイダの切り替えで Beetroot の使い方は変わりません。AI リクエストの送信先だけが変わります。

選べる 5 つの AI プロバイダ

すべてのプロバイダは Bring Your Own Key を採用しています。API キーを貼り付け、Test を押し、モデルを選び、完了です。

プロバイダモデル価格
OpenAIgpt-5-nano、gpt-5-mini従量課金
Google Geminigemini-2.5-flash-lite、gemini-2.5-flash無料枠あり
Anthropic Claudeclaude-haiku-4-5、claude-sonnet-4-6従量課金
DeepSeekdeepseek-chat V3、deepseek-reasoner R1非常に安価
Local LLMOllama / LM Studio 経由の任意のモデル無料、自分のマシンで動作

Gemini の無料枠は大きなポイントです。v1.5.0 以前は AI 変換を使うことはトークンごとに支払うことを意味しました。今は 1 セントも払わずに文法修正、翻訳、要約が使えます。AI Studio で無料キーを取得し、貼り付ければ完了です。DeepSeek は、無料枠より少し能力が必要だが OpenAI の価格は払いたくない人向けの、もう一つの予算オプションです。

Beetroot AI 設定で Google Gemini プロバイダ、モデル選択、API キー検証を表示

プロバイダの切り替えはおよそ 10 秒です。Settings を開き、タブを選び、キーを貼り付けます。再インストールも再起動もありません。すべてのプロバイダ名と説明は、対応する 26 言語すべてに翻訳されています。

ローカルモデル: 完全オフラインの AI 変換

Ollama があなたのマシンで動作していれば、Beetroot は自動的に検出します。設定ページには LM Studio、Ollama、Custom エンドポイント専用のプリセットがあります。ひとつ選ぶと URL が自動入力されます。Ollama はさらに進んでいて、Settings を開いた時点でインストール済みのモデルを自動取得し、モデル名を入力する代わりにリストから選ぶだけになります。

Beetroot Local LLM 設定で Ollama を自動検出、qwen3-8b モデルを選択

私は qwen3-8b をローカルで使っていますが、文法修正と翻訳を驚くほどうまくこなします。クラウド API ほど速くはないものの、データはマシンから離れません。一日中機密情報をコピーしているなら、これは重要です。

OpenAI 互換のエンドポイントなら何でも動きます。llama.cpp、vLLM、その他 OpenAI プロトコルを話すものを動かしているなら、Beetroot をそこに向けるだけです。

AI スパークル: 変換されたものが見える

このアップデート以前は、AI で変換されたクリップを一目で原本と区別する方法がありませんでした。変換されたバージョンは、ただ履歴の中で他のクリップと同じように見えていました。

今は、AI 生成のエントリにはスパークルアイコンが表示されます。メインのクリップボードリストでも、Apps フィルタのサイドバーでも。何百ものクリップをスクロールしても、AI 処理されたものをすぐに見つけられます。

Beetroot のクリップボードリストで、AI スパークルアイコンが付いた翻訳クリップと、Chrome アイコンの原本を並べて表示

さらに、Space を押して AI 変換クリップをプレビュー表示すると、使用された プロンプト名とモデル が表示されます。「Any to English · gpt-5-nano」のような形でプレビューに直接出ます。そのクリップに何が起きたか、どの AI が生成したかが正確にわかります。

ソースアプリのよりスマートな検出

Beetroot は常にクリップがどのアプリケーションから来たかを追跡してきました。しかし特定のアプリでは検出が不安定で、パターンも一定でした。

v1.5.0 以前v1.5.0 以降
java.exeIntelliJ IDEA
python.exeJupyter Notebook
electron.exeObsidian
最後にアクティブだったウィンドウBeetroot (プレビューからコピーしたとき)

IntelliJ や Screaming Frog のような Java アプリは汎用的なプロセス名を表示していました。Windows のクリップボード API がプロセスを報告し、ウィンドウは報告しないからです。Python アプリも同じ理由で見えませんでした。Electron アプリはウィンドウクラスの登録方法によって当たり外れがありました。

私はアプリ名解決を書き直し、プロセス名に頼る代わりに、実際のウィンドウタイトルとアイコンを取得するようにしました。今では Java、Python、Electron アプリすべてが、本当のウィンドウアイコンと正しい名前で表示されます。

Beetroot のプレビューパネルに、ソースアプリ Chrome、ウィンドウタイトル Google Translate、クリップのメタデータを表示

もうひとつの修正: Beetroot 自身のプレビューパネルからのコピーは、最後にアクティブだったウィンドウではなく、正しく Beetroot をソースアプリとして表示します。ウィンドウタイトルとノートはクリップボードリストでもサブタイトルとして表示されるので、プレビューを開かずにより多くの文脈が得られます。

安定性と UX の修正

AI 変換後にウィンドウが開いたまま。 Beetroot をピン留め (always on top) していると、クリップを変換した後に閉じてしまっていました。今は結果をコピーしてそのまま開いた状態を保ちます。

API キーテストのハング。 API に到達できない場合、Test ボタンが永遠に回転していました。今は数秒でタイムアウトし、何が問題だったか教えてくれます。キーが間違っている、ネットワークエラー、プロバイダがダウンしている、など。

セキュリティ: エンドポイント検証

Settings のローカル AI エンドポイント入力欄は、内部ネットワークアドレスを含む任意の URL を受け入れていました。誰かがあなたの Beetroot 設定にアクセスできれば、エンドポイントを http://169.254.169.254 や任意の内部サービスに向け、AI 変換を内部 API へのプロキシとして利用できる状態でした。

これは古典的な SSRF (Server-Side Request Forgery) ベクタです。v1.5.0 では、エンドポイント欄はプライベートおよび予約 IP 範囲のブロックリストで URL を検証するようになりました。ルーティング可能なアドレスと localhost (ローカルモデル用) のみが受け入れられます。

影響を受けたユーザー: カスタム Local LLM エンドポイントを設定したユーザーのみ。クラウドプロバイダ (OpenAI、Gemini、Claude、DeepSeek) は影響を受けませんでした。これらのエンドポイントはハードコードされています。アップデート後にユーザー側で必要な操作はありません。

変わらなかったこと

質問の多かったいくつかの点について。

  • プロンプトライブラリは引き継がれます。 すべてのカスタムプロンプト、モデル設定、AI 設定はそのまま残ります。
  • 右クリック変換メニューは同じです。 ショートカットもフローも同じ。プロバイダだけが裏で動きます。
  • クラウドはオプションのままです。 AI プロバイダを設定しなければ、Beetroot は以前と全く同じように動作します。AI のないクリップボードマネージャです。
  • データはローカルに残ります。 SQLite データベース、クリップ、履歴。何も移動していません。AI 変換は あなたが 変換を選んだときにだけ、選択したテキストを送信します。

アップデート方法

Beetroot は次回起動時に自動でアップデートを提案します。または v1.5.0 を手動でダウンロード してください。

これは Beetroot の AI レイヤを 1 つのプロバイダに固定するのではなく、柔軟にするリリースです。Gemini で無料の AI、ローカルモデルで完全オフラインの変換、または改善されたソースアプリ追跡が欲しいならアップデートを。

ディスカッション

コメント欄はありません。議論は X で行っています。

Max Nardit

Max Nardit

@mnardit

ほかの記事

Beetroot v1.6.6:Office 修正

Excel と Word のセルが値ではなくスクリーンショットとしてキャプチャされていました。Microsoft Store の自動起動が密かに壊れていました。画像サムネイルがギガバイト単位の RAM を消費していました。v1.6.6 はこの 3 つに加え、大型の 1.6.5 AI Vision リリース後のセキュリティと信頼性の作業を修正します。

Beetroot v1.5.0:OpenAI、Gemini、Claude、DeepSeek、Ollama