SSD Nodes Learn
ガイド Matt Connor著者 Matt Connor ・更新日 2026-07-24

Claudeのtokenとは?Codeセッションのコスト計算方法

Claudeのtokenは英語で約3.5文字に相当します。Claude Codeで1ターンに80,000token消費される理由や、5分間の待機で次のターンが5倍のコストになる仕組みを解説します。最新モデルのtokenizerの違いや、APIコストを制御するPrompt Cachingについても詳しく説明しています。

Claudeにおけるtokenとは?

tokenはClaudeが読み書きを行うテキストの単位です。単語の一部であり、英語ではおおよそ3.5文字に相当します。この数値はAnthropicの用語集に基づいています。スペースや句読点を含めると、1単語あたり1tokenを大きく上回ります。そのため、1,000単語の散文は1,300tokenを容易に超えます。コードは1行あたりの負荷がより高くなります。括弧、演算子、アンダースコア、インデントは、英語よりも1文字あたりのtoken分割が多くなります。数百行のソースファイルは、通常数千tokenに達します。エージェントが読み取る2,000行のファイルは、新しいコードを1行も書く前に、5桁のtoken消費が発生します。

tokenizersには、注意すべき点が2つあります。1つ目は、モデルごとに異なる点です。2026年7月時点では、Opus 4.7以降、Sonnet 5、およびFable 5は新しいtokenizerを使用しています。これらは従来のClaudeモデルと比較して、同じテキストに対して約30%多くのtokenを生成します(増加量はコンテンツにより異なります)。そのため、tokenあたりの価格は変わらなくても、予算計画に影響します。2つ目は、tiktokenです。多くのブログ記事で利用されているこのライブラリはOpenAIのtokenizerであり、通常のテキストではClaudeに対して約15–20%、コードではそれ以上の過小評価を行います。信頼できるカウント方法は、後述するcount_tokensエンドポイントのみです。

コーディングセッションのコストについて

Claudeの請求(APIの請求書、またはサブスクリプションの制限)は、すべて「入力トークン」と「出力トークン」の量によって決まります。料金ページには、入力100万トークンあたり◯ドル、出力100万トークンあたり◯ドルと、単純に記載されています。しかし、エージェントによるコーディングセッションでは、入力側の消費が直感よりもはるかに激しくなる点には触れられていません。これは、ターンごとに会話の全履歴が再送されるためです。私は15年間、従量課金制のインフラを販売してきましたが、トークンは多くの顧客が消費の理由を正確に把握できない、稀な課金形態です。本稿では、エージェントセッションにおける入力と出力の定義、再送ループが高コストになる理由、Prompt Cachingが計算式をどう変えるか、そしてコストを制御するためにどのレバーを操作すべきかについて解説します。

すべては入力です:メーターが実際にカウントするもの

ユーザーは Claude が生成したコードに対してのみ料金を支払っていると考えがちです。エージェントによるセッションでは、それはごく一部の項目に過ぎません。入力トークン(単価は低いですが、ボリュームは非常に大きくなります)には以下が含まれます。

  • システムプロンプト。 Claude Code 自身の制御用指示に加え、セッション開始時に読み込まれ、その後のすべてのリクエストに含まれる CLAUDE.md およびメモリファイルが含まれます。
  • ツール定義。 エージェントが呼び出し可能なすべてのツールスキーマ。接続した MCP server が増えるたびに、この固定オーバーヘッドが増加します。ただし、現在の Claude Code はデフォルトで MCP ツールの完全な定義を遅延読み込みするため、ツールが最初に使用されるまではツール名のみがコンテキストに含まれます。これによりコストは軽減されますが、ゼロにはなりません。
  • エージェントが読み取ったすべてのファイル。 ソースファイルの Read を行うと、ファイル全体がコンテキストに読み込まれ、保持されます。
  • すべてのツール実行結果。 テスト実行結果、grep の出力、ターミナルの出力、ビルドログなど、これらすべてが入力トークンとして返されます。例えば、8,000 行の出力を出す失敗したテストスイートは、本一冊分に相当する料金を発生させます。
  • ターンごとに再送される、これまでの会話全体。 これについては、別途詳しく説明する必要があります。

再送によるコスト増の仕組み

