Claude Media
Claude Code Readのallow_largeで大きなファイルを全文読む

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超の全体読みは拒否されます。

v2.1.296以降

allow_large: true

上限の基準が、コンテキストウィンドウの残りに変わります。全文や長い範囲を1回で読めます。

手元のバージョンは次のコマンドで確かめます。v2.1.296で実行した出力は次のとおりです。

claude --version
2.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は便利ですが、全文を読むぶんだけコンテキストを消費します。次の順で判断すると無駄が減ります。

切り分け

大きなファイルを読ませる前の切り分け

  1. Q探したいのは特定の語や関数だけか?
    答えが全体が必要

    Grepで該当行を探させ、その周辺だけoffset・limitで読ませます。全文は不要です。

    答えがはい
  2. Q全体を一度に見ないと判断できない作業か?(通読、全件の整合性確認など)
    答えがいいえ

    offset・limitで区切って読ませます。区切りながら要点をメモさせれば、全文を抱えずに済みます。

    答えがはい
  3. 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・ノートブックの上限は変わりません
  • 常に大きめの上限にしたいときは、環境変数を使います
この記事を共有:XはてブLinkedIn