メインコンテンツにスキップ

Claude CodeにおけるAPIキー環境変数の管理

今週アップデートされました

Claude Codeにおける認証の優先順位について

Claude Codeを使用する際は、予期しないAPI料金の発生を避け、意図したアカウントを使用していることを確認するために、認証方法がどのように優先されるかを理解することが重要です。

重要:システムにANTHROPIC_API_KEY環境変数が設定されている場合、Claude CodeはClaude.aiサブスクリプション(Pro、Max、Team、またはEnterprise)ではなく、このAPIキーを認証に使用します。その結果、サブスクリプションに含まれる使用量ではなく、API使用料金が発生します。

認証の仕組み

  • Claude Codeは、認証されたサブスクリプションよりも環境変数のAPIキーを優先します。

  • これは、認証方法を柔軟に選択できるように設計された意図的な動作です。

  • APIキーが環境変数として設定されている場合、そのキーに関連付けられたAPIアカウントを使用して、API従量課金制の料金が請求されます。

  • これは、Claude.aiサブスクリプションまたは別のConsoleアカウントでClaude Codeにログインしている場合でも発生します。

ベストプラクティス

ClaudeサブスクリプションでClaude Codeを使用するには:ANTHROPIC_API_KEY環境変数を未設定のままにしてください。

  • これにより、予期しないAPI料金の発生を防ぎ、サブスクリプションに含まれる使用量を確実に使用できます。

  • 特定のAPIキーを時々使用する必要がある場合は、必要なときだけ一時的に設定してください。

  • Claude Codeで定期的に/statusを実行して、現在の認証方法を確認してください。

認証の競合に関する警告

Claude Codeは、認証されたサブスクリプションと環境変数のAPIキーの間に競合がある場合に通知します:

  1. 初期設定時に、環境変数でAPIキーが検出された場合、Claude Codeはどちらの認証方法を使用するかの確認を求めます

  2. ログイン成功後、両方の認証情報がアクティブな場合は通知が表示され、予期しないAPI料金が発生する可能性があることを警告します

現在の設定の確認

APIキーが環境変数として設定されているかどうかを確認するには、Claude Codeで/statusを実行してください。これにより、現在アクティブな認証方法が表示されます。

環境変数を直接確認するには、ターミナル(Claude Codeの外)で次のいずれかのコマンドを実行してください:

macOS/Linux:

echo $ANTHROPIC_API_KEY

Windows CMD:

echo %ANTHROPIC_API_KEY%

Windows PowerShell:

echo $env:ANTHROPIC_API_KEY

APIキーを一時的に設定する

現在のターミナルセッションのみでAPIキーを使用する必要がある場合:

macOS/Linux:

export ANTHROPIC_API_KEY='your-api-key-here'

Windows CMD:

set ANTHROPIC_API_KEY=your-api-key-here

Windows PowerShell:

$env:ANTHROPIC_API_KEY="your-api-key-here"

APIキー環境変数を永続的に設定する

macOS/Linux:

zshの場合(macOSのデフォルト):
bash
# シェル設定ファイルに追加
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.zshrc

# 変更を適用
source ~/.zshrc
bashの場合:
bash
# シェル設定ファイルに追加
echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.bash_profile

# 変更を適用
source ~/.bash_profile

Windows:

  1. システムのプロパティ → 詳細設定 → 環境変数を開く

  2. 「ユーザー環境変数」で「新規」をクリック

  3. 変数名: ANTHROPIC_API_KEY

  4. 変数値: your-api-key-here

  5. OKをクリックしてターミナルを再起動

APIキー環境変数を削除する

macOS/Linux(一時的):

unset ANTHROPIC_API_KEY

macOS(永続的):

# 設定ファイルから削除
sed -i '' '/ANTHROPIC_API_KEY/d' ~/.zshrc
source ~/.zshrc

Linux(永続的)

sed -i '/ANTHROPIC_API_KEY/d' ~/.zshrc

Windows CMD:

set ANTHROPIC_API_KEY=

Windows PowerShell:

Remove-Item Env:ANTHROPIC_API_KEY

Windows(永続的):システム環境変数の設定から変数を削除してください。

避けるべき一般的な問題

  • シェル設定ファイルに環境変数を設定して、そのことを忘れてしまう。

  • 環境変数を変更した後にターミナルを再起動しない。

  • 環境にAPIキーが設定されているのに、サブスクリプションを使用していると思い込む。

こちらの回答で解決しましたか?