Claude APIはstateless(状態を持たない)です。リクエスト間でセッションを保持しません。そのため、turn 2では、clientはturn 1の内容、そのレスポンス、および新しいメッセージを送信します。turn 50では、turn 1から49までのすべての内容(すべてのfile read、tool result、diffを含む)にturn 50を加えて再送します。モデルは毎回トランスクリプト全体を読み直すため、読み直されるトークンはすべてinputとして課金されます。

その結果、1ターンあたりのコストはセッションの長さに比例して増加し、セッション全体の総コストは二次関数的に増加します。例えば、turn 3での1メッセージのコストが0.5セントだった場合、turn 60では同じ1行の質問であっても、60ターン分のデータが含まれるため、コストは20倍に膨れ上がります。これが「なぜ請求額がこれほど高いのか」という問い合わせの主な原因です。これはClaude特有の仕様ではなく、stateful(状態保持型)のように見えるすべてのLLM製品は、内部で再送ループを持つstatelessなAPIであるために起こる現象です。

Output: 表示される内容と、内部的な思考プロセス

Output tokenは、現在のラインナップではInput tokenの5倍のコストがかかります(2026年7月時点:Opus 4.8は$5/$25、Sonnet 5は$3/$15、$1/$5はHaiku 4.5)。Outputには、Claudeが生成するテキストとコード、およびthinking tokens(回答前の内部的な推論プロセス)が含まれます。ここで重要な事実が2つあります。ThinkingはOutputと同じ料金体系で課金され、max_tokensの制限にも影響します。APIレスポンスがstop_reason: "max_tokens"で終了する場合、回答が生成される前にThinkingが予算を使い果たしている可能性があります。また、現在のモデルでは推論の要約が表示されない場合があります(Opus 4.8、Sonnet 5、Fable 5はデフォルトで非表示)。しかし、推論は実行されており、課金対象となります。表示されないからといって、無料ではありません。

Claude Codeは、マルチステップの作業において効果が実証されているため、デフォルトでextended thinkingが有効になっています。デフォルトの予算は、1リクエストあたり数万トークンに達することがあります。単純なタスクでは、設定を調整できます。/effortまたは/modelでeffort levelを下げ、あるいは/configでthinkingの設定を調整してください。これは、コストを制御するための有効な手段です。

Prompt caching によるコスト計算の変化

Prompt caching は、リクエストの繰り返しによるコスト増大を防ぐ仕組みです。API は、system prompt、tool definitions、conversation history などの固定された prefix をキャッシュできます。次回の request では、その部分を大幅に安価に提供します。2026年7月時点の倍率は以下の通りです。cache write は base input rate の 1.25倍(1時間保持版は 2倍)であり、cache read は 0.1倍です。Write には追加料金がかかりますが、Read は 90% discount となります。1回の read だけで、5分間の write プレミアムを十分に回収できます。

Claude Code は caching を自動的に管理します。正常な session では、膨大なリピートリクエストのほとんどが cache から提供されます。ただし、デフォルトの cache 有効期間は、最終使用から 5分間 です。休憩が長引いて戻り、メッセージを送信すると、cache が expire している場合があります。その場合、蓄積された prefix 全体が 0.1倍の read ではなく、1.25倍の re-write として処理されます。150K-token の session では、この 1回の cold turn が、12回分以上の warm turn よりも高額になります。注意すべき直感に反する事実は、「中断してから再開するリズムは、連続して作業するよりもコストがかかる場合がある」ということです。TTL を過ぎるたびに、次の turn が安価な read から高価な re-write に変わるためです。作業はまとめて行い、10分おきにメッセージを送るような、巨大な session の小出しな利用は避けてください。

VPS 上の自作アプリケーション から API を呼び出す場合、これらの機能は自動では適用されません。よくある失敗は、system prompt に timestamp や request ID を含めることです。これにより、request ごとに prefix のバイトが変化し、キャッシュが無効化されます。usage.cache_read_input_tokens が、同じ内容の call に対して 0 のままであれば、それが原因です。

計算式と具体例

「セッションのコストは一律で$Xです」という主張は無視してください。セッションのコストは2桁の幅で変動します。重要なのは以下の計算式です。

turn cost = (uncached input      x base input price)
          + (cache writes        x 1.25 x base input price)
          + (cache reads         x 0.10 x base input price)
          + (output incl. thinking x output price)

session cost = sum over all turns

