Skip to Content
aicentos

Crush

Crush で aicentos を使う —— crush.json でカスタム provider を追加

最終更新:

Crush は Charmbracelet 製のターミナル用コーディングエージェントで、Go で書かれており、crush.json に任意の OpenAI 互換カスタム provider を宣言できます。base_url を aicentos に向ければ、TUI 内で aicentos が接続しているモデルを利用できます。

準備

まずコンソールの「API キー」ページで、Crush 専用のキーを作成してください(名前は crush のようにすると使用量の追跡に便利です):

Crush がインストール済みか確認します:

crush --version

設定値

項目値
設定ファイル~/.config/crush/crush.json
typeopenai-compat
base_urlhttps://aicentos.com/v1
api_key$AICENTOS_API_KEY
モデルコンソール「モデル広場」のモデル名

設定手順

1. API Key 環境変数の設定

export AICENTOS_API_KEY="sk-あなたの-API-Key"

永続化するには ~/.zshrc または ~/.bashrc に書き込み、source で反映させます。

2. crush.json の編集

グローバル設定ファイルは ~/.config/crush/crush.json にあります(Windows は %USERPROFILE%\AppData\Local\crush\crush.json)。プロジェクトルートの .crush.json または crush.json はグローバル設定を上書きします。

次を書き込みます:

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "aicentos": {
      "type": "openai-compat",
      "base_url": "https://aicentos.com/v1",
      "api_key": "$AICENTOS_API_KEY",
      "models": [
        {
          "id": "gpt-4o",
          "name": "GPT-4o",
          "context_window": 128000,
          "default_max_tokens": 8192,
          "can_reason": true
        }
      ]
    }
  }
}

models[].id はエンドポイント側のモデル ID と完全に一致している必要があります。コンソール「モデル広場」を基準に、対応モデル を参考にできます。

3. モデルの選択

crush を起動したら、TUI 内で Ctrl+L を押す(または /model と入力する)と、aicentos とそのモデルが表示されていることを確認できます。

テスト

非対話モードでクイック検証を行います:

crush run "1+1 はいくつですか?一文で答えてください"

リクエストログを見たいときは --debug を付けます。404 が出た場合は、base_url に /v1 が付いているか確認してください。

注意事項

  • type に openai と入力しないでください。openai は本当に OpenAI(または Azure OpenAI)を経由するプロキシのためのものです。サードパーティの互換エンドポイントを向ける場合は必ず openai-compat を指定してください。そうしないとモデルの認識エラーや API エラーが発生します。
  • base_url は /v1 まで入力し、末尾にスラッシュを付けないでください。
  • api_key は $VAR と $(command) の展開に対応しています。キーは環境変数やシークレットファイルに保持し、平文でハードコードしないことをおすすめします。
  • Anthropic プロトコルのエンドポイント(type が anthropic)に接続する場合、base_url は /api までにします。Crush が自動で /v1/messages を追加します。また、extra_headers に anthropic-version を追加で宣言する必要があります。
  • 既知の問題:カスタム provider 使用時、TUI 内のトークン数と費用集計が 0 と表示されることがありますが、実際のリクエストと課金には影響しません。
  • 思考出力を有効にしたい場合、OpenAI スタイルのモデルでは "can_reason": true と "reasoning_effort" を組み合わせ、Anthropic スタイルのモデルでは "think": true を使います。

関連リンク