Claude Code の CLAUDE_CODE_MAX_OUTPUT_TOKENS の動き: 切れると3回まで続きを頼む
Claude Code は、返事が出力の上限(1回の返事に出せる長さの上限。トークンという単位で数える)で切れると自動で続きを頼み、3回頼んでも切れると response exceeded the output token maximum のエラーで止まります。2026年11月3日に、Claude Code 2.1.309 で確かめた動きです。
経緯
出力の上限のエラーが出たときに Claude Code の中で何が起きているのかが分からなかったため、上限を小さくして切れるところを順に見ました。
環境
- macOS 26.6
- Claude Code 2.1.309(2026年11月3日に確認)
動き
対話画面では、切れるたびに続きを頼む
上限を20トークンにして起動し、1から30までの数字を出すように頼みました。
terminal$ CLAUDE_CODE_MAX_OUTPUT_TOKENS=20 claude
text1から30までの数字を、1行に1つずつ、数字だけ出力してください
数字は10個ずつ3回に分かれて出て、30まで出たあとにエラーが出ました。続きを頼んでいる間は、次の表示が出ます。
terminalpicking the thought back up (2 of 3)
続きを頼むのは3回まで
返事が毎回上限で切れるようにして試すと、1つの指示に対して4回リクエストを送り、4回目が切れたところでエラーになりました。最初の1回と、続きの3回です。
terminalAPI Error: Claude's response exceeded the 20 output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.
切れた分のリクエストも、時間と利用枠を使います。
claude -p では、途中までの返事を出さない
claude -p(対話の画面を開かずに、1回の指示を実行して結果を受け取る使い方)では、続きを頼む動きのあとも、途中までの返事は出力されません。エラーの文だけが出て、終了コードは 1 です。
terminal$ CLAUDE_CODE_MAX_OUTPUT_TOKENS=20 claude -p "1から30までの数字を、1行に1つずつ、数字だけ出力してください"
API Error: Claude's response exceeded the 20 output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.
$ echo $?
1
continue と送っても、上限が同じなら同じところで切れる
対話画面で上限を変えずに continue と送ると、返事はまた上限で切れて同じエラーになりました。このときの返事は、次のところで切れています。
textI've already printed 1 through 30, so there's nothing left to
claude -p の --continue で続きを頼むと、切れたところからではなく、1から30までがもう一度すべて出力されました。
terminal$ CLAUDE_CODE_MAX_OUTPUT_TOKENS=500 claude -p "continue" --continue
公式との違い
エラーの文と公式のエラー一覧では、CLAUDE_CODE_MAX_OUTPUT_TOKENS で上限を変える方法が案内されています。続きを自動で3回頼むこと、-p では途中の返事が出ないこと、continue では上限が同じなら続かないことは書かれていません。
ストリーミング(少しずつ受け取る方式)が失敗して送り直したリクエストは、表示に for a request sent without streaming が付きます。このときの上限は64,000トークンで、環境変数では上げられません(公式のエラー一覧による)。
対処
長い出力が必要なとき
長い出力が必要なときは、起動するときに上限を指定します。指定できる最大の値はモデルごとに違い、それより大きい値は最大の値まで下げられます。
terminal$ CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 claude
上限を上げたくないとき
ファイルや節ごとに分けて頼むと、続きを頼む往復が起きず、時間も利用枠も少なく済みます。
注意点
上限を上げると、要約が早く始まる
上限を上げると、会話を自動で要約し始めるまでに使える量が減ります(公式の環境変数の説明による)。長い出力が必要なときだけ指定します。
スクリプトでは終了コードを見る
claude -p の出力をファイルに書き出すときは、終了コードが 0 でなければ、途中の結果を使わないようにします。
参考文献
著書
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleCursor の Claude Code 拡張機能 2.1.312、2.1.313 の不正な版を確かめる手順: 版と6つの印を見る
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleClaude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る
articleClaude Code の利用制限(usage limit)の見方: 5時間と1週間の残りは /usage で分かる
