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 無料モデル:コスト0円でAIコーディングを100倍加速する5つの設定

0
Posted at

TL;DR

  • Claude Code の ANTHROPIC_BASE_URL を差し替えるだけで OpenRouter 経由の無料モデルが使える
  • claude-3-haiku 相当の無料モデルでも、ルーティン補完・コードレビュー・テスト生成は十分実用
  • モデル切り替え・コスト上限・fallback 設定の 5 パターンを解説

背景:Claude Code は便利だが、従量課金が気になる

Claude Code を日常的なコーディング支援に使い始めると、「軽い質問にも Sonnet/Opus が走って課金される」という体験に直面します。

一方、OpenRouter には :free サフィックスの無料モデルが複数存在します。これらは OpenAI 互換 API を提供しているため、Claude Code のベース URL を差し替えるだけで流用できます。

本記事では、Claude Code + OpenRouter 無料モデルの組み合わせをプロダクション水準で使い続けるための 5 つの設定を紹介します。

⚠️ 本記事の手法は公式ドキュメント・OSS の公開仕様に基づきます。OpenRouter の利用規約・各モデルのライセンスを必ず確認してください。


前提知識:OpenRouter の :free モデルとは

OpenRouter(openrouter.ai)は複数の LLM プロバイダーを統一 API で束ねるサービスです。

:free サフィックスのモデル(例: meta-llama/llama-3.1-8b-instruct:free)は、クレジット消費なしで呼び出せる代わりに以下の制約があります。

項目 制約
レート上限 20 req/min・200 req/day(モデルによる)
コンテキスト長 最大 8k〜128k(モデル依存)
レスポンス速度 有料枠より遅延が大きい場合あり
可用性 プロバイダー側の空きリソース次第

つまり、「軽くて反復する作業」に使い、重要な推論は有料モデルへ fallback する設計が現実的です。


設定 1:ANTHROPIC_BASE_URL を OpenRouter に向ける

Claude Code は内部的に ANTHROPIC_BASE_URL 環境変数を参照します。これを OpenRouter のエンドポイントに差し替えると、呼び出しがそのままルーティングされます。

export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
export ANTHROPIC_API_KEY="sk-or-v1-xxxxxxxxxxxx"  # OpenRouter のキー
# 動作確認
claude --model "meta-llama/llama-3.1-70b-instruct:free" \
  "このファイルのバグを 1 行で説明して"

ANTHROPIC_BASE_URL の差し替えは Claude Code 公式ドキュメントにも記載されている公式の拡張ポイントです。

モデル名の指定方法
OpenRouter のモデル名(provider/model-name:variant)をそのまま --model に渡せます。


設定 2:シェルエイリアスでモデルを即切り替え

毎回 --model を入力するのは手間です。用途別エイリアスを ~/.bashrc / ~/.zshrc に登録しておきましょう。

# 無料・高速:コード補完・コメント生成
alias cc-free='claude --model "meta-llama/llama-3.1-8b-instruct:free"'

# 無料・高品質:リファクタリング・コードレビュー
alias cc-mid='claude --model "meta-llama/llama-3.1-70b-instruct:free"'

# 無料・最大コンテキスト:長いファイル解析
alias cc-long='claude --model "google/gemma-3-27b-it:free"'

# 有料(必要なときだけ)
alias cc-pro='claude --model "anthropic/claude-3-5-sonnet"'

使い方:

# テストコードを自動生成(無料モデルで十分)
cc-free "以下の関数に対するユニットテストを Jest で書いて" < src/utils/format.ts

# レビュー(70B モデルで精度アップ)
git diff HEAD~1 | cc-mid "このdiffの問題点を箇条書きで"

設定 3:.claude/settings.json でプロジェクト単位の設定

リポジトリごとに使うモデルを固定したい場合は、.claude/settings.json(Claude Code v1.x 以降)を使います。

{
  "model": "meta-llama/llama-3.1-70b-instruct:free",
  "apiKeyHelper": "echo $OPENROUTER_API_KEY",
  "env": {
    "ANTHROPIC_BASE_URL": "https://openrouter.ai/api/v1"
  }
}

これをリポジトリルートに置くことで、そのプロジェクト内では常に OpenRouter 経由の指定モデルが使われるようになります。チームで共有するときは apiKeyHelper を各自の環境変数に向けてください。

.gitignore への追加を忘れずに
settings.json に API キーを直書きした場合は必ず .gitignore に含める。apiKeyHelper でシェルコマンドから取得する形式であれば直書き不要です。


設定 4:コスト上限を bash スクリプトで管理する

無料モデルでも「気づいたら有料 fallback されていた」というケースを防ぐため、1 日あたりの有料呼び出し回数を自己管理するスクリプトを用意します。

#!/usr/bin/env bash
# cc-guard.sh: 無料モデルのみ許可。有料モデルへの fallback を警告する

