TL;DR
- Claude Code のバックエンドを OpenRouter 経由の無料モデルに切り替えることで、月額 AI コスト を大幅削減できる
-
ANTHROPIC_BASE_URL環境変数と--modelフラグで乗り換えは 3 分以内 に完了する - タスクの種類別に「使うモデルを分ける」ルーティング戦略が費用最適化の核心
背景
Claude Code は強力な AI コーディングアシスタントだが、Claude 3.5 Sonnet / Claude 3 Opus を常時呼び出すと API 費用が跳ね上がる。特に「変数名リネーム」「コメント追加」「型補完」のような小タスクに Sonnet を使い続けるのは明らかにオーバースペックだ。
OpenRouter には :free サフィックスを持つ無料枠モデルが複数存在する。これらを Claude Code のバックエンドとして使えば、重い思考を必要としないタスクは 費用ゼロ で処理できる。
本記事では、タスク複雑度に応じてモデルを使い分ける「ティアードルーティング戦略」を解説する。
前提知識
- Claude Code v1.x (CLI)
- OpenRouter アカウント(無料プラン可)
- Node.js 18+
1. OpenRouter に Claude Code を向ける最小設定
Claude Code は内部で Anthropic SDK を使用している。Anthropic SDK は ANTHROPIC_BASE_URL を参照するため、これを OpenRouter のエンドポイントに差し替えるだけでプロキシが完成する。
export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
export ANTHROPIC_API_KEY="sk-or-v1-xxxxxxxxxxxx" # OpenRouter のキー
⚠️ ここに実際のキーは書かない。
.envファイルに記述し、.gitignoreに追加すること。
Claude Code を起動すると、リクエストは Anthropic のサーバーではなく OpenRouter 経由でルーティングされる。
claude --model "qwen/qwen3-235b-a22b:free" "このファイルの型エラーを直して"
2. 2026 年時点の主要 :free モデル一覧
| モデル | コンテキスト | 強み | 向いているタスク |
|---|---|---|---|
qwen/qwen3-235b-a22b:free |
32K | 推論・コード生成 | バグ修正・実装 |
qwen/qwen3-30b-a3b:free |
32K | 軽量・高速 | コメント・リネーム |
google/gemini-2.0-flash-exp:free |
1M | 長文コンテキスト | 大規模ファイル読解 |
meta-llama/llama-4-scout:free |
512K | コード特化 | 関数補完・テスト |
mistralai/mistral-small-3.1-24b-instruct:free |
128K | 多言語対応 | ドキュメント翻訳 |
deepseek/deepseek-r1:free |
64K | 深い推論 | アーキテクチャ相談 |
各モデルの最新スペックは openrouter.ai/models で確認してください。
:freeモデルは利用制限(RPM/日次上限)があるため、本番クリティカルな用途には向かない。
3. タスク別ルーティング戦略 (5 分類)
費用削減のコツは「タスクを難易度でティア分けし、最安モデルを先に試みる」こと。
Tier 0 — ゼロ費用ゾーン(:free モデル)
# Tier 0: 反復的・機械的な変換タスク
claude --model "qwen/qwen3-30b-a3b:free" \
"このファイル内の console.log を全て logger.debug に置換して"
# Tier 0: コメント補完
claude --model "qwen/qwen3-30b-a3b:free" \
"以下の関数に JSDoc コメントを追加して"
Tier 1 — 通常タスク(高品質 :free モデル)
# Tier 1: バグ修正・実装
claude --model "qwen/qwen3-235b-a22b:free" \
"この TypeScript のエラーを修正して: Type 'string' is not assignable to type 'number'"
Tier 2 — 有料モデル(クリティカルなアーキテクチャ判断)
# Tier 2: 設計・安全性チェックには有料モデルを使う
claude --model "anthropic/claude-3.5-sonnet" \
"この認証フローのセキュリティ問題を洗い出して"
判断基準:
コード量 < 200行 AND タスクが機械的 → Tier 0
コード量 200-1000行 OR 複数ファイル跨ぎ → Tier 1
設計判断 / セキュリティ / 要件定義 → Tier 2
4. シェルスクリプトで自動ルーティングを実装する
毎回 --model を手打ちするのは非効率なので、ラッパースクリプトを作る。
#!/usr/bin/env bash
# claude-router.sh — タスク複雑度に応じてモデルを自動選択
set -euo pipefail
PROMPT="${*}"
PROMPT_WORDS=$(echo "$PROMPT" | wc -w)
# キーワードベースで Tier を判定
if echo "$PROMPT" | grep -qiE "(セキュリティ|security|認証|auth|architecture|設計|最適化)"; then
TIER=2
elif [ "$PROMPT_WORDS" -gt 50 ]; then
TIER=1
else
TIER=0
fi
case $TIER in
0)
MODEL="qwen/qwen3-30b-a3b:free"
echo "🟢 Tier 0 (free): $MODEL" >&2
;;
1)
MODEL="qwen/qwen3-235b-a22b:free"
echo "🟡 Tier 1 (free-heavy): $MODEL" >&2
;;
2)
MODEL="anthropic/claude-3.5-sonnet"
echo "🔴 Tier 2 (paid): $MODEL" >&2
;;
esac
claude --model "$MODEL" "$PROMPT"
使い方:
chmod +x claude-router.sh
alias c="./claude-router.sh"
c "console.log を全部消して" # → Tier 0 free
c "この関数のバグを直して" # → Tier 1 free
c "この認証モジュールを設計して" # → Tier 2 paid
5. .claude/settings.json でデフォルトモデルを固定する
Claude Code はプロジェクトルートの .claude/settings.json を読む。ここにデフォルトモデルを書いておけば --model 省略時も :free モデルが使われる。
{
"model": "qwen/qwen3-235b-a22b:free",
"fallbackModel": "anthropic/claude-3.5-sonnet"
}
fallbackModelはフォールバック機能が公式サポートされた場合のための記述例。現時点ではmodelキーのみ有効。詳細は公式ドキュメントを確認してください。
6. 実際のコスト比較
仮に 1 日 200 回 AI に質問するエンジニアが、以下の比率でタスクを持っていたとする:
| タスク分類 | 1 日あたり件数 | モデル | 1 件あたりコスト |
|---|---|---|---|
| 機械的変換 (Tier 0) | 120 件 | qwen3-30b:free |
$0.00 |
| バグ修正 (Tier 1) | 60 件 | qwen3-235b:free |
$0.00 |
| 設計相談 (Tier 2) | 20 件 | claude-3.5-sonnet |
~$0.03 |
従来 (全件 Sonnet): 200 件 × $0.03 ≈ $6/日 → $180/月
ティアード後: 20 件 × $0.03 ≈ $0.60/日 → $18/月
→ 約 90% コスト削減(タスク比率は一例。実環境では変動する)
注意点・落とし穴
:free モデルのレート制限
OpenRouter の無料モデルには RPM (Requests Per Minute) と日次上限がある。CI/CD パイプラインで大量並列呼び出しをすると 429 エラーが返る。リトライロジックを実装しておくこと。
# exponential backoff の簡易実装
for i in 1 2 4 8 16; do
claude --model "qwen/qwen3-235b-a22b:free" "$PROMPT" && break
echo "Retry in ${i}s..." && sleep $i
done
モデルの API 互換性
OpenRouter は Anthropic SDK の /v1/messages エンドポイントを互換実装しているが、tool use (function calling) や vision は一部モデルで未対応。claude --dangerously-skip-permissions 相当のフラグは使わないこと。
モデルの廃止・入れ替わり
:free モデルは予告なくスペックや提供状態が変わる可能性がある。本番コードレビューのような重要用途は有料モデルをベースラインにすること。
まとめ
| ポイント | 内容 |
|---|---|
| 設定箇所 |
ANTHROPIC_BASE_URL を OpenRouter エンドポイントに向けるだけ |
| コスト削減の核心 | 全タスクを同一モデルに投げない・ティアードルーティング |
| 削減率 | タスク構成次第だが 70〜90% は現実的 |
| リスク | :free モデルのレート制限・廃止リスク → 重要タスクは有料へフォールバック |
「とりあえず全部 Sonnet」をやめるだけで、AI コーディングのランニングコストは劇的に下がる。まず claude-router.sh を作るところから始めてみてほしい。
参考リンク
- OpenRouter 公式ドキュメント
- OpenRouter モデル一覧 (:free フィルタ)
- Claude Code 公式ドキュメント
- Anthropic SDK — Custom Base URL
✍️ 本記事の著者: 合同会社ジモラボ
ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。
- 🌐 公式サイト: https://locallab.jp
- 🔍 AI SEO 最適化 SaaS: lookupai.jp
- 📺 YouTube: @locallab_llc
- ✉️ お問い合わせ: info@locallab.jp
興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!