Claude Code
Claude Code は Anthropic の Messages API と通信します。ai& は Anthropic 互換の /v1/messages エンドポイントを公開しているため、カタログ 内の tool_calling 対応モデルであればエージェントループを駆動できます。
設定方法は 2 つあります:
- セッション — 現在のシェルに環境変数を
exportします。ターミナルを閉じると失われます。お試し用。 - 永続化 — 同じ内容を
settings.jsonに書き込みます。セッションをまたいで有効になり、プロジェクト単位または全体に適用できます。
セッション(このターミナルのみ)
Section titled “セッション(このターミナルのみ)”1. Claude Code をインストール
前提: Node.js 18 以上
npm install -g @anthropic-ai/claude-codeインストール確認 — claude --version がバージョン番号を表示すれば成功です:
claude --version2. このターミナルで環境変数を設定
export ANTHROPIC_BASE_URL="https://api.aiand.com"export ANTHROPIC_AUTH_TOKEN="sk-your-aiand-api-key"export ANTHROPIC_API_KEY=""export ANTHROPIC_DEFAULT_OPUS_MODEL="moonshotai/kimi-k3"export ANTHROPIC_DEFAULT_SONNET_MODEL="moonshotai/kimi-k3"export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-ai/deepseek-v4-flash"export CLAUDE_CODE_SUBAGENT_MODEL="moonshotai/kimi-k3"3. Claude Code を起動
claude1. Claude Code をインストール
前提:
npm install -g @anthropic-ai/claude-codeインストール確認 — claude --version がバージョン番号を表示すれば成功です:
claude --version2. このターミナルで環境変数を設定
$env:ANTHROPIC_BASE_URL = "https://api.aiand.com"$env:ANTHROPIC_AUTH_TOKEN = "sk-your-aiand-api-key"$env:ANTHROPIC_API_KEY = ""$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "moonshotai/kimi-k3"$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "moonshotai/kimi-k3"$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-ai/deepseek-v4-flash"$env:CLAUDE_CODE_SUBAGENT_MODEL = "moonshotai/kimi-k3"3. Claude Code を起動
claude永続化 (settings.json)
Section titled “永続化 (settings.json)”Claude Code は起動時に settings.json の設定を読み込みます。同じ env ブロックを記述しておけば、以降 export し直す必要はありません:
{ "env": { "ANTHROPIC_BASE_URL": "https://api.aiand.com", "ANTHROPIC_AUTH_TOKEN": "sk-your-aiand-api-key", "ANTHROPIC_API_KEY": "", "ANTHROPIC_DEFAULT_OPUS_MODEL": "moonshotai/kimi-k3", "ANTHROPIC_DEFAULT_SONNET_MODEL": "moonshotai/kimi-k3", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-ai/deepseek-v4-flash", "CLAUDE_CODE_SUBAGENT_MODEL": "moonshotai/kimi-k3" }}スコープは 2 つ — どちらか一方を選びます:
- プロジェクト単位 (
.claude/settings.local.json) — そのリポジトリでclaudeを起動したときだけ適用されます。Claude Code の規約により*.local.jsonは git で無視されるため、API キーがコミットされる心配はありません。最初に ai& を試すならこちらがおすすめ。 - 全体 (
~/.claude/settings.json) — マシン全体に適用されます。Claude Code のすべての利用面が同じ ai& バックエンドを参照するようになります — 任意のターミナルセッションで起動するclaudeCLI、Claude Code VS Code 拡張(拡張と CLI はこのファイルを共有する設計です)、および Claude Desktop アプリ。ai& をマシン全体のデフォルトにしたい場合はこちら。
以下のコマンドは env ブロックを安全にマージします — 既存のキー(permissions、hooks など)はそのまま保持されます。ステップ 1 で Claude Code を npm からインストールしているため、Node はすでにマシンにあります。実行前に sk-your-aiand-api-key を実際のキーに置き換えてください。
プロジェクト単位 (お試しに最適)
Section titled “プロジェクト単位 (お試しに最適)”プロジェクトのルートで実行します:
mkdir -p .claude && node -e 'const fs = require("fs"), p = ".claude/settings.local.json";const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};d.env = Object.assign(d.env || {}, { ANTHROPIC_BASE_URL: "https://api.aiand.com", ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key", ANTHROPIC_API_KEY: "", ANTHROPIC_DEFAULT_OPUS_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_SONNET_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-ai/deepseek-v4-flash", CLAUDE_CODE_SUBAGENT_MODEL: "moonshotai/kimi-k3"});fs.writeFileSync(p, JSON.stringify(d, null, 2));'プロジェクトのルートで実行します:
New-Item -ItemType Directory -Force -Path .claude | Out-Null$script = @'const fs = require("fs"), p = ".claude/settings.local.json";const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};d.env = Object.assign(d.env || {}, { ANTHROPIC_BASE_URL: "https://api.aiand.com", ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key", ANTHROPIC_API_KEY: "", ANTHROPIC_DEFAULT_OPUS_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_SONNET_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-ai/deepseek-v4-flash", CLAUDE_CODE_SUBAGENT_MODEL: "moonshotai/kimi-k3"});fs.writeFileSync(p, JSON.stringify(d, null, 2));'@node -e $script全体スコープ (すべてのプロジェクト)
Section titled “全体スコープ (すべてのプロジェクト)”mkdir -p ~/.claude && node -e 'const fs = require("fs"), os = require("os"), path = require("path");const p = path.join(os.homedir(), ".claude", "settings.json");const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};d.env = Object.assign(d.env || {}, { ANTHROPIC_BASE_URL: "https://api.aiand.com", ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key", ANTHROPIC_API_KEY: "", ANTHROPIC_DEFAULT_OPUS_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_SONNET_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-ai/deepseek-v4-flash", CLAUDE_CODE_SUBAGENT_MODEL: "moonshotai/kimi-k3"});fs.writeFileSync(p, JSON.stringify(d, null, 2));'New-Item -ItemType Directory -Force -Path $HOME\.claude | Out-Null$script = @'const fs = require("fs"), os = require("os"), path = require("path");const p = path.join(os.homedir(), ".claude", "settings.json");const d = fs.existsSync(p) ? JSON.parse(fs.readFileSync(p, "utf8")) : {};d.env = Object.assign(d.env || {}, { ANTHROPIC_BASE_URL: "https://api.aiand.com", ANTHROPIC_AUTH_TOKEN: "sk-your-aiand-api-key", ANTHROPIC_API_KEY: "", ANTHROPIC_DEFAULT_OPUS_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_SONNET_MODEL: "moonshotai/kimi-k3", ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-ai/deepseek-v4-flash", CLAUDE_CODE_SUBAGENT_MODEL: "moonshotai/kimi-k3"});fs.writeFileSync(p, JSON.stringify(d, null, 2));'@node -e $scriptClaude Code 内で以下を実行します:
/status現在のベース URL とモデルがパネルに表示されます。https://api.aiand.com と moonshotai/kimi-k3 が見えれば成功です。
シェルから直接エンドポイントを叩いて確認することもできます:
curl -sS https://api.aiand.com/v1/models \ -H "Authorization: Bearer sk-your-aiand-api-key" \ | grep -o 'moonshotai/kimi-k3'(Invoke-RestMethod https://api.aiand.com/v1/models ` -Headers @{ Authorization = "Bearer sk-your-aiand-api-key" }).data.id ` | Select-String "moonshotai/kimi-k3"一致すればキーの認証が通り、モデルが組織で利用可能であることを確認できます。
動作上の注意
Section titled “動作上の注意”- Effort。
/effortとCLAUDE_CODE_EFFORT_LEVELは反映されます。Claude Code はレベルをoutput_config.effortとして送信し、ai& はそれをモデルのreasoning_effortとして適用します。モデルが公開していないレベルは、サポートされる値を列挙した 400 で拒否されます。moonshotai/kimi-k3はlow・high・maxを受け付けます。レベルが送信されない場合、ai& は何も指定せずに転送し、モデルは自身のデフォルト(Kimi ではmax)で動作するため、明示的に設定してください。 - コンテキスト上限。 会話がモデルのウィンドウを超えると、ai& は Anthropic 本家と同じ「prompt is too long」の文言で応答するため、Claude Code は自動で圧縮(compact)して再試行します。Claude Code は認識しないモデル名に対して 200K のウィンドウを仮定しますが、このページで推奨しているモデルはいずれもその範囲内です。
- Thinking。 Claude Code はゲートウェイ経由のモデルに adaptive thinking を要求し、ai& はモデルの推論を
thinkingブロックとしてストリーミングで返します。推論の深さは thinking ブロックではなく effort で決まります。 - WebSearch などのサーバーサイドツール。 Anthropic のサーバーサイドツール(ウェブ検索、ウェブ取得、コード実行)は Anthropic の API 内部で実行されるため、ai& 経由では利用できません。これらを含むリクエストはツール名を示す 400 で拒否されるため、Claude Code の
WebSearchツールは捏造された結果ではなくエラーを報告します。代わりに MCP のウェブ検索サーバーを利用してください。 - スクリーンショット。 ツール結果内の画像(PNG に対する
Readツールなど)は、vision 対応モデルではモデルに渡され、テキストのみのモデルでは短いプレースホルダーに置き換えられます。