背景

Claude Code は使いやすい。補完精度も高いし、コードベースの把握能力は現時点でトップクラスだ。 ただ、一点だけ致命的な問題がある——高すぎる。 ヘビーユーザーなら月に数万円を Anthropic に払っているはずだ。

一方で DeepSeek は、ベンチマーク上では Claude に肉薄しながらも、API コストは桁違いに安い。 そして Claude Code は、バックエンドの LLM を差し替えられるようになっている。 この二つを組み合わせない手はない。

コスト比較

モデル Input (per 1M tok) Output (per 1M tok) 備考
Claude Sonnet 4.5 $3.00 $15.00 Claude Code デフォルト
DeepSeek V3 $0.14 $0.28 約 95% 削減
DeepSeek R1 $0.55 $2.19 推論特化、やや高め

仕組み

Claude Code は内部で ANTHROPIC_BASE_URL 環境変数を参照してAPIエンドポイントを決定する。 DeepSeek の API は OpenAI 互換フォーマット(/v1/chat/completions)を提供しているが、 そのままでは Claude のメッセージフォーマットと一致しない。

そこで間にプロキシサーバーを立て、Claude フォーマット → OpenAI フォーマット変換を行う。 これにより Claude Code は何も知らずに DeepSeek を叩くことになる。

手順

DeepSeek の API キーを取得する

platform.deepseek.com でアカウントを作成し、API キーを発行する。クレジットを少額チャージしておく($5 で数ヶ月は余裕)。

プロキシを立てる(claude-to-openai)

変換プロキシの最もシンプルな選択肢は claude-to-openai 系のOSSを使うことだ。Node.js が入っていれば以下で動く。

bash
# リポジトリを取得
git clone https://github.com/example/claude-openai-proxy
cd claude-openai-proxy
npm install

# .env に DeepSeek の API キーをセット
echo "OPENAI_API_KEY=sk-your-deepseek-key" > .env
echo "OPENAI_BASE_URL=https://api.deepseek.com/v1" >> .env

# プロキシ起動(デフォルト: localhost:8080)
npm start

Claude Code の向き先をプロキシに変更する

起動前に環境変数を設定するだけ。.bashrc.zshrc に書いておくと楽だ。

bash
# シェルに追記(永続化)
export ANTHROPIC_BASE_URL="http://localhost:8080"
export ANTHROPIC_API_KEY="dummy-key"  # 形式チェックを通すためのダミー

# Claude Code を起動
claude

モデルを指定する(オプション)

デフォルトでは DeepSeek V3 が使われる。R1(推論モデル)を使いたい場合はプロキシの設定で切り替える。複雑なアーキテクチャ設計には R1、日常的なコーディングには V3 という使い分けが効率的だ。

bash
# モデルを明示的に指定する場合
export CLAUDE_MODEL="deepseek-reasoner"  # R1
# または
export CLAUDE_MODEL="deepseek-chat"        # V3

動作確認する

Claude Code を起動して簡単なコード生成を頼んでみる。レスポンスが返ってきて、DeepSeek のダッシュボードでトークン消費が記録されていれば成功だ。

TIPS: 初回は claude --versionclaude "hello world の Python を書いて" で疎通確認するのが速い。プロキシのコンソールにリクエストログが流れるはず。

落とし穴と注意点

コンテキスト長の差異

DeepSeek V3 は 64K トークン、R1 は 128K トークンのコンテキストをサポートする。 Claude Sonnet の 200K より短いため、大規模なコードベースを丸ごと読ませる用途では限界を感じる場面がある。

ツール使用(Function Calling)

Claude Code の一部機能はファイル操作や検索などの「ツール」を呼び出す。 DeepSeek も Function Calling に対応しているが、プロキシが正しく変換できない場合がある。 エラーが出た場合は、プロキシのバージョンを確認することを推奨する。

データはどこを通るか

コードは DeepSeek のサーバー(中国)に送信される。 機密性の高いコードや業務コードには使わないこと。 個人プロジェクトや学習用途に限定するのが賢明だ。

SUMMARY: 月 $50 払っていた Claude Code のコストが $2〜3 まで落ちた。体感の精度差は正直ほぼない。ただしプライバシーとコンテキスト長の制約は理解した上で使うこと。