Gemini 4 HydrogenをClineとOpenCodeで使う設定手順

Cline CLIとOpenCode V2にHydrogenを設定。GoogleとOfoxの認証情報を区別し、ファイルツールの往復を確認して、バージョンやプロバイダーのエラーを切り分けます。

濃い灰色の馬蹄形磁石と、その先端をつなぐオレンジ色のキーパー。往復する経路を表しています。

Ofox経由でHydrogenを使う場合は、OpenAI互換プロバイダーを選び、Base URLを https://api.ofox.io/v1、送信するモデルIDを google/gemini-4-hydrogen に設定します。Cline CLIではプロバイダーを直接設定し、OpenCode V2ではカスタムプロバイダーとモデルを定義してから選択します。 テキストの回答が返ることは最初の確認にすぎません。コーディングクライアントには、ツール呼び出しを受け取り、ファイルを読み、その結果をモデルへ返す処理も必要です。

対象は Cline CLI 3.0.74とOpenCode V2 2.3.0。確認日は2026年11月13日です。Googleネイティブの認証情報とOfoxの認証情報を区別し、実際のリポジトリを接続する前に試せる、小さなファイル読み取りタスクを用意します。Clineのエディター拡張機能は別のバージョンと画面を持つため、ここでのCLIコマンドがすべての拡張機能のリリースに適用できるわけではありません。

この記事はOfoxが公開しています。正式リリースのクライアントを、合成したストリーミング応答を返すローカルサーバーに接続して確認しました。両クライアントが実際にテストファイルを読み、内容を返しています。ただし、有料のHydrogenリクエスト、顧客アカウントの検証、モデルの品質や速度のベンチマークは実施していません。選択したアカウントと経路が最後まで動くことは、後述の実サービスでの確認手順を自分の環境で実行して確かめてください。

本文で参照するOpenCode、Cline、Googleの公式ドキュメントは英語です。

プロバイダー、キー、モデルを一組で選ぶ

Googleのモデル名をOfoxプロバイダーと混ぜたり、GoogleプロバイダーにOfoxキーを入れたりしないでください。ローカルのモデル別名と、ネットワーク上で送信されるIDも別物です。

設定項目Googleネイティブ経路以下で使うOfox経路
認証情報の所属自分のGoogleプロジェクト自分のOfoxアカウント
ClineプロバイダーgeminiCLI認証コマンドでは openai。OpenAI互換として保存
サービスに送るモデル名gemini-4-hydrogengoogle/gemini-4-hydrogen
カスタムBase URLネイティブプロバイダーの既定値を維持https://api.ofox.io/v1
リクエスト形式クライアント側のGoogleプロバイダー実装OpenAI互換Chat Completions
本文のOpenCodeでの選択ここでは設定しないofox-hydrogen/hydrogen。ローカルのプロバイダー/モデル別名
使用量の計上先Googleプロジェクトの割り当てと請求Ofoxアカウントの使用量と残高

Googleが新規連携にInteractionsを推奨していても、既存のコーディングクライアントのGoogleプロバイダーが自動的にそのAPIを使うとは限りません。InteractionsのエンドポイントをOpenAI互換のBase URL欄に貼り付けないでください。それぞれのリクエストと応答の形式はHydrogen APIの接続ガイドで説明しています。

今回確認したOfoxのカタログには、HydrogenのOpenAI/Geminiプロトコル対応とChat Completionsエンドポイントが掲載されています。これは連携経路を示す情報であり、クライアントの全機能、上流のツール動作、個々のアカウントの利用枠まで独立に証明するものではありません。OfoxキーはAPIキー認証の手順、メッセージ、ストリーミング、ツールの各フィールドはChat Completionsのドキュメントを参照してください。

対象バージョンをインストールして小さなプロジェクトを作る

OpenCodeはパッケージ名が重要です。現在の公式インストール手順では @opencode/cli でV2を導入します。旧パッケージの opencode-ai はV1です。どちらも opencode コマンドを提供するため、コマンド名だけでは適切な設定構文を判別できません。

この記事で確認したリリースを固定して導入する場合は、次のとおりです。

npm install -g cline@3.0.74
npm install -g @opencode/cli@2.3.0
cline --version
opencode --version

利用するOSのインストール要件は公式手順で確認してください。ここでのバージョン固定は再現のためであり、今後も最新版であり続けるという意味ではありません。すでにOpenCode V1を使っている場合は、グローバルインストールを変更する前にV1からV2への移行ガイドを読んでください。V2は既存ワークフローで使っている同名コマンドを置き換える場合があります。

V1とV2の移行について説明するOpenCode公式の英語ドキュメント。

