0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code × OpenRouter Free Models で AI コーディング費用を 90% 削減する5つの設定

0
Posted at

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 を作るところから始めてみてほしい。


参考リンク


✍️ 本記事の著者: 合同会社ジモラボ

ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。

興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?