# Claude CodeでOpenRouterとDeepSeekを使う：経路、設定、初回エラー対応

> Claude CodeをOpenRouterまたはDeepSeekで使うための経路優先手順。環境変数、モデルID、/status、プロバイダー確認、初回エラーの直し方を整理します。

- URL: https://blog.laozhang.ai/ja/posts/claude-code-openrouter-deepseek
- Published: 2026-07-03
- Updated: 2026-07-03
- Author: AI Free API Team (https://blog.laozhang.ai/ja/about)
- Category: Claude Code
- Tags: Claude Code, OpenRouter, DeepSeek, 開発者ツール, API 設定

---
Claude CodeでOpenRouterやDeepSeekを使うときは、最初にコマンドではなく経路を決めます。OpenRouterを使うなら、ゲートウェイ、モデル一覧、プロバイダー経路、利用履歴の所有者はOpenRouterです。DeepSeek直結を使うなら、Anthropic-compatible endpoint、トークン、モデルID、利用履歴の所有者はDeepSeekです。プロキシやrouterを使うなら、API形状、ログ、費用、データ経路を先に証明する実験経路として扱います。

| 経路 | 向いている状況 | テスト前にそろえるもの |
| --- | --- | --- |
| OpenRouter経路 | OpenRouterにgateway、provider routing、モデル一覧、activityを任せたい。 | OpenRouterのbase URL、OpenRouter token、OpenRouterモデル名、OpenRouter activity。 |
| DeepSeek直結経路 | Claude CodeからDeepSeekのAnthropic-compatible APIへ直接送りたい。 | DeepSeekのbase URL、DeepSeek token、DeepSeek model ID、DeepSeek側activity。 |
| proxy/router経路 | 3rd-party adapter、ローカルgateway、チームrouterを検証したい。 | base URL、token、model mapping、log、data handling、cost proofを同じownerで説明できる。 |

本物のrepo taskに入る前に、<code>/status</code>、provider log、小さなcanary promptが同じownerを示すか確認します。1回のテストではbase URLもcredential ownerもmodel ownerも1つだけです。ずれたら追加設定を入れる前に戻します。

## 経路を決めてから環境変数を書く

よくある失敗は、Claude Codeに特別な秘密コマンドが足りないことではありません。OpenRouterのbase URLにDeepSeek tokenを合わせる、DeepSeekのmodel IDを指定しながら古いAnthropicログインが勝つ、proxyがHTTPだけ受けてもClaude Codeが期待するAnthropic API形状を保てない、という所有者の混在です。

2026-07-03時点の確認では、責任範囲は次のように分けるのが安全です。

| Owner | 担当するもの | 証明しないもの |
| --- | --- | --- |
| Anthropic Claude Code docs | クライアント動作、環境変数名、settings、<code>/status</code>、gateway境界。 | すべての第三者モデルやproxyがAnthropicにサポートされること。 |
| OpenRouter docs | OpenRouterのClaude Code経路、token、base URL、model naming、provider activity。 | DeepSeek直結APIがOpenRouter routingと同じ動作をすること。 |
| DeepSeek docs | DeepSeekのAnthropic-compatible endpoint、model ID、mapping、ignored-field caveats。 | OpenRouter provider routingやproxy経路が有効であること。 |
| proxy/router project | 自分のadapter、log、cost、data path、compatibility claim。 | Claude Code公式サポート、provider cost、tool behaviorの保証。 |

OpenRouter cookbookはOpenRouterをgateway ownerにする場合の資料です。DeepSeekのcoding-agent資料はDeepSeek直結をownerにする場合の資料です。AnthropicのClaude Code資料はクライアント境界を定義します。3つを混ぜるのではなく、選んだ経路のownerに合わせて使います。

## 古いcredentialを消す

![Claude Code、OpenRouter、DeepSeek、proxy経路の環境変数所有者マップ](https://blog.laozhang.ai/posts/ja/claude-code-openrouter-deepseek/img/env-var-ownership-map.png)

設定前に、今のshellに別経路の変数が残っていないか見ます。secretは出さず、存在だけ確認します。

    test -n "$ANTHROPIC_AUTH_TOKEN" && echo "ANTHROPIC_AUTH_TOKEN is set"
    test -n "$ANTHROPIC_API_KEY" && echo "ANTHROPIC_API_KEY is set"
    test -n "$ANTHROPIC_BASE_URL" && echo "ANTHROPIC_BASE_URL is set"
    test -n "$ANTHROPIC_MODEL" && echo "ANTHROPIC_MODEL is set"

予想外の出力が出たら、shell profile、<code>.env</code> loader、IDE terminal、devcontainer、CI secret、<code>.claude/settings.local.json</code>のどこから来たか確認します。さらにexportを重ねると、一時的には動いても、あとで誰が勝ったのか説明できません。

きれいなテストでは一度消します。

    unset ANTHROPIC_AUTH_TOKEN
    unset ANTHROPIC_API_KEY
    unset ANTHROPIC_BASE_URL
    unset ANTHROPIC_MODEL

そのshellからClaude Codeを起動します。確認したshellと起動したshellが違うと、テスト結果は経路証明になりません。

## OpenRouter経路の設定

OpenRouter経路では、OpenRouterがgateway ownerです。tokenはOpenRouter、base URLはOpenRouter、model selectorはOpenRouterの現在の表記、activity proofもOpenRouter上で確認します。

一時的なshellテストは次の形です。

    export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
    export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY"
    unset ANTHROPIC_API_KEY
    claude
    /status

共有文書にはplaceholderだけを書き、実keyを貼りません。大事なのは、<code>ANTHROPIC_BASE_URL</code>、<code>ANTHROPIC_AUTH_TOKEN</code>、model selectorが同じOpenRouter経路に属していることです。

最初のproofは小さくします。新しいClaude Code sessionを開き、<code>/status</code>を見て、ファイルを変更しないcanary promptを送り、OpenRouter activityに同じrequest、model、provider routeが出ることを確認します。合わない場合はmodel名を替える前にrouteを作り直します。

## DeepSeek直結経路の設定

DeepSeek直結では、Claude CodeのAnthropic-compatible requestをDeepSeek APIへ直接送ります。endpoint、token、model ID、compatibility caveats、activity proofはDeepSeekが所有します。

shell-scoped testはこうなります。

    export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
    export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY"
    export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
    claude
    /status

DeepSeek docsには<code>deepseek-v4-flash</code>のようなcoding-agent model optionもあります。ただしmodel IDは固定資産ではありません。availability、suffix、web-search behavior、mapping、priceは変わるため、チーム手順に入れる前に再確認します。

OpenRouter logはDeepSeek直結のproofではありません。OpenRouter-owned routeがDeepSeek providerを使った可能性を示すだけです。DeepSeek直結ではDeepSeek endpoint、DeepSeek model ID、DeepSeek activityを同時に見ます。

## settings.localで漂流を防ぐ

shell exportは1回のcanaryには向いていますが、数日後に再開すると経路が見えなくなります。繰り返す実験では、commitされないlocal settingsに経路を置くほうが監査しやすくなります。

DeepSeek直結の形です。

    {
      "env": {
        "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
        "ANTHROPIC_AUTH_TOKEN": "$DEEPSEEK_API_KEY",
        "ANTHROPIC_MODEL": "deepseek-v4-flash"
      }
    }

OpenRouterでもownerをそろえます。

    {
      "env": {
        "ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
        "ANTHROPIC_AUTH_TOKEN": "$OPENROUTER_API_KEY",
        "ANTHROPIC_MODEL": "openrouter-model-id-from-current-docs"
      }
    }

これをそのまま共有settingsに入れないでください。<code>.claude/settings.local.json</code>がignoreされていることを確認し、token、private base URL、個人のprovider選択はlocal scopeに置きます。

## 実作業前の確認ループ

![Claude Code backend経路を実作業前に確認するループ](https://blog.laozhang.ai/posts/ja/claude-code-openrouter-deepseek/img/verification-loop.png)

確認は後片付けではなく設定の一部です。backend switchが安全なのは、route、credential、model、provider evidenceが同じ方向を示すときだけです。

| Step | 確認するもの | 通過条件 |
| --- | --- | --- |
| 1. Minimal prompt | repoを変更しない小さなprompt。 | authやtool errorなしで応答する。 |
| 2. <code>/status</code> | Claude Codeが見ているaccount、route、model。 | 選んだownerと一致する。 |
| 3. Environment | base URL、token owner、model variable。 | 目的経路の変数だけが残る。 |
| 4. Provider activity | OpenRouterまたはDeepSeekのactivity/log。 | 同じrequestが正しいprovider ownerに出る。 |
| 5. Read-only repo action | config説明、scripts確認、harmless command。 | 挙動が正常でファイルを変えない。 |
| 6. Rollback | env varsを消して再起動。 | 以前の既知routeに戻る。 |

費用、availability、model choiceを理由に切り替えるならprovider activity proofは省略できません。<code>/status</code>はクライアントの見方、provider activityは実際に誰がrequestを受け取ったかを示します。

## 初回エラーを分類する

![OpenRouterとDeepSeek経路でClaude Codeが失敗したときの初回エラー分類ボード](https://blog.laozhang.ai/posts/ja/claude-code-openrouter-deepseek/img/first-error-triage.png)

初回失敗では、設定を増やす前に分類します。多くはownership mismatchです。

| 症状 | 起きやすい原因 | 最初の修正 |
| --- | --- | --- |
| <code>401</code> または <code>403</code> | tokenがbase URL ownerと違う、key期限切れ、別credentialが勝つ。 | route variablesを消し、1つのtoken ownerだけを設定して再起動。 |
| <code>404</code>、model not found、model mismatch | model IDが別経路のもの、またはcatalogが古い。 | 現在のroute ownerからmodel IDを取り直し、provider activityを見る。 |
| provider dashboardが静か | requestが期待したproviderに届いていない。 | <code>ANTHROPIC_BASE_URL</code>、shell source、古いauth、proxyを確認。 |
| Claude Codeが固まる、toolが変 | proxy互換が部分的、headersやtool callsが保たれていない。 | 文書化されたrouteに戻し、proxyは単体で検証。 |
| 費用が別の場所に出る | route ownerとbilling ownerを混ぜている。 | <code>/status</code>とprovider activityを再確認。 |
| free/unlimited経路が落ちる | provider evidenceでそのclaimが証明されていない。 | route、model、limitsのproofがそろうまで未検証として扱う。 |

復旧は単純に戻すのが速いです。

    unset ANTHROPIC_AUTH_TOKEN
    unset ANTHROPIC_API_KEY
    unset ANTHROPIC_BASE_URL
    unset ANTHROPIC_MODEL
    claude
    /status

既知状態に戻ったあと、1つのbranchだけを追加します。OpenRouterならOpenRouterのbase URL、token、model、activityだけを見ます。DeepSeek directならDeepSeek endpoint、token、model ID、activityだけを見ます。branchをまたいだ修正は証明を壊します。

## Cost、data、supportのstop rule

最初に約束すべきなのは安さではなく証明可能性です。price、free tier、provider priority、web-search charge、model availability、rate limitはすぐ変わります。free forever、unlimited、works with any modelのようなclaimは、現在のowner proofがない限りチーム手順にしません。

| Stop rule | 理由 |
| --- | --- |
| 未検証proxyへsensitive codeを送らない | prompt、file、tool outputを誰が記録するか不明です。 |
| provider proofなしのcost claimを信じない | OpenRouterとDeepSeekのpriceやavailabilityは変わります。 |
| non-Claude routeをAnthropic公式サポートと言わない | AnthropicはClaude Code client boundaryを持つだけです。 |
| tokenやprivate base URLをcommitしない | shared settingsはsecret storageではありません。 |
| provider activity proof前にreal editsを走らせない | agentがファイルを変える前にrollback pathが必要です。 |

本当に知りたいのがgateway選定なら、gateway比較を先にします。CLI導入ならinstall手順を先にします。別productでDeepSeekを使う話なら、そのproduct routeをClaude Code gateway設定に混ぜません。

## よくある質問

### Claude CodeはOpenRouterとDeepSeekを使えますか？

使えます。ただし1つのsession内で混ぜないことが条件です。OpenRouter owner、DeepSeek direct owner、proxy ownerのいずれかにbase URL、token、model、activity proofをそろえます。

### DeepSeekはOpenRouter経由と直結のどちらがよいですか？

OpenRouterのprovider routing、dashboard、model catalog、gateway behaviorが必要ならOpenRouterです。DeepSeekのAnthropic-compatible endpoint、DeepSeek model ID、DeepSeek-side activityが必要なら直結です。良い経路は、repo、cost boundary、support ownerを証明できる経路です。

### 設定はどこに置くべきですか？

一時canaryはshell variablesです。繰り返すlocal experimentはignore済みの<code>.claude/settings.local.json</code>です。provider token、private base URL、個人routeをshared settingsへ入れないでください。

### <code>/status</code>だけで十分ですか？

十分ではありません。<code>/status</code>はclient-side checkです。実作業前にはenvironment checkとOpenRouterまたはDeepSeekのprovider activityを合わせます。

### freeやunlimitedの経路は使ってよいですか？

現在のprovider routeが証明した場合だけです。free tier、unlimited、priority、pricingはvolatile factです。手順にはproof date、owner、rollback pathを残します。

### model nameが何度も失敗する理由は何ですか？

model IDが別経路のものかもしれません。OpenRouter model name、DeepSeek direct model ID、Anthropic model aliasは交換できません。routeを消し、1つのownerで現在のdocsを確認します。