2026年11月13日に取得したOpenCode公式の英語画面です。バージョンの違いを示す資料であり、Hydrogenのモデルテスト結果ではありません。移行ガイドの原文。

最初のツールテスト用に独立したディレクトリを作ります。独自のGitルートを設けることで、クライアントがプロジェクト設定を探索する際の境界も明確になります。

mkdir hydrogen-client-check
cd hydrogen-client-check
git init
printf 'Local test marker: HYDROGEN_CLIENT_CHECK_20261113\n' > fixture.txt

最初はこのテストファイルだけを含むプロジェクトにしてください。確認したいのは一度のファイル読み取りであり、大きなリポジトリのレビューや連続した編集の承認ではありません。キーを opencode.json やバージョン管理に含めないでください。OpenCodeの例では OFOX_API_KEY から読み取ります。通常使っているローカルのシークレット管理方法で変数を設定し、値を記入した環境ファイルはコミットしないでください。

Cline CLIでHydrogenを設定する

ClineのCLIリファレンスには、プロバイダー認証とカスタムモデル選択の説明があります。Ofox経由では、正確なBase URLとモデルIDを使ってOpenAI互換プロバイダーを設定します。

cline auth -p openai \
  -b https://api.ofox.io/v1 \
  -m google/gemini-4-hydrogen \
  -k "$OFOX_API_KEY" \
  --data-dir "$PWD/.cline-hydrogen"

openai は今回のテストで使用したCLIのプロバイダー引数で、保存時には openai-compatible に正規化されました。カスタムデータディレクトリによって、今回のテスト状態を普段のCLI状態と分離できます。このディレクトリは非公開のローカル設定として扱い、バージョン管理から除外してください。コマンドは認証情報をクライアントへ渡すため、変数展開後の引数をログやスクリーンショットに残さないでください。環境に合う場合はClineの対話式認証も利用できます。

Base URLは /v1 までにします。/chat/completions はプロバイダーが付加するため、自分で追加しないでください。ローカルで取得したリクエストでも /chat/completions が追加され、設定したモデル文字列がそのまま送信されていました。

代わりにGoogleネイティブ経路を使う場合は、別のデータディレクトリでGoogleキーとネイティブのモデルIDを設定します。

cline auth -p gemini \
  -m gemini-4-hydrogen \
  -k "$GEMINI_API_KEY" \
  --data-dir "$PWD/.cline-google-hydrogen"

このコマンドにOfoxのBase URLを追加しないでください。設定確認では、Cline CLI 3.0.74は gemini のカスタムBase URLを拒否しました。一方、ダミーキーでネイティブ設定の保存は成功しました。これはCLIが設定を受け付けることだけを示し、キーの有効性やプロジェクトのHydrogen利用資格を示すものではありません。初回のネイティブリクエストが失敗した場合は、Hydrogenのアクセス手順に従ってGoogleプロジェクトの割り当てと認証要件を確認します。

次に、テストファイルのディレクトリからOfoxの確認タスクを開始します。

cline --data-dir "$PWD/.cline-hydrogen" \
  --auto-approve false \
  "Read fixture.txt using a file tool. Return its exact marker. Do not modify files or run shell commands."

確認が求められたら、意図したファイル読み取りかを確かめて承認します。このCLIバージョンは既定で自動承認が有効になるため、--auto-approve false を明示しています。これは対話式の動作確認であり、無人実行のジョブではありません。後で自動化する際は、その用途に合わせて権限を定義してください。

モデル選択欄にHydrogenがない場合は、一覧とサービス自体を区別してください。確認したClineソースのモデルカタログにはHydrogenがありませんでしたが、CLIではカスタムHydrogen IDを保存できました。どちらも実サービスでの可用性を証明しません。正確なカスタムモデルIDと保存済みプロバイダーを確認し、似た名前の旧モデルを選ぶのではなく、初回の実応答を調べてください。拡張機能に関する背景はClineのAPI設定ガイド(英語)を参照できます。

OpenCode V2にカスタムHydrogenプロバイダーを設定する

テストプロジェクトに opencode.json を作成し、次の完全なV2設定を保存します。現在のプロバイダー設定とモデル設定の構造を使用しています。