Claude Opus 4.8を用いた具体例を示します。2026年7月時点の料金は、input tokenが100万件あたり$5、output tokenが100万件あたり$25です。蓄積されたコンテキストが80,000 tokensあるセッション中の中間ターンを想定します。内訳は、cacheからの読み取りが75,000、新規書き込みが3,000、uncachedな新規inputが2,000、thinkingを含むoutputが1,500です。

  • Cache reads: 75,000 × $0.50/M = $0.0375
  • Cache writes: 3,000 × $6.25/M = $0.019
  • Uncached input: 2,000 × $5/M = $0.010
  • Output: 1,500 × $25/M = $0.0375

1ターンあたりのコストは約$0.10です。同様のターンが50回続くと、約$5になります。次に、cacheの期限が切れた後の同じターンを計算します。80,000 tokensすべてを$6.25/Mで書き換えると、outputの前に$0.50かかります。これは、同じ作業内容に対して、warmなターンの約5倍のコストがかかることを意味します。この差が、cachingのメリットを端的に示しています。

予測ではなく、目安として:Anthropicが公開している2026年7月時点のenterprise Claude Code導入事例では、開発者1人あたりのアクティブな1日あたりの平均コストは約$13(月額$150–250)です。ただし、ユーザーの90%は1日あたり$30以内に収まっています。コストはモデルの選択、セッションの管理状態、およびcodebaseのサイズによって決まります。そのため、以下の制御項目が重要になります。

Seeing your own usage

