Claude Codeのトークンとは?コンテキストウィンドウの仕組みを理解する

室谷今回はClaude Codeのトークンの話をしましょう。これ、.AI(ドットエーアイ)コミュニティでも「どれくらい消費するの?」「1Mってなに?」という質問が絶えないんですよね。
テキトー教師講座でもトークンの話は毎回出ます。「Claudeが途中で忘れる」とか「急に遅くなった」というのは、ほとんどがコンテキストウィンドウの話なんですよ。
仕組みを理解していると、だいぶ快適に使えるようになります。
仕組みを理解していると、だいぶ快適に使えるようになります。
室谷そうなんですよ。まず基本から整理すると、Claude Codeが処理できる「テキストの量」を測る単位がトークンです。
日本語だと1文字がおよそ1〜2トークンで、英語は1単語が約1トークン。コードはキーワードや記号ごとにトークンが割り当てられます。
日本語だと1文字がおよそ1〜2トークンで、英語は1単語が約1トークン。コードはキーワードや記号ごとにトークンが割り当てられます。
テキトー教師そのトークンをどれだけ一度に扱えるかを示すのがコンテキストウィンドウですね。これが「作業台の広さ」みたいなものです。
広ければ広いほど、長いコードや大量の会話履歴を同時に処理できます。
広ければ広いほど、長いコードや大量の会話履歴を同時に処理できます。
室谷Claude Codeの現行モデルは標準で200Kトークンのコンテキストウィンドウを持っています。さらにOpus 4.6とSonnet 4.6では1Mトークン(100万トークン)のコンテキストウィンドウがベータで使えます。
これが「claude code 1m」として検索されているやつですね。
これが「claude code 1m」として検索されているやつですね。
テキトー教師200Kトークンって文字数に直すとどのくらいかというと、日本語で約10万〜15万文字です。一般的な小説1冊が15〜20万字くらいなので、かなりの量ですね。
普通の開発作業では余裕で収まります。
普通の開発作業では余裕で収まります。
室谷ただし、コンテキストウィンドウはセッション内での会話のやり取りが積み重なっていくんですよね。最初は余裕があっても、長時間作業しているとどんどん埋まっていく。
テキトー教師そうです。コードの読み込み、コマンドの出力結果、Claude自身の返答、これら全部がトークンとして積み上がっていく。
コンテキストが満杯に近づくと、Claude Codeが自動的に古い会話を要約(compactと呼ばれる処理)して空きを作ります。
コンテキストが満杯に近づくと、Claude Codeが自動的に古い会話を要約(compactと呼ばれる処理)して空きを作ります。
トークンとは何か:数字で理解する
室谷具体的な数字を見ると理解しやすいので整理してみましょう。
| 内容 | 文字数 | 概算トークン数 |
|---|---|---|
| 日本語テキスト1文字 | 1文字 | 1〜2トークン |
| 英語単語1語 | 平均5文字 | 約1トークン |
| 一般的なコード1行 | 50文字 | 約15〜25トークン |
| 200Kコンテキスト | 約15万字(日本語) | 200,000トークン |
| 1Mコンテキスト | 約70〜75万字(日本語) | 1,000,000トークン |
テキトー教師大きなコードベースを丸ごと読み込んでも200Kで十分な場合がほとんどです。ただし、大規模プロジェクトで全ファイルを参照しながら長時間作業するケースでは1Mが便利になってきます。
室谷特に大規模リポジトリのリファクタリングや、複数ファイルにまたがる機能追加を一気にやる場合は、1Mコンテキストの恩恵が大きいですね。MYUUUでも大規模プロジェクトでは活用しています。
Claude Codeのトークン使用量を確認する方法
室谷じゃあ実際に今どれだけトークンを使っているか、確認する方法の話をしましょう。APIユーザーとサブスクリプションユーザーで微妙に違うんですよね。
テキトー教師そうですね。整理するとこうなります。
| コマンド | 対象 | 表示内容 |
|---|---|---|
/cost | APIユーザー向け | 現セッションのトークン数・ドルコスト |
/stats | Pro/Maxサブスクライバー向け | 使用パターン・利用統計 |
/context | 全ユーザー | コンテキストの内訳(何がスペースを消費しているか) |
室谷/costを叩くとこんな感じの情報が出てきます。Total cost: $0.55
Total duration (API): 6m 19.7s
Total duration (wall): 6h 33m 10.2s
Total code changes: 0 lines added, 0 lines removed
テキトー教師APIユーザーはこのドルコストが直接課金に関わるので重要ですね。一方、Pro/Maxサブスクライバーは定額制なのでドルコストは請求と無関係です。
でも自分がどのくらい使っているかを把握するために
でも自分がどのくらい使っているかを把握するために
/statsは使えます。
室谷公式ドキュメントによると、Claude Codeの平均コストはSonnet 4.6を使用した場合で開発者1人あたり1日6ドル、90%のユーザーの日次コストは12ドル以下とのことです。月換算すると100〜200ドル程度。
チーム利用の場合はこの金額がスケールします。
チーム利用の場合はこの金額がスケールします。
テキトー教師その数字、講座のコミュニティのメンバーさんによく見せるんですが、「え、そんなにかかるの?」と驚く人と「意外と安い」という人に半々に分かれます。時給換算すると全然ペイするんですけどね。
室谷MYUUUでもエンジニアが普通に使うとそのくらいで収まっています。ただ、エージェントチームを使ったり、自動化で大量バッチ処理をすると一気に跳ね上がります。
ステータスラインでコンテキスト使用量をリアルタイム表示する
テキトー教師コンテキストウィンドウの使用量をリアルタイムで確認したい場合は、ステータスラインの設定が便利です。
~/.claude/settings.jsonに設定を追加すると、ターミナルの下部にコンテキスト使用率が常時表示されます。
室谷/statusline show context percentage with a progress barというコマンドを打つだけで自動設定してくれます。残り何%かがひと目でわかるのが地味に便利で・・・
テキトー教師実際に手動で設定する場合は
~/.claude/settings.jsonに以下を追加します。used_percentageフィールドがコンテキストウィンドウ全体に対する現在の使用率を0〜100の数値で返してくれます。
室谷私のターミナルには常時このプログレスバーを表示させています。コンテキストが80〜90%になってきたら、そろそろ
/compactか/clearを使うサインですね。トークン使用量に影響するチームレート制限
テキトー教師チームで使う場合は、ユーザーあたりのトークン/分(TPM)制限も知っておく必要があります。公式の推奨値がドキュメントに掲載されています。
| チームサイズ | ユーザーあたり推奨TPM | ユーザーあたり推奨RPM |
|---|---|---|
| 1〜5ユーザー | 200k〜300k | 5〜7 |
| 5〜20ユーザー | 100k〜150k | 2.5〜3.5 |
| 20〜50ユーザー | 50k〜75k | 1.25〜1.75 |
| 50〜100ユーザー | 25k〜35k | 0.62〜0.87 |
| 100〜500ユーザー | 15k〜20k | 0.37〜0.47 |
室谷チームサイズが大きくなるほどユーザーあたりのTPMが下がっているのは、実際には全員が同時に使うわけではないからですね。200人のチームなら全員で400万TPMになるように設計するわけです。
Claude Codeのトークン使用量を節約する方法
室谷コストが気になる人向けに、トークン節約の話をしましょう。これ、実は公式ドキュメントがかなり詳しいんですよ。
テキトー教師整理すると大きく5つのアプローチがありますね。
- コンテキストを積極的に管理する(
/clear、/compactの活用) - 適切なモデルを選ぶ(OpusをSonnetに落とす等)
- MCPサーバーのオーバーヘッドを減らす
- フックとスキルで前処理をオフロードする
- 具体的なプロンプトを書く
室谷一番即効性があるのは
/clearの使い方ですね。関連のない作業に切り替えるたびにクリアする習慣をつけるだけで、無駄なトークン消費がかなり減ります。
テキトー教師講座で「/clearはいつ使えばいいですか?」という質問をよく受けます。目安は「タスクが一区切りついたとき」「別のファイルや機能の作業に移るとき」です。
会話履歴が長くなればなるほど、毎回の質問にかかるコストが増えていくんですよ。
会話履歴が長くなればなるほど、毎回の質問にかかるコストが増えていくんですよ。
室谷会話が長くなってきたけどまだ続けたい場合は
/compactが使えます。これは会話履歴を要約してコンテキストを圧縮するコマンドで、保持したい内容を指定できます。/compact Focus on code samples and API usage
テキトー教師CLAUDE.mdにコンパクション指示を書いておく方法もあります。
# Compact instructions
When you are using compact, please focus on test output and code changes
室谷これを書いておくと、Claudeが自動コンパクションをするときに何を保持すべきか判断してくれます。プロジェクトの性質に合わせて書いておくと良いですね。
モデルとeffortレベルの選択
テキトー教師モデルの選択もコスト管理に直結します。Sonnetはほとんどのコーディングタスクをうまく処理できて、Opusよりコストが低くなります。
複雑なアーキテクチャ設計や難しいデバッグのときだけOpusを使う、という使い分けが現実的ですね。
複雑なアーキテクチャ設計や難しいデバッグのときだけOpusを使う、という使い分けが現実的ですね。
室谷opusplanというモデルエイリアスが便利で・・・Planモード中はOpusの深い推論を使いつつ、実際の実装フェーズはSonnetに自動切り替えしてくれます。両方の長所を取れる設定ですね。
テキトー教師さらに細かく制御したい場合は
/effortコマンドでeffortレベルを調整できます。低い努力設定はシンプルなタスクでは速くて安く、高い努力設定は複雑な問題に対してより深い推論を提供します。| effortレベル | 適した用途 | コスト |
|---|---|---|
| low | 単純な質問、定型タスク | 最安 |
| medium | 通常のコーディング(デフォルト) | 標準 |
| high | 複雑なデバッグ、アーキテクチャ設計 | やや高 |
| max | 最も難しい推論タスク | 最高(Opus 4.6のみ) |
室谷Opus 4.6とSonnet 4.6のデフォルトはmediumです。深い推論が必要でないシンプルなタスクなら、
/effort lowに下げるだけでコストを削減できます。
テキトー教師セッション中に
/model sonnetと打てばその場でモデルを変えられますし、/configでデフォルトも設定できます。シンプルなサブエージェントタスクにはmodel: haikuを指定するとさらに節約できます。MCPサーバーのオーバーヘッドを削減する
室谷MCPサーバーの話も重要で、各MCPサーバーはアイドル状態でもツール定義をコンテキストに追加し続けます。
/contextを実行すると何がスペースを消費しているかがわかるので、使っていないサーバーを無効にするのが効果的です。
テキトー教師「全部入れておけばいつでも使えて便利」という発想でMCPサーバーを大量追加している人がいるんですが、それがコンテキストを圧迫している場合があります。実際に使っているサーバーだけを有効にしておく方がいいですね。
室谷公式ドキュメントには「MCPツール説明がコンテキストウィンドウの10%を超える場合、自動的にツール検索(lazy loading)に切り替わる」と書いてあります。それでも
ENABLE_TOOL_SEARCH=auto:5のように閾値を下げておくと、より積極的に遅延読み込みしてくれます。フックで前処理をオフロードする
テキトー教師フック(Hooks)を使うと、Claude Codeが見る前にデータを前処理できます。たとえば、10,000行のログファイルをそのままClaudeに渡すのではなく、フックでERRORのある行だけをフィルタリングして渡すと、コンテキストを数万トークンから数百トークンに削減できます。
室谷これ、エンジニア向けの話になりますが、本当に効果があります。うちのチームでも大量ログの処理はフックで前処理するようにしてから、コスト管理がかなり楽になりました。
テキトー教師スキル(Skills)も同じ発想で、CLAUDEがコードベースの構造を探索しなくても済むように、アーキテクチャの説明をスキルとして定義しておくんですよ。「codebase-overview」スキルにプロジェクト構造・主要ディレクトリ・命名規則をまとめておけば、毎回複数ファイルを読むトークンが節約できます。
Claude Codeの3層記憶圧縮パイプライン:流出コードから判明した仕組み
室谷ちょっと面白い話をしますね。以前、Claude Codeの内部コードが流出したことがあって、それでトークン管理の仕組みが判明したんですよ。
テキトー教師あのツイート、見ました。3層の記憶圧縮パイプラインが明かされたやつですよね。
室谷そうです。「Claudeが忘れた」という経験、みんなあると思うんですよね。
あれの正体がコードレベルで解明されたんですよ。
あれの正体がコードレベルで解明されたんですよ。
テキトー教師3層のパイプライン、改めて整理するとこうです。
- 第1層: MicroCompact(毎ターン実行・超安価):全APIリクエスト前に実行。ツール結果の不要部分を削除してトークン節約。会話構造自体は変えない
- 第2層: Session Memory Compact(中程度・APIコール不要):セッションメモリファイルから文脈を再構築。モデルへのAPIコールが不要なので安い
- 第3層: Legacy Compact(高コスト・完全要約):Claudeに「今までの会話を要約して」と依頼。元の会話記録は削除しない
室谷特に面白いのが「preserved-tail relinking」という設計で、要約後も「直近のメッセージの尾部」を保存して、再開時にこの尾部を要約チェーンにリンクし直すんですよ。「今まさに作業してるコンテキスト」を極力維持するための仕組みです。
テキトー教師これを知っていると、Claudeが自動コンパクションを行うタイミングがわかるんですよね。コンテキストが満杯近くになると第1層から順番に動くので、「急に遅くなった」と感じたらコンパクション中かもしれません。
室谷実用上の示唆としては、第3層のLegacy Compactが一番コストがかかるので、自動コンパクションに任せる前に自分でこまめに
/compactや/clearを使う方がコスト効率が良いですね。Claude Codeの1Mトークン:100万トークンコンテキストウィンドウを使う方法
室谷1Mコンテキストの話を掘り下げましょう。「claude code 1m」「claude code 100万トークン」と検索している人が多いので、使い方と注意点をまとめておきます。
テキトー教師まずどのプランで使えるかを整理するとこうなります。
| プラン | Opus 4.6(1M) | Sonnet 4.6(1M) |
|---|---|---|
| Max・Team・Enterprise | サブスクリプション内で利用可能 | 追加使用が必要 |
| Pro | 追加使用が必要 | 追加使用が必要 |
| API(従量課金) | フルアクセス | フルアクセス |
室谷重要なのが、1Mコンテキストは標準モデルと同じ価格で、200Kを超える部分のプレミアムはないということです。サブスクリプションに含まれているプランでは、使用量はサブスクリプションでカバーされたままです。
テキトー教師モデルピッカーで
/modelを開くと、対応しているプランではopus[1m]やsonnet[1m]という選択肢が出てきます。コマンドラインから指定する場合は:# モデルエイリアスで指定
/model opus[1m]
/model sonnet[1m]
# 完全なモデル名でも指定できる
/model claude-opus-4-6[1m]
室谷1Mコンテキストを完全に無効にしたい場合(コスト管理上の理由など)は、
CLAUDE_CODE_DISABLE_1M_CONTEXT=1という環境変数を設定します。すると/modelピッカーから1Mオプションが消えます。1Mコンテキストが本当に役立つ場面
テキトー教師「1Mコンテキストって実際に使う場面あるの?」という質問も多いですね。
室谷私の経験だと、具体的にこういうケースで役に立ちます。
- 大規模リポジトリのリファクタリング:複数のディレクトリにまたがる構造変更を一度に指示するとき
- 長期にわたるデバッグセッション:大量のログや複数ファイルのコードを参照しながら問題を追うとき
- ドキュメントの大量生成:既存コードを全て把握した上でREADMEや仕様書を書くとき
- レガシーコードの解析:数万行のレガシーコードを一度に読み込んで解析するとき
テキトー教師逆に「普段使いは200Kで十分」という感覚も大事で、無闇に1Mを使い続けると処理が重くなる場面もあります。必要な場面でだけ切り替えるのがベストプラクティスですね。
Claude CodeのプランとAPIでのトークン消費の違い
室谷料金プランの話もしておきましょう。Pro・Max・APIそれぞれでトークンとの向き合い方が違います。
テキトー教師整理するとこういう構図ですね。
室谷Proプラン(月$20)はClaude.aiサブスクリプションで、Claude Codeが含まれています。定額制なのでトークン消費量がドルに直結しない。
ただし5時間ローリングウィンドウと7日間のレート制限があります。
ただし5時間ローリングウィンドウと7日間のレート制限があります。
テキトー教師Proサブスクライバーは
/statsコマンドでレート制限の残量を確認できます。/costのドルコストは請求に関係ないですが、ステータスラインのrate_limits.five_hour.used_percentageフィールドを見ると5時間枠の消費率がわかります。
室谷Max 5xプランはProの5倍の使用量が上限で、Max 20xはその4倍。ヘビーユーザーになるほどMaxが現実的になってきます。
テキトー教師API課金はトークン単価で請求されます。Sonnet 4.6の場合、入力$3/Mtok・出力$15/Mtok。
これが前述の「開発者1人あたり月100〜200ドル」の元になっている数字ですね。
これが前述の「開発者1人あたり月100〜200ドル」の元になっている数字ですね。
室谷APIユーザーにとってはプロンプトキャッシングも重要です。Claude Codeは自動的にプロンプトキャッシングを使っていて、システムプロンプトなどの繰り返されるコンテンツのコストを削減しています。
これをオフにする理由はほぼないですね。
これをオフにする理由はほぼないですね。
テキトー教師キャッシュはファミリーごとに無効化できます。
DISABLE_PROMPT_CACHING=1 # 全モデルで無効
DISABLE_PROMPT_CACHING_SONNET=1 # Sonnetのみ無効
DISABLE_PROMPT_CACHING_OPUS=1 # Opusのみ無効
室谷クラウドプロバイダー(Bedrock、Vertex)経由で使っていて、キャッシュの動作をデバッグしたい場合に使うくらいで、通常は触らなくていいです。
よくある質問(FAQ)
室谷Q&A形式でよくある疑問にも答えておきましょう。
テキトー教師「claude code トークン 上限」という検索が多いですが、正確にはトークン上限は2種類あります。1つはコンテキストウィンドウ(入力として一度に渡せる量)、もう1つはレート制限(時間あたりの消費上限)です。
室谷コンテキストウィンドウの上限に引っかかると、Claude Codeが自動コンパクションをはじめます。レート制限に引っかかると一時的に処理が止まります。
Pro/Maxサブスクライバーにはステータスラインでレート制限の残量を確認する機能があります。
Pro/Maxサブスクライバーにはステータスラインでレート制限の残量を確認する機能があります。
テキトー教師「claude code pro トークン数」「claude code pro トークン上限」というのも多いですが、Proプランは定額制でトークン数の厳密な上限よりもレート制限(TPM・RPM)の方が現実的な制約になります。
室谷「claude code トークン リセット」については、レート制限は5時間ごとに自動リセットされます。コンテキストウィンドウは
/clearで手動リセットするか、Claude Codeが自動コンパクションで管理します。
テキトー教師「claude code トークン とは」という基本的な質問には、この記事の最初に戻って読んでもらうのが一番ですね。
室谷バックグラウンドでのトークン消費も知っておくと良いです。アイドル状態でも
公式によると通常はセッションあたり0.04ドル未満とのことです。小さい金額ですが、長時間走らせる場合は頭に入れておくと良いですね。
claude --resume機能のための会話要約や、一部のコマンド処理でトークンが使われます。公式によると通常はセッションあたり0.04ドル未満とのことです。小さい金額ですが、長時間走らせる場合は頭に入れておくと良いですね。
まとめ
室谷今回はClaude Codeのトークンについて一通り解説しました。まとめると・・・
テキトー教師こう整理できますね。
- トークン = Claude Codeが処理するテキストの単位。 日本語1文字が約1〜2トークン
- コンテキストウィンドウ = 一度に扱えるトークンの上限。 標準200K、1Mオプションあり
- 使用量確認は
/cost(API)または/stats(サブスクライバー) - 節約の基本は
/clearと/compactのこまめな活用 - モデル選択(Sonnetを使う、effortを下げる)もコスト削減に効果的
- 1Mコンテキストは大規模リポジトリや長期セッションで有効
室谷前回の料金プランの記事でも触れましたが、トークン管理を意識するだけでClaude Codeのコストは大きく変わります。特にAPIユーザーはこまめな
/clear習慣だけで月のコストが半分以下になることもあります。
テキトー教師「なんか気づいたら高い請求になっていた」という人の多くが、コンテキストを長時間溜め込んでいるケースです。ステータスラインでコンテキスト使用率を表示して、こまめに管理するのが一番のコスト削減策だと思いますよ。
室谷次回はClaude Codeのチュートリアルとして、実際の開発フローをもう少し詳しく紹介する予定です。お楽しみに。
