◉CLAUDE LABEN
●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした●2.1.296 — サブエージェントごとに autoCompactWindow を指定でき、ワークフロー用のモデルも環境変数で固定できます●HAIKU 5.5 — 2.1.293(10/07)から claude-haiku-5-5 が Anthropic API の既定の Haiku モデルになりました●SONNET 4.5 — Claude API での提供終了は 11/30、残り47日。移行先は Sonnet 5.5●Q&A — Mod が「エラーなしで何も描かれない」ときに見る3か所が共有されています●AGENTS.MD — Codex と Claude Code を同じフォルダで使うとき、AGENTS.md と CLAUDE.md の入口をどう分けるかの整理が出ています●NEW — 「cd して git add して commit」の承認が毎回出るのは、設定の抜けではなく仕様でした
記事一覧/Claude Code
⟐ Claude Code/2026-09-20中級

Pro を払っているのに Console に請求が立っていたとき、私が最初に見た一行

サブスクリプションと API の従量は別会計で、Claude Code はそのどちらでも動きます。どちらが選ばれているかを決めるのは優先順位で、ログインはその最下段です。status の読み方と、無人実行だけが別の答えを返す理由を書き残します。

Claude Code263認証6コスト管理14環境変数7個人開発130

月初に Console の使用量ページを開いたところ、前の月には無かった従量の行が立っておりました。金額は珈琲一杯ぶんで、慌てるほどではありません。ただ、心当たりが一つもないという事実のほうが、胃のあたりに残りました。

Pro の請求は別に届いております。だとすれば、この行は誰が立てたのか。

答えは、数か月前に一度だけ試して、そのまま消し忘れていた環境変数でした。

会計は二つあり、Claude Code はそのどちらでも動きます

claude.ai のサブスクリプション(Pro・Max・Team・Enterprise)と、Console から発行する API キーの従量課金は、最初から別の会計です。片方に入っているからもう片方が無料になる、という関係にはなっておりません。

そして Claude Code は、その両方の資格情報を受け付けます。ここが見落とされやすいところで、ブラウザでログインを済ませていても、それだけでサブスクリプションが使われると決まるわけではないのです。

どのプランに入っているかではなく、いまどの資格情報が選ばれているかが、請求先を決めます。

プランそのものの選び方は個人開発者のための Claude プラン早見表 2026に分けて書いておりますので、ここでは「入っているプランが使われていない」という一点だけを扱います。

status の一行が、いまの財布を教えてくれます

Claude Code のプロンプトで /status と打つと、認証の節に Login method の行が出ます。ログインと API キーの両方が手元にある場合、使われていないほうの資格情報に印が付きますので、どちらが生きているかはこの一行で確定します。

プロファイル(ant auth login や、キーを作らない Console サインインが書くもの)が選ばれているときは、Login method ではなく Profile の行に置き換わります。行の名前が変わること自体が、「いま別の入り口から入っている」という合図です。

なお、保存済みのログインが期限切れになっていると、この行は期限切れの表示になり、保存されている組織とメールアドレスも一緒に出ます。この表示は v2.1.210 以降で、期限の3日前からは起動時にも警告が出ます(v2.1.203 以降。それ以前は5日前でした)。

端末側だけで確かめたいときは、Claude Code を閉じた状態で次のどれかを打ちます。

# macOS / Linux
echo $ANTHROPIC_API_KEY
 
# Windows PowerShell
echo $env:ANTHROPIC_API_KEY
 
# Windows コマンドプロンプト
echo %ANTHROPIC_API_KEY%

何も出なければ環境変数は空です。逆に文字列が返ってきたら、その鍵が請求先を握っています。

優先順位は7段あり、ログインはいちばん下です

資格情報が複数あるとき、Claude Code は上から順に見て、最初に見つかったものを使います。順番は次のとおりです。

順位資格情報主な用途
1クラウドプロバイダ(CLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRY)Bedrock・Vertex・Foundry 経由
2ANTHROPIC_AUTH_TOKENBearer 認証のゲートウェイ・プロキシ
3ANTHROPIC_API_KEYConsole の API キーで直接叩く
4apiKeyHelper の出力短命トークンを都度取得する構成
5CLAUDE_CODE_OAUTH_TOKENCI など、ブラウザを開けない環境
6プロファイル・フェデレーション資格情報ant CLI・Workload Identity Federation
7/login のサブスクリプションPro・Max・Team・Enterprise の既定

表を書き写してみて、私はようやく腑に落ちました。サブスクリプションは最優先どころか、最下段なのです。上に何か一つでも残っていれば、ログイン済みの表示はそのままに、請求だけが別の口へ流れます。

対話モードでは、環境変数のキーが見つかったときに一度だけ承認を求められ、その選択が記憶されます。あとから変えるときは /config の「Use custom API key」のトグルで、これは環境変数が設定されている間だけ画面に出ます。

無人の実行だけが、別の答えを返していました

ここからが、私が二日ほど遠回りをした部分です。

私は個人開発で、Lab の記事更新や壁紙アプリの素材整理を、cron から呼ぶシェルに任せております。その日も手元のターミナルで /status を開き、サブスクリプションで動いていることを確かめて、安心して閉じました。

