Claude Code Readのallow_largeで大きなファイルを全文読む
Claude Code v2.1.296で加わったReadツールのallow_largeは、通常の上限を超える全文を1回で読む指定です。効く範囲、効かない対象、offset・Grep・環境変数との使い分けをまとめます。
allow_largeは、Claude CodeのReadツールが持つオプションで、trueにすると通常の上限を超えるテキストファイルを1回の呼び出しで全文読めます。v2.1.296で追加されました。上限の基準は固定値ではなく、セッションのコンテキストウィンドウに残っている空きです。
既定のReadは1回で最大25,000トークンまでしか返さず、256KBを超えるファイルの全体読みは拒否します。allow_largeが効くのは、全体を一度に見ないと進まない作業だけです。効かない対象や、offset・Grep・環境変数との使い分けも後述します。
allow_largeは何を変えるのか
既定の動きは次のとおりです。1回のReadが返すのは最大25,000トークン(またはCLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENSで設定した値)で、256KBを超えるファイルは全体を一度には読みません。大きなファイルはoffsetとlimitでページに分けて読みます。
allow_large: trueを付けると、この上限の代わりにセッションのコンテキストウィンドウの残りが基準になります。全文でも、長い行範囲でも、1回の呼び出しで返せます。Claudeがこの指定を付けるのは、全体が必要なときです。たとえば「ファイル全体を読んで」と頼んだ場合です。
通常のRead と allow_large付きのRead
通常のRead
1回の上限は25,000トークン。全体読みが超えると、先頭ページとPARTIAL viewの通知が返ります。256KB超の全体読みは拒否されます。
allow_large: true
上限の基準が、コンテキストウィンドウの残りに変わります。全文や長い範囲を1回で読めます。
手元のバージョンは次のコマンドで確かめます。v2.1.296で実行した出力は次のとおりです。
claude --version2.1.296 (Claude Code)v2.1.296未満ではallow_largeが使えません。changelogでの扱いはv2.1.296のリリースノートにもあります。
上限を超えたとき、Claudeには何が返るか
通常のReadで上限を超えたとき、返り方は読み方で分かれます。
| 読み方 | 超過したときに返るもの |
|---|---|
| 全体読みがトークン上限超過 | 超過したときに返るもの先頭ページ + PARTIAL view通知(受け取った量と、offset・limitで続きを読む案内) |
| 全体読みが256KB超 | 超過したときに返るものエラー。offset・limitで一部を読むか、Grepで探すよう案内 |
offset・limit付きの読みがトークン上限超過 | 超過したときに返るもの同じくエラー |
エラー文言そのものの原因と対処は、exceeds maximum allowed tokensの解説で扱っています。allow_largeを付けると、この表の3つの場合のいずれも、コンテキストに空きがあるあいだは全文(または指定した範囲)が返ります。
ページ読みでは、範囲の外れ方にも通知があります。空のファイルを読むと「ファイルは存在するが中身が空」という通知が返り、offsetが最終行より先を指すと、そのファイルの行数を伝える通知が返ります(v2.1.208以降。それ以前は空ファイルでも行数の通知が出ていました)。ページ送りで次を読ませる運用では、この行数の通知が「もう続きはない」の合図になります。
使い分け — 全文が要るのか、一部で足りるのか
allow_largeは便利ですが、全文を読むぶんだけコンテキストを消費します。次の順で判断すると無駄が減ります。
大きなファイルを読ませる前の切り分け
- Q探したいのは特定の語や関数だけか?答えが全体が必要答えがはい
Grepで該当行を探させ、その周辺だけ
offset・limitで読ませます。全文は不要です。 - Q全体を一度に見ないと判断できない作業か?(通読、全件の整合性確認など)答えがいいえ答えがはい
offset・limitで区切って読ませます。区切りながら要点をメモさせれば、全文を抱えずに済みます。 - Qコンテキストウィンドウに空きは十分あるか?答えが空きが少ない答えがはい
先に
/compactか/clearで空きを作ります。空きの目安はコンテキストウィンドウを見える化する方法で確認できます。
allow_largeで全文を読ませる
「このファイルを最初から最後まで読んで」のように、全体が必要だと伝えます。
「1回で読みたい」という理由だけで使うと、読み終えた全文が会話に残り続け、以降のやり取りの余白を削ります。会話が長くなったときの圧縮の仕組みは/compactの解説にまとめています。
環境変数との違い
上限を動かす手段は、allow_largeのほかにもう1つあります。CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENSは、ファイル読み込みの既定の上限(25,000トークン)を書き換える環境変数です。
| 手段 | 効く範囲 | 上限の基準 |
|---|---|---|
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS | 効く範囲そのセッションのすべてのRead | 上限の基準設定した固定値 |
allow_large: true | 効く範囲その1回のRead | 上限の基準コンテキストウィンドウの残り |
env-vars表には、allow_large付きの読み込みは、コンテキストに空きがあればこの環境変数の値も超えられる、と書かれています。常に大きめの上限で動かしたいなら環境変数、必要な1回だけ全文を読みたいならallow_large、という分担です。
環境変数で上限を上げる例は次のとおりです(値は例です)。
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS=60000 claude環境変数は、毎回シェルで指定する代わりにsettings.jsonのenvキーへ書いて持たせることもできます。envキーの変数は、どの起動方法でもファイルから直接読まれます。
{
"env": {
"CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS": "60000"
}
}値は文字列で書きます。256KBを超える全体読みを通せる手段として記載があるのはallow_largeのほうなので、巨大なファイルを全文で読む必要があるときはこちらが確実です。
なお、同じ25,000トークンの既定値を持つMAX_MCP_OUTPUT_TOKENSはMCPツールの応答にかかる別の変数で、ファイルの読み込みには効きません。違いはMAX_MCP_OUTPUT_TOKENSの解説にあります。
読んだあとに編集するとき — PARTIAL viewは「読んだ」に数えない
大きなファイルを直すときは、読み方が編集の可否にも響きます。tools-referenceのEdit tool behaviorによると、Claudeが編集前に同じ会話でそのファイルを読んでいる必要があり、PARTIAL view通知つきで途中までしか読んでいない状態はそこに数えない、と書いています。Writeで既存ファイルを上書きするときも同じです。
| モデル | 未読のファイルの編集 |
|---|---|
| Claude Opus 4.6、Claude Haiku 4.5、それより古いモデル | 未読のファイルの編集常に事前の読み込みが必要 |
| それより新しいモデル | 未読のファイルの編集読むのに許可プロンプトが要らず、Readツールが使えるなら、未読でも編集できる |
通常のReadで先頭ページだけ返ってきた場合、旧モデルでは続きをoffsetで読み足さないと編集に進めません。allow_largeの全文読みが編集前の読み込みにどう扱われるかは、同じ節に記載がありません。確実に進めたいときは、直す範囲をoffsetとlimitで読ませてから編集を頼みます。
allow_largeでも変わらない対象
画像・PDF・ノートブックは、allow_largeを付けても上限が変わりません。
- 画像: 大きな画像は、モデルの画像サイズ上限に合わせてリサイズ・再圧縮されます
- PDF: 10ページを超えるPDFは、
pagesパラメータで最大20ページずつ読みます - Jupyterノートブック: セルの合計が256KBを超えるか、トークン上限を超えると、エラーになります
テキストファイルの上限を外す指定なので、これらの形式にはallow_largeで対処できません。ノートブックは、セルの範囲を絞って読む必要があります。
全文読みが向かないファイル
全文が読めることと、全文を読む価値があることは別です。次のようなファイルは、allow_largeの対象にしないほうが無難です。
- ロックファイルや生成物(ビルド出力、minify済みのコード): 人が直接読む前提でない内容が大半で、コンテキストだけを消費します
- 巨大なログ: 知りたいのは特定のエラー周辺のことが多く、Grepで該当行を絞るほうが速く済みます
- 同じファイルを何度も読み直す作業: 全文が会話に積み上がるので、読む範囲を絞ります
逆に向くのは、設定ファイルや仕様書のように、全体の整合を見ないと判断できない文書です。
全文を読ませる運用の型 — CLAUDE.mdに一文足す
allow_largeは、利用者がコマンドで付けるものではなく、Claudeが必要と判断したときに付けるパラメータです。方針を決めておきたいときは、CLAUDE.mdに読み方のルールを書いておくと、判断の指針になります。次は書き方の一例です(公式の文面ではありません)。
## 大きなファイルの読み方
- まずGrepで該当箇所を探し、周辺を offset と limit で読む
- 全体の通読が必要な作業のときだけ、allow_large: true で全文を読む
- 全文を読む前に、コンテキストの空きが十分かを確認するこう書いておけば、通常はGrepとページ読みで進み、全体が要る作業でだけ全文読みを選ばせる狙いになります。ルールの効き方は指示の文面とモデルの判断しだいなので、意図どおりに動かないときは文面を具体化します。大量のファイルを調べる作業は、メインの会話に全文を持ち込まず、サブエージェントに読ませて結果だけ受け取る手もあります。サブエージェントは独立したコンテキストウィンドウで動き、テストやログのように出力が多い作業は、長い中身をそちらに留めて要約だけをメインへ返せます。ただし、メインの会話でClaudeが読んだファイルの中身は引き継がれないので、読ませたいファイルは指示文で伝えます。
まとめ
allow_largeは、全文が必要な作業で上限に阻まれないための、1回限りの例外です。使う前に、全文が本当に必要か、先にGrepで足りないかを分けると、コンテキストの消費を抑えられます。
- v2.1.296以上でのみ使えます
- 上限の基準は、固定値でなくコンテキストの残りです
- 画像・PDF・ノートブックの上限は変わりません
- 常に大きめの上限にしたいときは、環境変数を使います