ALLOWED_FREE_PATTERNS=(
  "meta-llama/"
  "google/gemma"
  "mistralai/mistral-7b"
  "qwen/qwen"
)

MODEL="${CLAUDE_MODEL:-meta-llama/llama-3.1-70b-instruct:free}"

is_free=0
for pattern in "${ALLOWED_FREE_PATTERNS[@]}"; do
  if [[ "$MODEL" == *"$pattern"* ]]; then
    is_free=1
    break
  fi
done

if [[ $is_free -eq 0 ]]; then
  echo "⚠️  警告: 有料モデル '$MODEL' を使用しようとしています。" >&2
  read -p "続行しますか? [y/N] " confirm
  [[ "$confirm" != "y" ]] && exit 1
fi

exec claude --model "$MODEL" "$@"
chmod +x cc-guard.sh
alias cc='./cc-guard.sh'

設定 5:モデル品質早見表と使い分け指針

2025 年現在、OpenRouter の :free モデルで実用的なものをまとめます(公式ページ openrouter.ai/models の公開情報より)。

モデル コンテキスト 強み 向かない用途
meta-llama/llama-3.1-8b-instruct:free 128k 高速・軽量補完 複雑なアーキテクチャ設計
meta-llama/llama-3.1-70b-instruct:free 128k コードレビュー・説明 日本語の長文生成
google/gemma-3-27b-it:free 128k 長文ファイル解析 数学的推論
qwen/qwen2.5-72b-instruct:free 128k 日本語・コード両立 リアルタイム補完
mistralai/mistral-7b-instruct:free 32k 軽量・英語コード 日本語対応

タスク別おすすめ

コード補完・変数名提案  → llama-3.1-8b:free  (速度優先)
コードレビュー・バグ検出 → llama-3.1-70b:free (品質優先)
日本語コメント生成      → qwen2.5-72b:free   (日本語品質)
長大ファイルのリファクタ → gemma-3-27b:free   (コンテキスト)
アーキテクチャ設計相談  → claude-3-5-sonnet  (有料・複雑推論)

実践例:git pre-commit フックに組み込む

上記設定を応用して、コミット前に自動コードレビューを走らせるフックを作れます。

# .git/hooks/pre-commit
#!/usr/bin/env bash

DIFF=$(git diff --cached --diff-filter=ACMR -- '*.ts' '*.tsx' '*.py' '*.go')

if [[ -z "$DIFF" ]]; then
  exit 0
fi

echo "🤖 AI コードレビュー中 (無料モデル)..."

REVIEW=$(echo "$DIFF" | \
  ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1" \
  claude --model "meta-llama/llama-3.1-70b-instruct:free" \
  "このdiffに明らかなバグ・セキュリティ問題があれば指摘して。なければ 'LGTM' とだけ出力して。")

echo "$REVIEW"

if echo "$REVIEW" | grep -qi "CRITICAL\|脆弱性\|SQLインジェクション\|XSS"; then
  echo "❌ 重大な問題が検出されました。コミットを中止します。"
  exit 1
fi

exit 0

これでコスト 0 円で毎コミット AI レビューが走るようになります。レート制限(20 req/min)に注意しつつ、プライベートリポジトリで活用してください。


よくある問題と対処

Q. model not found エラーが出る

モデルの提供状況は日々変わります。openrouter.ai/models?q=:free で現在の無料モデル一覧を確認し、モデル名を更新してください。

Q. レスポンスが極端に遅い

:free モデルはリソース空き次第です。--timeout 60 オプションを付けるか、cc-mid の fallback を llama-3.1-8b に変更してレイテンシを下げましょう。

Q. 日本語の出力品質が低い

qwen/qwen2.5-72b-instruct:free は日本語性能が比較的高いです。英語のコードコメント生成には llama-3.1-70b:free、日本語ドキュメント生成には qwen2.5-72b:free と使い分けると改善します。

Q. 有料モデルに自動 fallback される仕組みは?

Claude Code 自体には自動 fallback 機能はありません。ただし OpenRouter のルーター設定(有料機能)でプロバイダー間 fallback を組めます。無料運用なら fallback は手動で管理するのが確実です。


まとめ

設定 効果
ANTHROPIC_BASE_URL 差し替え OpenRouter 無料モデルへルーティング
エイリアス設定 用途別モデルを瞬時切り替え
.claude/settings.json プロジェクト単位で固定
コスト警告スクリプト 有料 fallback の誤爆防止
pre-commit フック コスト 0 円のコミット前 AI レビュー

Claude Code は プロンプトエンジニアリング不要で使えるターミナル AI として非常に優秀です。無料モデルを組み合わせることで、個人開発〜小規模チームでも毎日使えるコスト設計に落とし込めます。

ぜひ自分のワークフローに合わせてカスタマイズしてみてください。


参考リンク


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

ジモラボは、八王子を拠点に 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?