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 モデル で API コストをほぼゼロにする5つの設定パターン

0
Posted at

TL;DR

  • Claude Code の ANTHROPIC_API_KEY 以外に OpenRouter 経由で :free モデルを呼ぶ設定を追加できる
  • 調査・要約・下書き等の「品質 80% でよいタスク」を :free モデルに流すと月の LLM コストが大幅に落ちる
  • 本記事では環境設定・モデル選定・プロンプトパターン・コスト計算の実践手順を解説

背景

Claude Code は強力な AI コーディングアシスタントだが、claude-opus-4claude-sonnet-4 を素直に使い続けると 月 $50〜200 に達するケースがある。

一方 OpenRouter では qwen/qwen3-8b:freemeta-llama/llama-4-maverick:free など、無料枠で使える高性能モデルが常時複数提供されている。

発想の転換: 全タスクを最高品質モデルに流すのではなく、
「タスク品質要件 × コスト」でモデルを使い分ける


前提知識

用語 概要
Claude Code Anthropic 製のターミナル統合 AI コーディングツール
OpenRouter 複数 LLM プロバイダを統一 API で扱えるプロキシサービス
:free モデル OpenRouter 上でレート制限はあるが トークン課金ゼロのモデル群
OPENROUTER_API_KEY OpenRouter ダッシュボードで発行する Bearer トークン

OpenRouter の :free モデルは openrouter.ai/models でフィルタ free: true を選択すると一覧できる(2026年時点で 30 モデル超)。


5つの設定パターン

パターン 1 — シェルエイリアスで用途別モデルを切り替える

最も簡単なアプローチ。.zshrc / .bashrc に以下を追記する。

# 品質最優先 (コード生成・リファクタリング)
alias cc-pro='claude'

# コスト最小 (調査・要約・コメント生成)
alias cc-free='ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1 \
  ANTHROPIC_API_KEY=$OPENROUTER_API_KEY \
  ANTHROPIC_MODEL=qwen/qwen3-8b:free \
  claude'

使い方:

# 通常の Claude Code (課金あり)
cc-pro "この関数をリファクタしてテストも書いて"

# :free モデル (課金なし)
cc-free "この diff の変更内容を日本語で 3 行にまとめて"

ポイント: ANTHROPIC_BASE_URL を OpenRouter に向けると、Claude Code は
OpenRouter を「Anthropic 互換 API」として扱う。ANTHROPIC_MODEL 環境変数で
呼び出すモデルを上書きできる(Claude Code v1.x 以降対応)。


パターン 2 — .claude/settings.json でモデルをプロジェクト別に設定

プロジェクトルートに .claude/settings.json を置くことで、リポジトリ単位でデフォルトモデルを固定できる。

{
  "model": "qwen/qwen3-8b:free",
  "apiKeyHelper": "echo $OPENROUTER_API_KEY",
  "env": {
    "ANTHROPIC_BASE_URL": "https://openrouter.ai/api/v1"
  }
}

活用例:

my-project/
├── .claude/
│   └── settings.json   ← :free モデル固定 (ドキュメント生成リポジトリ)
└── src/

ドキュメント専用リポジトリや社内 Wiki 更新スクリプトなど、コード品質より速度・コストが優先される用途に向く。


パターン 3 — カスタムスクリプトでタスクを自動ルーティング

入力プロンプトのキーワードで「無料モデル」「課金モデル」を自動振り分けするラッパースクリプト。

#!/usr/bin/env bash
# cc-router: キーワードでモデルを自動選択

PROMPT="$*"

FREE_KEYWORDS=("要約" "翻訳" "コメント" "README" "CHANGELOG" "explain" "summarize" "translate")

use_free=false
for kw in "${FREE_KEYWORDS[@]}"; do
  if echo "$PROMPT" | grep -qi "$kw"; then
    use_free=true
    break
  fi
done

if $use_free; then
  echo "[router] :free モデルを使用 (qwen3-8b)" >&2
  ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1 \
  ANTHROPIC_API_KEY="$OPENROUTER_API_KEY" \
  ANTHROPIC_MODEL=qwen/qwen3-8b:free \
  claude "$PROMPT"
else
  echo "[router] claude-sonnet を使用 (課金あり)" >&2
  claude "$PROMPT"
fi
chmod +x cc-router
alias cc='cc-router'

cc "この関数の README を日本語で書いて"  # → :free
cc "バグを修正してテストを追加して"       # → claude-sonnet

