コンテンツにスキップ
無料で登録
Coding Agent のセットアップ

Crush のセットアップ:API Key、Base URL、モデル

crushrc に BetterToken API Key と Base URL を設定し、モデル選択と No providers configured の解決方法を紹介します。

crushrc の openai-compat provider で Crush を BetterToken に接続します。GPT モデルを使った macOS のテストでは、Crush 0.98.2 がコールドスタートのテキストリクエスト 3 件すべてと、/v1/chat/completions 経由のファイル読み取りツール呼び出しを完了しました。

主な設定

項目値
API Key--api-key で渡す BetterToken API Key
Base URL--base-url で渡す https://bettertoken.ai/v1
モデルbettertoken/YOUR_MODEL_ID
プロバイダーの種類openai-compat
設定ファイル~/.config/crush/crushrc

前提条件

インストール

公式 Crush リポジトリの Homebrew コマンドを使います。

ターミナルウィンドウ
brew install charmbracelet/tap/crush
crush --version

手動設定

Crush を実行するターミナルで BetterToken API Key を設定します。

ターミナルウィンドウ
export BETTERTOKEN_API_KEY="YOUR_API_KEY"

推奨される Bash 設定形式を使って ~/.config/crush/crushrc を作成します。すべての YOUR_MODEL_ID を置き換え、--context-window を選択したモデルに記載された上限に設定します。例の 128000 はクライアント側の宣言値であり、BetterToken のモデル上限として確認された値ではありません。

ターミナルウィンドウ
provider add bettertoken --type openai-compat --base-url "https://bettertoken.ai/v1" --api-key "$BETTERTOKEN_API_KEY"
model add bettertoken/YOUR_MODEL_ID --name "YOUR_MODEL_ID" --context-window 128000
model large bettertoken/YOUR_MODEL_ID
model small bettertoken/YOUR_MODEL_ID
permissions allow view

これらのコマンドを crushrc に保存すると、起動時に Crush が実行します。permissions allow view はファイル表示ツールを許可します。古い JSON 設定形式は開発元で非推奨になっていますが、現在も動作し、テストではそのテキストリクエストも成功しました。

接続の確認

同じターミナルでプロジェクトから実行します。

ターミナルウィンドウ
crush run "Reply with only: OK"

最終回答が OK であることを確認します。ファイルアクセスを確認するには、プロジェクト内の既知のファイルを Crush に読み取らせ、view ツールの結果と最終回答の両方を確認してください。

モデルの切り替え

model add で別のモデルを追加し、crushrc の model large と model small の選択を更新して、新しい実行を開始します。

よくあるエラー

症状確認事項
No providers configured利用可能な provider が読み込まれていない場合、Crush はリクエスト送信前にこのエラーを表示します。crushrc の場所と内容を確認します。プロジェクト設定が上書きしていないかも確認してください。
401Crush の起動前に BETTERTOKEN_API_KEY を export し、その値を確認します。
設定にモデルが明示されていないprovider だけを設定したテストでは、Crush は /v1/models からモデルを取得しました。model add を明示すると、この例で使うモデル名を指定できます。
ファイルアクセスに許可が必要読み込まれた設定で permissions allow view を確認します。

関連ガイド

技術情報

テストした openai-compat provider は生成リクエストを /v1/chat/completions に送信しました。モデルを明示しない場合、モデル検出には /v1/models が使われました。