{
  "$schema": "https://opencode.ai/config.json",
  "model": "ofox-hydrogen/hydrogen",
  "providers": {
    "ofox-hydrogen": {
      "name": "Ofox Hydrogen",
      "env": ["OFOX_API_KEY"],
      "package": "@opencode/ai/providers/openai-compatible",
      "settings": {
        "baseURL": "https://api.ofox.io/v1"
      },
      "models": {
        "hydrogen": {
          "modelID": "google/gemini-4-hydrogen",
          "name": "Gemini 4 Hydrogen",
          "limit": {
            "context": 1048576,
            "output": 65536
          },
          "capabilities": {
            "tools": true,
            "temperature": false
          }
        }
      },
      "compatibility": {
        "maxTokensField": "max_tokens"
      }
    }
  },
  "permissions": [
    { "action": "*", "resource": "*", "effect": "deny" },
    { "action": "read", "resource": "*fixture.txt", "effect": "allow" }
  ]
}

三つの名前を区別してください。

  • ofox-hydrogen はローカルのプロバイダーキーです。独自の名前にすることで、組み込みプロバイダーや既存のカスタマイズとの混同を避けます。
  • hydrogen はローカルのモデルキーです。組み合わせた選択文字列が ofox-hydrogen/hydrogen になります。
  • google/gemini-4-hydrogen は modelID で、互換プロバイダーがOfoxに送信する値です。

コンテキストと出力の数値はモデルの制限をクライアントへ伝える情報であり、利用枠の付与や毎回最大値まで使える保証ではありません。Hydrogenの1,048,576トークンのウィンドウは入力、思考、出力で共有されます。65,536トークンの出力予算には思考も含まれ、表示される文章だけではありません。それぞれ独立に最大まで使える枠ではなく、出力上限も目標回答長ではありません。まず小さなタスクを実行し、経路が実際に返す使用量を確認してください。

互換性設定では二点に注目します。temperature: false は、そのサンプリング指定を送らないようクライアントに伝えます。maxTokensField: max_tokens は、Ofoxのドキュメントにある出力トークンフィールドに合わせる設定です。上書き前のOpenCode V2の取得リクエストは max_completion_tokens を使い、上書き後の主要リクエストは max_tokens を使いました。検証したのはクライアント側の送信フィールドの変化であり、Ofoxが他の別名をすべて拒否するという証拠ではありません。

権限ルールは他の操作を拒否し、テストファイルの末尾に一致する読み取りだけを許可します。この一つのテストファイルが入ったプロジェクト向けの狭い設定ですが、ワイルドカードは他の fixture.txt で終わるパスにも一致します。OSレベルのサンドボックスではありません。実際のリポジトリ、編集ツール、シェル操作向けに変更する前にOpenCodeの権限説明を確認してください。

設定ファイルのパスを明示して実行します。

OPENCODE_CONFIG="$PWD/opencode.json" \
  opencode run --standalone --format json \
  --model ofox-hydrogen/hydrogen \
  "Read fixture.txt using a file tool. Return its exact marker. Do not modify files or run shell commands."

--standalone は検証したV2 CLIで利用できます。設定パスとモデル選択を明示すると、継承した設定や意図しない既定モデルの診断が容易になります。JSONイベント出力は確認用に保存し、共有前に認証情報や非公開パスを除去してください。

OpenCodeの一般的なAPI設定ガイド(英語)では、より広いプロバイダー設定の背景を説明しています。今回の例では上記のV2設定を一貫して使い、複数形の providers や permissions を古いV1の例に部分的に混ぜないでください。

ファイルツールの往復を最後まで確認する

回答には HYDROGEN_CLIENT_CHECK_20261113 が含まれるはずですが、その文字列だけでは十分な証拠になりません。ファイルを読まずに会話履歴の値を繰り返すこともあるためです。クライアントのツールイベントで、次の順序を確認します。

  1. 意図したプロバイダーと正確なモデルIDでリクエストしている。
  2. モデルが fixture.txt のファイル読み取りツールを要求する。
  3. クライアントがツールを実行し、その結果にファイル内のマーカーが含まれる。
  4. クライアントが次のモデルリクエストでツール結果を返す。
  5. モデルが返された結果に基づく最終回答を生成し、未完了のツール呼び出しやクライアントエラーが残らない。

より確実に確認するには、ファイル内のマーカーを変更し、新しい値をプロンプトに含めず、新規タスクを開始します。返されるマーカーも変わるはずです。ファイルが編集されていないこと、予期しない操作を承認していないことも確認します。これは小さな正しさのテストであり、Hydrogenが実際のコードベースでどれほど優れた機能実装を行うかの評価ではありません。

公開前の確認で得られた結果は、次の範囲に限られます。