パターン 4 — GitHub Actions で :free モデルを CI に組み込む

PR の差分要約・コードレビューコメントを CI で自動生成するワークフロー例。OpenRouter :free モデルを使うことでコスト $0。

# .github/workflows/ai-pr-summary.yml
name: AI PR Summary

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  summarize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code CLI
        run: npm install -g @anthropic-ai/claude-code

      - name: Generate PR summary
        env:
          ANTHROPIC_BASE_URL: https://openrouter.ai/api/v1
          ANTHROPIC_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
          ANTHROPIC_MODEL: meta-llama/llama-4-maverick:free
        run: |
          DIFF=$(git diff origin/main...HEAD --stat)
          claude --print "以下の git diff --stat を日本語で 5 行以内に要約して:\n$DIFF" \
            > summary.txt
          cat summary.txt

      - name: Post comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const summary = fs.readFileSync('summary.txt', 'utf8');
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: `## 🤖 AI による変更要約\n\n${summary}`
            });

注意: OPENROUTER_API_KEY は GitHub Secrets に登録し、
ワークフローファイルには直接書かないこと。


パターン 5 — CLAUDE.md に :free モデル向け制約プロンプトを書く

:free モデルはコンテキスト長・応答品質が有料モデルより低い場合がある。CLAUDE.mdモデル特性を前提とした制約を書くことで出力品質を安定させる。

<!-- CLAUDE.md (このリポジトリが :free モデル専用の場合) -->

## モデル動作指針

- 応答は **500 トークン以内**に収める
- コードブロックは 1 ファイルずつ個別に出力する
- 不明点があれば推測で補完せず「不明です」と返す
- 日本語で質問された場合は日本語で回答する
- 関数シグネチャは変更せず、実装のみ変更する

短く明確な制約を書くことで、コンテキスト消費を抑えつつ誤答を減らせる。


モデル選定ガイド (2026年時点の :free 代表例)

モデル 得意分野 コンテキスト 速度
qwen/qwen3-8b:free 日本語・多言語・汎用 32K 速い
qwen/qwen3-14b:free コード・推論 32K
meta-llama/llama-4-maverick:free 英語コード・汎用 128K
google/gemma-3-12b-it:free 英語・軽量タスク 8K 速い
mistralai/mistral-7b-instruct:free 英語・要約・分類 32K 速い

最新の対応モデル一覧は openrouter.ai/modelsFree フィルタを適用して確認。


コスト比較シミュレーション

月 100 回、平均 2K トークン(入力 1K + 出力 1K)のタスクを実行した場合:

構成 月額概算
claude-sonnet-4 (100%) 約 $15〜30
:free モデル (100%) $0
70% :free + 30% sonnet 約 $4〜9

「全タスクを :free モデルにする」のは品質リスクがあるが、70% を振り分けるだけでも月コストを約 70% 削減できる計算になる。


落とし穴と対処法

① レート制限

:free モデルは リクエスト数制限がある(OpenRouter の場合、無料枠は概ね 200 req/day 前後)。
CI でバッチ処理する際は sleep 2 などで間隔を開ける。

for file in docs/*.md; do
  cc-free "この Markdown のタイポを修正して" < "$file"
  sleep 2  # レート制限対策
done

② 応答の一貫性

:free モデルはモデルバージョンが予告なく変わる場合がある。
本番コードの自動生成には使わず、レビュー支援・ドキュメント補助に留めるのが安全。

③ プロンプトのトークン効率

無料モデルのコンテキスト長は短いことが多い。
長い diff を丸ごと渡すより git diff --stathead -n 50 で前処理するとよい。

# NG: diff 全文をそのまま渡す
git diff | cc-free "要約して"

# OK: stat のみに絞る
git diff --stat | cc-free "どのファイルが変更されたか日本語で箇条書きにして"

まとめ

# パターン 用途
1 シェルエイリアス 個人開発・手動切り替え
2 .claude/settings.json プロジェクト単位のデフォルト設定
3 キーワードルーティングスクリプト 自動振り分けで手間ゼロ
4 GitHub Actions 連携 CI コストゼロの PR 自動要約
5 CLAUDE.md 制約プロンプト :free モデルの出力品質を安定化

全部を無料モデルにする」ではなく、「タスクの性質に合わせてモデルを選ぶ」という設計思想が重要。コスト管理を仕組み化することで、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?