ドキュメント

ドキュメント

Mistral Vibe CLI

Vibe CLI からサードパーティーのエンドポイントへ接続するには、TOML のブロックを手動で編集します。Mistral の公式ドキュメントでは、ゲートウェイを使った例を紹介しています。[[providers]] の下に 5 行を追加すれば、自分のキーで Claude や GPT を実行できます。

.vibe/config.tomlに5行の[[providers]]ブロック — api_base、api_key_env_var、api_style — を追加してVibe CLIをKunavoに接続し、キーはファイルではなく環境変数に保持します。

.vibe/config.toml
# ./.vibe/config.toml (project) or ~/.vibe/config.toml (user).
# "Project-level configuration takes precedence over user-level
# configuration", and the project file loads only in a trusted folder.
active_model = "sonnet-kunavo"

[[providers]]
name = "kunavo"
api_base = "https://api.kunavo.com/v1"
api_key_env_var = "KUNAVO_API_KEY"
api_style = "openai"
backend = "generic"

[[models]]
name = "claude-sonnet-5"
provider = "kunavo"
alias = "sonnet-kunavo"
# Optional, and documented on the api-keys-profiles page:
#   temperature   sampling temperature
#   input_price   indicative per-input cost, fed to --max-price
#   output_price  indicative per-output cost, fed to --max-price
# Take the two prices from the table further down this page if you want
# --max-price to mean anything.