正式リリースのクライアント実際のローカル結果合成または未検証の部分
Cline CLI 3.0.742回のストリーミングChat Completionsリクエスト。実際の read_files 実行とサーバーへのマーカー返却モデル応答は合成。Ofox/Google推論は未実施
OpenCode V2 2.3.0実際のファイル読み取りの往復。正しいモデルIDと max_tokens 上書きを確認モデル応答は合成。アカウントアクセスと上流の署名動作は未検証
OpenCode V1 1.19.5別途用意した旧版設定でローカルの読み取り往復が完了このV2設定がV1で使えることは示していない

OpenCodeはテスト中に補助リクエストも行いました。一つのユーザータスクが課金対象のモデルリクエスト一回と一致するとは限りません。実サービスにつないだ後はアカウントの実使用量を確認してください。ローカルテストの所要時間や合成トークン数は、性能や課金の証拠として使用していません。

Clineのカスタムモデルで取得したリクエストには、明示的な max_tokens や temperature がありませんでした。モデル名を保存するとOpenCodeの例と同じ出力上限も設定される、と考えないでください。大きな処理を始める前に、クライアントが対応する設定と実際の送信内容を確認します。

バージョン、認証、ツール履歴のエラーを切り分ける

一度に変更する変数は一つにします。まず、設定の読み込み、認証、テキスト生成、ツール結果の返却のどこで失敗するかを特定してください。

症状確認する境界次の操作
V2 permissions are not supported by OpenCode V1設定と実行ファイル/パッケージの不一致opencode --version を確認し、V2を使うか設定全体をV1構文へ変換
モデルが見つからない、ローカルモデルが不明別名と送信ID、プロバイダー選択、古いカタログローカルの ofox-hydrogen/hydrogen と送信時の google/gemini-4-hydrogen を確認
401、無効なキー別サービスのキー、またはキー未設定プロバイダーとOfoxの認証形式を確認。モデル名だけを変えない
404、想定外のエンドポイントパスの二重追加、プロトコルの違い互換Base URLを /v1 までにし、Chat Completionsエンドポイントと比較
Googleネイティブ経路の 403プロジェクトアクセス、認証、ポリシー正確なエラーを読み、対象Googleプロジェクトの資格を確認
429、利用枠の消費割り当て、レート制限、残高再試行前に制限の詳細とOfoxのエラー処理を確認
テキストは返るが読み取りが拒否されるクライアントの権限ポリシー実際のルールとツール名/パスを比較。一度の読み取りのために全ツールを有効にしない
ツール呼び出し後のリクエストが失敗ツール結果ID、メッセージ履歴、思考署名プロバイダー応答とツールの対応を保持し、失敗した2回目のリクエストを確認

最初のバージョンエラーは、V1にV2の権限配列を渡して再現しました。パッケージ更新と権限ポリシーの移行は別の操作です。適切な実行ファイルを選んでも、既存プロジェクトのポリシーが同じ意味を保つことまで自動的には確認できません。

Geminiの関数呼び出しと思考署名のドキュメントは、複数ターンのツール処理にテキスト履歴以上の情報が必要な理由を説明しています。必要なモデル状態をクライアントやアダプターが削除すると、最初のターンだけ成功し、次で失敗する場合があります。Geminiツール呼び出しの思考署名不足を調べる方法も参照してください。これは失敗パターンの説明であり、両クライアントにHydrogenでその不具合があると証明したものではありません。

Gemini APIエラーの対処ガイドは、認証、割り当て、不正なリクエストの区別にも役立ちます。ただしArgonを対象に書かれているため、Hydrogenの実応答と比較し、モデル固有の内容までそのまま当てはまるとは考えないでください。署名を捏造したり、失敗したツール結果を黙って捨てたりして修復しないでください。

実際のコーディングに進む前に動作基準を保存する

クライアントのパッケージとバージョン、プロバイダー、送信モデルID、Base URL、関連設定、権限ルール、成功したファイルツールの記録を残します。認証情報は記録に含めません。ローカルの合成テストか実サービスのテストか、どのアカウントの利用枠を使ったかも明記してください。

実サービスでファイルテストが通ったら、小さなリポジトリで一つの関数を読み取り専用で説明させます。その後、確認可能な一つの編集を許可し、プロジェクトの関連チェックを実行します。この順序で、経路やツール伝送と、モデルによるコードの判断を分けられます。ファイルが読めたことだけでは、シェル操作の安全性、編集の信頼性、全プラグインとの互換性は証明できません。

クライアント、プロバイダー、モデルバージョンを変えたら、最初にこの小さな確認タスクを再実行してください。生のリクエストを調べる場合はHydrogen APIガイド、モデルを選ぶ場合はCarbon・Hydrogen・Argonの選び方を使います。モデルの選択と、そのクライアントがツール処理を完了できるかは別々に判断してください。