ところが従量の行は、翌月も立ちました。

非対話モード(-p)では、承認の問いかけそのものがありません。キーが存在すれば常に使われます——対話セッションで「使わない」と選んだ記憶は、そこには効きません。cron から起動するシェルは対話の画面を持ちませんから、私が見ていた /status の表示は、無人側の実態を一度も代表していなかったのです。

対話の画面で確かめれば足りると思い込んでいたのだと気づいたのは、二度目の請求が届いたあとでした。

対話の画面で確かめた安心は、無人の実行には届きません。 無人の実行には、無人のまま自分で名乗らせます。

実行の前に一行だけ記録を残すラッパーを挟むと、翌朝には答えが出ております。

#!/bin/bash
# 無人実行の前に「どの資格情報で動くか」を記録してから起動します
set -euo pipefail
 
LOG="${HOME}/claude-runs/$(date +%F).tsv"
mkdir -p "$(dirname "$LOG")"
 
if [ -n "${CLAUDE_CODE_USE_BEDROCK:-}${CLAUDE_CODE_USE_VERTEX:-}${CLAUDE_CODE_USE_FOUNDRY:-}" ]; then
  SRC="cloud-provider"
elif [ -n "${ANTHROPIC_AUTH_TOKEN:-}" ]; then
  SRC="auth-token"
elif [ -n "${ANTHROPIC_API_KEY:-}" ]; then
  SRC="api-key(従量)"
elif [ -n "${CLAUDE_CODE_OAUTH_TOKEN:-}" ]; then
  SRC="oauth-token(サブスク)"
else
  SRC="login(サブスク)"
fi
 
printf '%s\t%s\t%s\n' "$(date -Iseconds)" "$SRC" "$*" >> "$LOG"
claude -p "$*"

手元で走らせると、次の一行が残ります。

2026-09-20T15:02:11+09:00	api-key(従量)	記事の見出しを整えてください

判定を優先順位の上から順に並べているのは、if の順序をそのまま表の順位に合わせるためです。並べ替えてしまうと、たとえばキーとトークンが両方ある環境で、記録だけが実態とずれます。記録が実態とずれたログは、無いログより厄介です。

無人実行そのものの取りこぼしについては、無音で半分になっていた定期実行と、欠落を捕まえる突き合わせで別の角度から掘り下げております。

消したはずの鍵が、明日また戻ってくる場所

unset ANTHROPIC_API_KEY は、いま開いているターミナルにしか効きません。翌朝また従量で動いていたなら、鍵は別の場所から復活しています。

置き場所効く範囲外し方
~/.zshrc / ~/.bash_profile新しいシェルすべて該当行を削除して読み直す
Windows のユーザー環境変数そのユーザーの全プロセスシステムのプロパティから削除し端末を再起動
設定ファイルの env ブロックその設定が効くセッション設定ファイルから該当キーを削除
CLAUDE_CODE_OAUTH_TOKEN毎回の新セッションシェルのプロファイルから削除
プロファイル(configs/)プロファイルを見る面すべて/logout または ant auth logout

CLAUDE_CODE_OAUTH_TOKEN については一つ補足がございます。これはサブスクリプションで認証するトークンですので、請求先という意味では従量に流れません。ただし /login で入り直しても、シェルのプロファイルに残っている限り新しいセッションでは毎回読み直されますので、「入り直したのに戻る」という同じ手触りの迷いを生みます。

面による違いも、知っておくと迷いが減ります。Claude Desktop とクラウドのセッションは、これらの環境変数も apiKeyHelper も読みません。同じマシンで、ターミナルは従量、デスクトップはサブスクリプション、という状態はふつうに起こり得ます。

今日の一手

まずは Claude Code を開いて /status を一度だけ見て、Login method(あるいは Profile)の行を読んでください。印の付いていないほうが、いま請求を受けている側です。

私自身、この一行を月初の確認に加えてから、Console の使用量ページを開くのが怖くなくなりました。お読みいただきありがとうございました。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ Claude Code2026-09-10
「Not signed in to the Cloud gateway」で全リクエストが止まる朝に、設定より先に版を見ます
Claude Code 2.1.265 でゲートウェイ・プロキシ構成が全リクエスト失敗した回帰を入口に、認証の入力面を一枚に並べて「設定と版のどちらが変わったか」を数秒で切り分ける小さな手順をまとめます。
⟐ Claude Code2026-08-22
Claude Code の headersHelper に移したら、プロジェクト配下のカタログだけ認証が通らなくなりました
自前のプラグインカタログを headersHelper へ移す途中で、ユーザースコープでは動くヘルパーがプロジェクト配下だけ落ちました。原因は認証情報の非継承です。動くヘルパー2種と実測した実行コスト、無人実行での注意点をまとめました。
⟐ Claude Code2026-08-18
調べ物タスクの WebFetch キャッシュ TTL を、自分の使い方に合わせて選ぶ
Claude Code の WebFetch には URL キャッシュの TTL 設定があります。同じページを何度も取りに行く調べ物タスクで、取得回数と情報の鮮度がどう入れ替わるのかを、観測用の小さなサーバと計算スクリプトで確かめながら決めていきます。