# The key never goes in config.toml. api_key_env_var names the variable:
#   export KUNAVO_API_KEY="sk-kn-..."
api_baseには/v1を残します。 Mistralのリファレンスは、このフィールドを「プロバイダーのAPIのベースURL」とだけ説明しており、サフィックスの規則は明記していません。判断の根拠は、両方のドキュメントページにある具体例がapi_base = "https://openrouter.ai/api/v1"を使用していることと、v2.25.5のソースに示されたその理由です。openaiアダプターはapi_baseに/chat/completionsだけを追加し、CLIの組み込みMistralプロバイダーも同じ理由で/v1をデフォルトのベースURLにしています。サフィックスを外すと、ルートにある/chat/completionsを要求することになり、認証エラーではなく404になります。
以下の構成は、下記の日付時点の Mistral 公式ドキュメントと Vibe のソースを参照したものです。Kunavo は自社エンドポイントで Vibe CLI を実行していません。セッション、ストリーミングのターン、ツールの往復はいずれも未実施です。セットアップ手順の公開は、実行時のテストを意味せず、このページもテスト結果として解釈しないでください。以下のcurlで確認できるのは 10 秒で判定できる範囲です。その後のクライアントの動作は、実際に Vibe を使って確認してください。
Kunavo は埋め込み、テキスト読み上げ、音声認識モデルを提供していないため、このエンドポイントが応答するのはチャット補完だけです。プロバイダーブロックをここに向けるとモデルのターンには対応しますが、それ以外の処理は移行されません。
この動作は結果的に役立つので、その理由を知っておくとよいでしょう。Vibe の OpenAI パスはすべてのペイロードにtemperatureフィールドを設定します。一方、いくつかの Claude ID(claude-sonnet-5やclaude-opus-5など)は、上流でサンプリングの 3 つのパラメーターすべてに対して400を返します。Kunavo は、これらのパラメーターを拒否する ID に限り、ディスパッチ前にそのパラメーターを削除します。そのため、クライアントが無条件にこのフィールドを設定することが原因でリクエストが拒否される事態を防げます。したがって、[[models]]プリセットのtemperatureキーはここでは問題なく、これらの ID に対しては効果もありません。
まだキーをお持ちですか?Kunavoアカウントを作成し、キーを作成します(sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、Mistral Vibe CLI設定が表示されます。

手順

  1. /app/keys でキーを作成してコピーします。キーは一度だけ表示されます。
  2. ~/.vibe/config.tomlを開くか、適用したいリポジトリに./.vibe/config.tomlを作成し、上記のブロックを貼り付けます。プロバイダー追加のためにクリックして進む画面はありません。Mistral ではこのファイルを手動編集する仕様で、/configと/modelで切り替えられるのは、すでに存在するプリセットだけです。
  3. api_key_env_varで指定した変数(export KUNAVO_API_KEY="sk-kn-...")をエクスポートします。Mistral の認証情報ページでは、CLI が起動時に認証情報を読み込むファイルとして~/.vibe/.envを案内しています。Mistral の公式サードパーティー向け例では、Mistral 以外のキーにシェルのexportを使っています。
  4. 使いたい ID ごとに[[models]]プリセットを追加し、それぞれに固有のaliasを指定します。その後、active_modelをいずれかのエイリアスに設定してください。エイリアスはローカルで使われます。/modelに表示される名前であり、実際にエンドポイントへ送信される ID はnameです。
  5. 信頼できるフォルダーでvibeを実行し、あいさつではなくファイルを操作するタスクを与えてください。ファイルを読み込んで編集する初回のターンでツール呼び出しが実行されます。プロバイダーの設定ミスは、通常この段階で明らかになります。

Mistral の Vibe Code CLI 設定ページで2026年9月21日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。

これが短い概要です。完全な手順 — モデルの選択、実際のセッション費用、失敗するケース — はVibe CLI と Claude Code の比較にあります。

クライアントをデバッグする前に確認すること

1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベースURLとキーがMistral Vibe CLIで機能します。

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

フィールドに入力するモデルID

すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。

モデル IDKunavo 入力 / 出力Mistral Vibe CLIでの位置付け
claude-sonnet-5$1.40 / $7.00通常使用するエイリアス — 多くの日は active_model がこれを指します
claude-opus-5$3.50 / $17.50プランモード用の 2 つ目のプリセット。誤ったプランのコストが高くなる場面向け
claude-haiku-4-5$0.70 / $3.50低コストのターンと素早いファイルの振り分け用に、切り替え可能な独自のエイリアスとして設定
gpt-5-6-sol$2.00 / $12.00同じプロバイダーブロックとキーのまま、別のファミリーを利用
請求は月額料金なしの前払い残高からトークン単位で行われます — 請求を参照してください。繰り返し送られるコンテキスト(エディターやチャットクライアントが送る内容の大半)では、プロンプトキャッシュのほうがモデル選択より請求額を大きく左右します。

すべてのトラフィックがこのプロバイダーに送られるわけではありません

これは設定ブロックからはわからない部分であり、KunavoではなくVibe固有の動作です。v2.25.5では、利用可能なMistralプロバイダーがあると、CLIはバックグラウンドの「ユーティリティ」補完、つまり会話やワークツリーに名前を付ける小さな呼び出しを、Mistral自身のmistral-vibe-cli-fastモデルに送ります。付属のデフォルト設定には常にMistralプロバイダーが1つ設定されており、セッションで使用中のモデルがご自身のモデルであっても、この動作は変わりません。ソースには、優先先とフォールバックの両方が明記されています。利用可能なMistralプロバイダーがない場合、ユーティリティ呼び出しは代わりにセッションで使用中のモデルに送られます。

セッション内のすべてのリクエストを設定したプロバイダーに送信するには、次のいずれかを満たす必要があります。

  • MISTRAL_API_KEYを未設定にして、ファストモデルの認証情報が解決されず、ユーティリティ呼び出しがフォールバックするようにする。または
  • allowed_modelsによってファストモデルのエイリアスを除外する。キーではなく許可リストによって同じ結果になります。

Smart Approve の分類器はさらに厳格です。2.25.1 の変更履歴によると、セッションのアクティブモデルに関係なく、ファスト Mistral モデルで実行されます。そのため、Kunavo だけを使うセッションは、現実的には Smart Approve ではなくaccept-editsまたはplanで動作します。この動作によって上記の設定が壊れるわけではありません。ただし、プロバイダーブロックが対象とするのはモデルのターンであり、バイナリが送信するすべてのリクエストではありません。

その他の api_style 値

ドキュメントではapi_styleの値を 1 つ示し、例として説明しています。値は"openai"です。v2.25.5 のソースにはさらに 4 つ("anthropic"、"openai-responses"、"reasoning"、"vertex-anthropic")がありますが、単純な辞書に登録され、検証はありません。そのため、タイプミスはファイル読み込み時ではなく、リクエスト時に判明します。これらはソースで確認済みですが、ドキュメントには記載されていない値として扱ってください。Anthropic の値を試す場合には注意が必要です。そのアダプターのエンドポイントは/v1/messagesです。そのため、api_baseには末尾に/v1を付けず、https://api.kunavo.comのようにベースのオリジンをそのまま指定します。これは上記のブロックとは逆です。claude-で始まる ID であれば、Kunavo は/v1/messagesに応答します。このページでは、Mistral のドキュメントに記載されているopenaiスタイルを使っています。

よくある質問

Mistral Vibe CLI にカスタムプロバイダーを追加するには?

config.toml を手動で編集します。プロバイダー追加用の UI はありません。Mistral の設定ページでは、作業ディレクトリ内の ./.vibe/config.toml とホームディレクトリ内の ~/.vibe/config.toml が案内されており、プロジェクトのファイルが優先されます。公式の使用例では、name、api_base、api_key_env_var、api_style、backend を含む [[providers]] テーブルと、name、provider、alias を含む [[models]] テーブルを追加し、active_model にそのエイリアスを指定しています。キー自体はファイルに記述しません。api_key_env_var は、キーを保持する環境変数の名前を指定します。

Vibe CLI の api_base の末尾には /v1 が必要ですか?

api_style が “openai” の場合は必要です。Mistral の設定リファレンスでは api_base をプロバイダー API のベース URL とだけ説明し、サフィックスについての規則は示していません。しかし、2 つのページにある公式の使用例はいずれも /v1 で終わる値を使っています。v2.25.5 のソースから、その理由がわかります。OpenAI スタイルのアダプターは api_base に /chat/completions を追加するだけで、それ以上は追加しません。また、CLI 内蔵の Mistral プロバイダーも、デフォルトで /v1 付きのベースを使用します。したがって、Kunavo では https://api.kunavo.com/v1 を指定します。サフィックスを省略すると、認証エラーではなく 404 が返ります。ドキュメントに記載されていない “anthropic” スタイルでは逆です。エンドポイントは /v1/messages のため、api_base に /v1 を付けてはいけません。

Mistral Vibe CLI で Claude モデルを実行できますか?

はい。スイッチではなく、プロバイダープリセットを通じて実行できます。api_style が示すのはベンダーではなくワイヤープロトコルです。モデルプリセットの name フィールドは記述どおりにエンドポイントへ送られるため、Claude ID は CLI 内ではなく、設定したエンドポイントで解決されます。Mistral の公式ドキュメントにはサードパーティーのゲートウェイを使った例があり、この方法が回避策ではなく、ドキュメントに記載された使い方であることを示しています。

独自プロバイダーを設定したのに、Vibe CLI が引き続き Mistral を呼び出すのはなぜですか?

バックグラウンドのユーティリティ補完は、別の経路で送られるためです。v2.25.5 では、Mistral プロバイダーを利用できる場合、CLI は会話やワークツリーに名前を付ける小規模なバックグラウンド呼び出しに Mistral 独自の mistral-vibe-cli-fast モデルを優先します。同梱のデフォルト設定では、セッションのアクティブモデルが別のモデルであっても、Mistral プロバイダーが常に構成されています。Mistral プロバイダーを利用できない場合はアクティブモデルにフォールバックします。実際には、MISTRAL_API_KEY が未設定か、allowed_models でそのエイリアスが除外されている状態です。Smart Approve の分類器はさらに厳格で、変更履歴によるとセッションのアクティブモデルに関係なく、ファスト Mistral モデルで実行されます。

KunavoはMistral Vibe CLIをテストしましたか?

いいえ。2026年9月21日に確認したのはMistral公式ドキュメントです。フィールド名とその順序、/v1に関する記述は同ドキュメントに基づき、ベースURLの判断はmistral-vibeパッケージのv2.25.5のソースで確認しました。Kunavoは自社エンドポイントに対してVibeセッションを実行しておらず、ストリーミング、ツール呼び出しの往復、長時間のタスクにおけるクライアントの挙動については何も主張していません。このページのcurlコマンドを使えば、Vibeセッションとは別にエンドポイントとキーを確認できます。それ以外は、あなたとクライアントの間で確認してください。

Vibe CLIはどこからAPIキーを読み込みますか?

api_key_env_varで指定した環境変数から読み込みます。Kunavoのプロバイダーブロックでは、たとえばKUNAVO_API_KEYのように、任意の名前を指定できます。Mistralの認証情報ページでは、Mistral自身のキーについて優先順位付きで3つの設定方法を案内しています。対話型セットアップフローで~/.vibe/.envに書き込む方法、エクスポートした環境変数でファイルの設定を上書きする方法、そして~/.vibe/.envを直接編集する方法です。CLIは起動時にこのファイルを読み込みます。サードパーティ製プロバイダーの例では、シェルのexportを使っています。同ページでは、.envには認証情報のみを保存し、一般設定はconfig.tomlに記述するよう案内しています。