Claude CodeでDeepSeek Flash/Proを使う方法:設定・確認・料金
Claude CodeをDeepSeekへ接続し、FlashとProを使い分けるための実践ガイド。安全なKey入力、接続確認、ツール互換性、エラー対処、DeepSeekとBetterTokenの最新料金をまとめます。
目次

Claude Codeは、追加のproxyを挟まずにDeepSeekのAnthropic互換endpointへ直接接続できます。通常のコーディングでは、現行の公式例どおり deepseek-flash[1m] から始めるのが安全です。難しい設計判断、大規模refactor、長い原因調査だけmain agentを deepseek-v4-pro に切り替え、HaikuとsubagentはFlashに残すと費用を抑えられます。
注意点は二つあります。DeepSeekの現行all-Flash例はOpusにもFlashを明示するため、自動model mappingを上書きします。また、未対応のmodel nameは明確なerrorを返さず deepseek-flash にfallbackします。Claude Codeが普通に答えたことは接続成功の証拠ですが、Proを使った証拠にはなりません。
最初にmodel profileを選ぶ
2026年9月27日時点のDeepSeek Claude Codeガイドは、速度と費用を優先したall-Flash構成を示しています。一方、Anthropic API互換表では、claude-opus で始まる名前を deepseek-v4-pro、claude-sonnet と claude-haiku を deepseek-flash へ割り当てると説明しています。
| Profile | Main model / Opus | Sonnet | Haiku・subagent | 向いている作業 |
|---|---|---|---|---|
| 公式default、速度優先 | deepseek-flash[1m] | deepseek-flash[1m] | deepseek-flash | 日常開発、repository読解、多数の小タスク |
| Main threadだけPro | deepseek-v4-pro | deepseek-flash[1m] | deepseek-flash | 設計、難しいrefactor、重要な障害調査 |
| Claude名の自動mapping | claude-opus* → deepseek-v4-pro | claude-sonnet* → deepseek-flash | claude-haiku* → deepseek-flash | Clientが送るClaude名を把握している場合のみ |
環境変数でmodel IDを明示すると、自動mappingより優先されます。ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m] を設定した状態では、Claude Code側でOpus経路を選んでもFlashへ送られます。
1. Claude Codeをinstallし、CLIを先に確認する
Node.js 18以上が必要です。WindowsではGit for Windowsも用意します。Provider設定より先にversionを確認し、local installの失敗とAPI接続の失敗を分けてください。
npm install -g @anthropic-ai/claude-code
claude --version
IFS= read -rs ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_AUTH_TOKEN
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
export CLAUDE_CODE_EFFORT_LEVEL="max"
export CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"
IFS= read -rs ANTHROPIC_AUTH_TOKEN は、terminalでAPI Keyの入力を待ち、文字を表示しません。Keyを貼り付けてEnterを押すと、次の行が現在のshellへexportします。本物のKeyをcommand、shell history、script、repositoryへ直接書かないでください。
PowerShellではsecure inputから現在のprocessだけへ渡せます。
npm install -g @anthropic-ai/claude-code
claude --version
$secure = Read-Host -AsSecureString
$ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
try {
$env:ANTHROPIC_AUTH_TOKEN = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr)
} finally {
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ptr)
}
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
$env:CLAUDE_CODE_EFFORT_LEVEL="max"
$env:CLAUDE_CODE_AUTO_COMPACT_WINDOW="786432"
これらの変数は、そのterminalから起動したClaude Codeに適用されます。まず一時sessionで確認し、動作後にnon-secret設定だけを保護されたprofileへ保存してください。Keyはsecret storeで管理します。
2. 深い推論が必要なmain threadだけProにする
現行のmodel・料金ページでは、Proの正確なIDは deepseek-v4-pro、versionはDeepSeek-V4-Pro-0813です。現行Claude Codeページが [1m] を示すのはFlash例だけで、deepseek-v4-pro[1m] の例はありません。ここではsuffixを推測せず、model tableのIDを使います。
export ANTHROPIC_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-flash[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-flash"
Main sessionとOpus経路はPro、Sonnet、Haiku、subagentはFlashになります。Repository検索やfile read、小さなdelegated editは呼び出し回数が増えやすいため、深い推論が不要な部分までProにすると費用だけが膨らみます。
[1m] が示すものと示さないもの
DeepSeekの現行documentationは [1m] を独立した一文で定義していません。一方で、main FlashとOpus/Sonnet overrideにはsuffixを付け、Haikuと CLAUDE_CODE_SUBAGENT_MODEL にはplainな deepseek-flash を使い、model tableには1M contextと記載しています。これらを合わせると、integration guideが明示したmodelに限ってmillion-token context routeを要求するClaude Code notationと理解するのが安全です。別model、別料金、1M outputを意味するものではありません。
境界は次のとおりです。
- 公開されている最大outputは384Kで、1Mではありません。
CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432はcontext上限より前に自動圧縮する余地を残します。- 料金表のIDは
deepseek-flashとdeepseek-v4-proです。現行integration pageが示していないmodelへsuffixを自己判断で追加しないでください。
3. 長時間の作業前に最小確認を行う
破棄できる、またはriskの低いprojectで起動します。
test -n "${ANTHROPIC_AUTH_TOKEN:-}"
test "$ANTHROPIC_BASE_URL" = "https://api.deepseek.com/anthropic"
claude --version
cd /path/to/your/project
claude
「package.json または pyproject.toml を読み、利用できるscriptsを列挙し、fileは変更しない」と依頼します。通常の応答とfile-read tool callが完了し、401、402、429、connection、model errorが出なければ接続確認は成功です。同期対話なのでjob IDやpollingはなく、結果は現在のsessionに表示されます。
Claude Codeだけ失敗する場合は、公式のAnthropic SDK patternでendpointを分離して確認し、結果を保存します。
python3 -m pip install anthropic
python3 - <<'PY'
import os
from pathlib import Path
import anthropic
client = anthropic.Anthropic(
base_url=os.environ["ANTHROPIC_BASE_URL"],
api_key=os.environ["ANTHROPIC_AUTH_TOKEN"],
)
message = client.messages.create(
model="deepseek-flash",
max_tokens=200,
messages=[{"role": "user", "content": "Reply with: endpoint OK"}],
)
text = "\n".join(block.text for block in message.content if block.type == "text")
Path("deepseek-smoke.txt").write_text(text, encoding="utf-8")
print("saved deepseek-smoke.txt")
PY
deepseek-smoke.txt が作られるのにClaude Codeが失敗するなら、環境変数の競合、別settings、古いprocessを調べます。SDKも失敗するなら、Base URL、Key、残高、provider statusを先に確認します。
DeepSeekは、未対応のmodel nameが deepseek-flash にfallbackすると明記しています。SDK checkで確認できるのはtransportで、read-onlyのClaude Code taskはbasic tool callも確認しますが、どちらもmodel identityの証明にはなりません。Proの品質や費用を比較する前に、providerが公開するrequest、usage、billing detailを確認してください。Modelが表示されない場合、正常応答だけでPro使用済みと判断しないでください。
Tools、thinking、Web Searchには互換性の境界がある
Anthropic Messagesの主要構造は利用できますが、DeepSeekの挙動がClaudeと完全に同じになるわけではありません。互換性表でClaude Code利用者が見るべき項目は次のとおりです。
| 機能 | 現在の状態 | 実務上の影響 |
|---|---|---|
tools、tool_use、tool_result | 主要fieldをsupport | Local file・command toolsに必要なprotocol基盤がある |
tool_choice | Support。ただし disable_parallel_tool_use は無視 | このflagだけで厳密なserial実行を保証できない |
| Claude Code Web Search | Native support | 検索結果の要約で追加LLM callとtoken費用が発生 |
Anthropic cache_control | 無視 | Directiveだけから実際のcache hitを判断できない |
| Thinking | Support。budget_tokens は無視、effortは利用可 | 例は CLAUDE_CODE_EFFORT_LEVEL=max。Claudeのbudget fieldはここで費用制御にならない |
document・search_result input block | 未support | 依存する処理は小さなsampleで先に確認する |
code_execution_tool_result・mcp_tool_use | 未support | Server-side code executionやAnthropic固有MCP blockは同等ではない |
tool_result.is_error | 無視 | Custom middlewareは失敗の意味をこのfieldだけに依存しない |
DeepSeekのガイドではClaude CodeのWeb SearchをAPIが提供すると説明しています。Modelが検索を選ぶと、取得内容を要約する追加requestが発生します。費用見積もりには検索、long context、tool loop、retryを含めてください。
症状ごとに原因を切り分ける
| 症状 | 最初に確認 | 修正と再確認 |
|---|---|---|
| 401 / authentication failure | Key、余分なspace、このshellに変数があるか | Hidden inputで入れ直し、Claude Codeを再起動して同じread-only taskを実行 |
| 402 / insufficient balance | DeepSeek残高 | Top up後、同じ短いrequestを再実行 |
| 400 / 422 | Invalid field、model ID、bodyを書き換えるmiddleware | 公式変数へ戻す。独自Thinking + tools clientは全turnの reasoning_content を返す |
| 429 | Request rateとparallel session | Concurrencyを下げ、backoffしてretry |
| 500 / 503 | Provider errorまたはoverload | 少し待ってretryし、継続時は発生時刻を記録 |
| 応答するがProらしくない | Typoまたはunsupported-name fallback | 正確な deepseek-v4-pro を使い、provider側でmodel/billingを確認 |
| 設定変更が反映されない | 古いprocessや別settings layer | 全processを終了し、新しいterminalで変数を設定して再起動 |
| Web Searchが動かない | Modelが検索不要と判断した可能性 | 最新Web情報を明示的に求める。検索しないこと自体は接続失敗ではない |
DeepSeek error codeページは401、402、429、500、503を別原因として説明しています。一度に一項目だけ変え、同じ短いtaskで再確認してください。
2026年9月27日時点のDeepSeekとBetterToken料金
以下はすべてUSD / 100万tokenです。DeepSeekはpeak/off-peakを使い、BetterToken public catalogには同じ時間帯区分がありません。大きな実行前にDeepSeek公式料金と唯一のBetterToken料金ページを再確認してください。
DeepSeek公式料金
| Model ID / current version | 区分 | Cache miss input | Cache hit input | Output |
|---|---|---|---|---|
deepseek-flash / DeepSeek-V4.1-Flash | Off-peak | $0.15 | $0.003 | $0.60 |
deepseek-flash / DeepSeek-V4.1-Flash | Peak | $0.30 | $0.006 | $1.20 |
deepseek-v4-pro / DeepSeek-V4-Pro-0813 | Off-peak | $0.66 | $0.022 | $1.98 |
deepseek-v4-pro / DeepSeek-V4-Pro-0813 | Peak | $1.32 | $0.044 | $3.96 |
Peakは月曜から金曜の01:00–04:00、06:00–10:00 UTCで、中国の法定休日を除きます。それ以外はoff-peakです。9月10日のchange logは、deepseek-flash がV4.1 Flashを呼び、旧 deepseek-v4-flash 名は一時的に新versionへrouteされると説明しています。
BetterToken public catalog
| BetterToken ID / 現在の対応 | Endpoint type | Input | Cache hit | Output |
|---|---|---|---|---|
deepseek-flash / 最新Flash、現在V4.1 Flash | Anthropic、OpenAI | $0.132 | $0.00264 | $0.528 |
deepseek-pro / 最新Pro、現在V4-Pro-0813 | OpenAI | $0.5808 | $0.01936 | $1.7424 |
deepseek-v4-pro-0813 / V4-Pro-0813 | Anthropic、OpenAI | $0.5896 | $0.0176 | $1.7644 |
deepseek-pro は少し安いものの、catalogではOpenAI endpointのみです。名前や価格が近くてもClaude CodeのAnthropic Messagesで使えるとは限りません。BetterToken経由のProでは、Anthropicが明示された deepseek-v4-pro-0813 を確認します。
Cache miss input 100万token、output 20万tokenで、検索とretryを含めない例です。
- Flash:DeepSeek off-peakは約$0.27、peakは約$0.54、BetterToken catalogは約$0.2376。
- Pro:DeepSeek off-peakは約$1.056、peakは約$2.112、BetterTokenのAnthropic対応Pro IDは約$0.9425。
これは2026年9月27日のsnapshotで、BetterTokenが常に安いという保証ではありません。Context、tools、検索、retry、将来の価格変更でtotalは変わります。
BetterToken経由をmappingの推測なしで評価する
BetterTokenのpublic catalogでは deepseek-flash と deepseek-v4-pro-0813 がAnthropic対応、deepseek-pro はOpenAI-onlyです。これは価格比較とcandidate IDの選定には使えますが、Claude Code mappingが確認済みであることまでは示しません。
現行のBetterToken Claude Code guideは、https://bettertoken.ai を /v1 なしで使うこと、authentication、再起動、Claude/Kimi/GLMのmappingを説明しています。ただしDeepSeek専用profileは掲載していません。またClaude providerでは ANTHROPIC_MODEL と ANTHROPIC_DEFAULT_*_MODEL を手動設定しないよう明記しています。Price catalogだけからDeepSeek mappingを推測してpersistent設定にしないでください。
BetterTokenのcurrent Setupまたは新しいdocumentationにDeepSeek profileが表示された場合は、そのexact model IDを使い、前述のread-only taskとSDK smoke testを繰り返します。ProはAnthropic対応の deepseek-v4-pro-0813 だけを候補にし、OpenAI-onlyの deepseek-pro に置き換えないでください。専用mappingが文書化されるかaccount内で確認できるまでは、上のdirect DeepSeek endpointが既知の設定です。
評価するときは現在の料金を確認し、必要ならaccountとAPI Keyを作成します。
作業に合う経路を選ぶ
- 通常の開発: DeepSeek直結 +
deepseek-flash[1m]。現行公式defaultで、反復作業の費用を抑えやすい構成です。 - 難しく価値の高い作業: Main threadとOpusだけ
deepseek-v4-pro、Sonnet、Haiku、subagentはFlash。拡大前にfallbackがないことを確認します。 - 一つの残高やmulti-provider routing: current SetupにDeepSeek profileが表示される場合だけBetterTokenを評価します。
supported_endpoint_typesはcandidate filterとして使い、actual mapping、exact ID、同日の価格を確認してください。 - Anthropic固有blockやClaudeとの挙動一致が必要: Claude modelを使います。Transport互換はmodel behaviorや全toolsの同一性を保証しません。
重要なrepositoryへ適用する前に、CLI versionが見える、Keyが表示されない、Base URLが正確、read-only taskが成功し、model identityが利用可能なrecordで確認済みか、確認不能として明示されている状態まで整えてください。