In Claude Code, the command is /usage (/cost still works — it's an alias). The Session block at the top shows token statistics and a locally computed cost estimate for the current session; on subscription plans the same screen shows your plan-limit bars and a breakdown attributing recent usage to skills, subagents, plugins, and individual MCP servers. For authoritative billing on API accounts, the usage page in the Claude Console is the source of truth — the CLI figure is an estimate. /context draws a colored grid of what's occupying the context window — system prompt, tools, MCP definitions, files, history — and is the fastest way to spot a bloated CLAUDE.md or a chatty MCP server; pass all to expand the full per-item breakdown.

From the API, every response tells you exactly what happened:

response = client.messages.create(model="claude-sonnet-5", max_tokens=2048,
                                  messages=messages)
u = response.usage
total_prompt = u.input_tokens + u.cache_creation_input_tokens + u.cache_read_input_tokens
print(f"uncached={u.input_tokens} written={u.cache_creation_input_tokens} "
      f"read={u.cache_read_input_tokens} output={u.output_tokens}")

Note that input_tokens is only the uncached remainder — the true prompt size is the sum of all three input fields. An agent that ran for an hour showing input_tokens: 4000 isn't cheap; the other 200,000 tokens were served from cache. To estimate before you send, use the token-counting endpoint — it's free to call, sits on its own rate limit, and counts with the tokenizer of whichever model you name (treat the result as a close estimate; billing reflects the real request):

count = client.messages.count_tokens(model="claude-sonnet-5",
                                     messages=[{"role": "user", "content": big_file}])
print(count.input_tokens)

Never tiktoken, for the reason above.

Subscription plans と pay-as-you-go の違い

このガイドの仕組みはどこでも共通ですが、決済方法のみが異なります。API key を使用する場合、Anthropic は公開レートに基づき、トークンごとに pay-as-you-go で課金します。上記の数値はすべて実際の金額です。Claude subscription (Pro, Max, Team, Enterprise) の場合、Claude Code の使用量はプランに含まれる枠から消費されます。2026年7月時点では、5時間のローリングセッションウィンドウと週次ウィンドウがあり、これらは各モデルおよび claude.ai chat と共有されます。/usage ドルという数値は、請求額ではなく情報提供のためのものです。ウィンドウを使い切ると、リセット時間が表示され、"You've hit your session limit" または "You've hit your weekly limit" と表示されます。/model でモデルを切り替えても、ウィンドウはモデル間で共有されているため、アクセスは復元されません。プランの設定により、上限を超えて使用するための usage credits を有効にできます。これは /usage-credits で管理されます。プランの割り当て量は、このトピックの中で最も変動が激しいため、ここでは記載しません。代わりに claude.com/pricing または自身の /usage バーを確認してください。subscription であってもトークンの仕組みは重要です。無駄なセッションは、ドルを消費する場合と同様に、ウィンドウを消費します。subscription に関する詳細は、どの Claude plan が使用用途に適しているか を参照してください。

効果的な制御手段

  • Agentの読み込み範囲を制限する。 "auth.py のバリデーションバグを修正して" は1つのファイルのみを読み込みますが、"このコードベースを改善して" は40ものファイルを読み込みます。CLAUDE.md はすべてのセッションでロードされるため、最小限に抑えてください。ワークフロー固有の指示は、必要に応じてロードされる skills に移動させてください。
  • 簡潔かつコンパクトに保つ。 無関係なタスクの間で /clear を行ってください。古いコンテキストが再送信されると、その都度課金が発生します。一つの長いタスク内では、/compact Focus on the failing tests and the diff が履歴を要約し、計算コストの指数関数的な増加を防ぎます。
  • モデルのサイズを適切に選択する。 Sonnetはほとんどのコーディングに適しています。2026年7月時点の導入価格では、100万トークンあたり $2/$10 です(Opusの $5/$25 に対して、定価は $3/$15)。ログの仕分けなどの機械的なサブエージェント作業には、$1/$5 の Haiku が適しています。/model により、セッション中にモデルを切り替えられます。
  • 冗長な出力を事前にフィルタリングする。 テスト実行結果を grep で失敗箇所のみに絞り込んでから Claude に渡すフックを使用してください。これにより、20,000 トークンのツール結果を 300 トークンに削減できます。これは、そのターンの再送信が行われるたびに適用されます。
  • 非対話的な処理はバッチ化する。 分類、一括レビュー、夜間ジョブなどの自社 API パイプラインには、Batches API を使用してください。非同期配信を条件に、同じモデルを 50% 安価に実行できます。
  • キャッシュの有効期限を意識する。 連続した作業を行ってください。VPS上の tmux で実行する Claude Code セッション は、アイドル状態ではコストがかかりません。トークンはターンが実行されるときにのみ消費されます。ただし、アイドル状態が続くとキャッシュが失われ、次のターンで再書き込みのコストが発生します。

FAQ

Claude Code のコーディングセッションでは、トークンをいくつ消費しますか?

固定の値はありません。ファイルや履歴が蓄積されると、セッション中の中間ターンで数万の prompt tokens を消費することが一般的です。作業セッション全体では数百万に達しますが、その多くは cache から提供されるため、基本料金の 1/10 で済みます。目安として、Anthropic が 2026 年 7 月に発表したエンタープライズ向けの数値では、アクティブな 1 日あたりの開発者 1 人あたりの平均は約 $13 で、ユーザーの 90% が $30 未満です。ご自身のセッションで /usage を実行してください。5 分間実行するだけで、公開されている平均値よりも正確な結果が得られます。

表示されない「thinking tokens」にも料金はかかりますか?

はい。Thinking tokens は output tokens として課金されます。これは高価な料金体系であり、max_tokens の対象となります。現在のモデルでは、インターフェースに推論の要約が表示されない場合でも、これらは課金対象です。回答が完了する前に stop_reason: "max_tokens" で切断された場合、thinking が予算を消費した可能性があります。Claude Code では、深い推論を必要としないタスクに対して /effort を使用して effort level を下げることができます。

なぜ Claude Code のセッションが長くなると、メッセージあたりのコストが上がるのですか?

API は stateless(状態を持たない)であるためです。ターンごとに、これまでのすべてのファイル読み込み、tool の結果、および過去のやり取りが、課金対象の input として再送されます。そのため、50 回目のターンには 1 から 49 回目までの内容が含まれます。Prompt caching により、繰り返される prefix は基本入力価格の約 1/10 で処理されますが、prefix 自体は増え続けます。また、cache の TTL を過ぎてアイドル状態になると、次のターンはフルプライスでの再書き込みとなります。/compact は履歴を圧縮し、/clear は履歴をリセットします。

Claude のトークン使用量とコストを確認する方法は?

Claude Code では、/usage でセッションのトークン統計、ローカルのコスト見積もり、およびサブスクリプションのプラン制限バーを表示できます(/cost はそのエイリアスです)。/context はウィンドウ内の表示内容を示します。正確な API 課金を確認するには、Claude Console の usage ページを使用してください。自身のコード内では response.usage を読み取ってください。input_tokenscache_creation_input_tokens、および cache_read_input_tokens を合計したものが実際の prompt サイズとなります。事前の見積もりには count_tokens エンドポイントを使用してください。tiktoken は使用しないでください。