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/crushcrush --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 128000model large bettertoken/YOUR_MODEL_IDmodel small bettertoken/YOUR_MODEL_IDpermissions 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 の場所と内容を確認します。プロジェクト設定が上書きしていないかも確認してください。 |
401 | Crush の起動前に BETTERTOKEN_API_KEY を export し、その値を確認します。 |
| 設定にモデルが明示されていない | provider だけを設定したテストでは、Crush は /v1/models からモデルを取得しました。model add を明示すると、この例で使うモデル名を指定できます。 |
| ファイルアクセスに許可が必要 | 読み込まれた設定で permissions allow view を確認します。 |
関連ガイド
技術情報
テストした openai-compat provider は生成リクエストを /v1/chat/completions に送信しました。モデルを明示しない場合、モデル検出には /v1/models が使われました。

