AIToday
大規模言語モデルAIコーディングZenn AI/ML掲載日時: 2026年10月16日 22:01

Claude Code モデルをモックで無料テスト

LINEで送る
Claude Code モデルをモックで無料テスト

3つのポイント

  1. 何が起きたか

    CLIをANTHROPIC_BASE_URL環境変数でローカルのモックに向ける手順を解説。モックは/v1/messagesだけを実装し、Bashを呼ぶtool_useブロックを含むSSE応答を返す。

  2. なぜ重要か

    課金されるのはモデルだけなので、Claude CodeのフックやMCPサーバーを作る開発者は、CLIは本物のまま繰り返し無料でテストでき、CLIが何を渡しているかを正確に確認できる。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

Claude Codeは、自分のマシンで動くCLIとAnthropicのサーバーで動くモデルの2つに分かれる。課金されるのはリクエストを読み答えるモデルの仕事だけなので、その部分だけを定型の応答を返す小さなサーバーに差し替えれば、CLIの実際の挙動はそのままに費用をなくせる。リクエストはMessages APIへのHTTP呼び出しとして送られ、応答は別の呼び出しではなくそれらのリクエストへの返信として返るため、モックは/v1/messagesエンドポイントだけを実装すればよい。

この解説では、この仕組みを使ってCLIが実際に何を送っているかを調べている。実行中に取得したリクエストには、CLIが追加するシステムプロンプト、ツール定義、以前の会話が含まれる。例として筆者はUserPromptSubmitフックを追加し、その出力がCLIの追加プリアンブル内の「UserPromptSubmit hook success:」という見出しの下に渡されることを確認した。同じ方法は以前、/compactが会話を要約に置き換える仕組み、MCPサーバーの説明やスキルがモデルに届く経路、MCPツールが120秒後にバックグラウンドへ移される仕組みの確認にも使われた。

調査だけでなく、モックで障害を模擬できることも示している。HTTP 529応答を決めた回数返すと、CLIの再試行の挙動を観察でき、再試行回数はCLAUDE_CODE_MAX_RETRIESで制御する。筆者は自身のmacOSアプリtanacodeでこのパターンを大規模に運用し、GitHub Actionsで毎日モックと本物のCLIを動かして、Claude Codeの更新による破損を検知している。

よくある質問
モックは本物のAPIキーなしでどうやって動くのか?
モックはキーを検証しないため、ANTHROPIC_API_KEYは空でなければよい。モックが確認しないのでどんな値でも動く。
このモックでテストできないものは?
応答が固定のスクリプトに従うため、モデル自身の判断は観察できない。Remote Controlや/usageなどclaude.aiアカウントでのログインが必要な機能は動かず、APIキーで実行するとToDoツールのTodoWriteとTaskCreateが現れない。
CIで使えるか?
使える。GitHub Actionsのジョブで@anthropic-ai/claude-code@2.1.300を固定し、Node 22をインストールして、本物のAPIキーなしでnode --test claude.test.mjsを実行する。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へBillionairesが第2四半期にAI株6銘柄売却