Claude Code Output Limits: What Actually Changed

·

<!– wp:heading –>
<h2>September’s changelog quietly fixed one of Claude Code’s most annoying limits</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>If you’ve ever watched Claude Code truncate a huge test-suite failure or a long build log mid-run, September 2026’s update to Claude Code’s output limits is the fix. Two new settings — <code>bashOutputMaxChars</code> and <code>taskOutputMaxChars</code> — raise how much command and background-task output Claude receives inline before it gets spilled to a file, up to <strong>128,000 characters</strong>. Higher Claude Code output limits sound like a small knob, but in practice they change how often Claude actually sees the failure it’s debugging instead of a truncated summary of it.</p>
<!– /wp:paragraph –>

<!– wp:heading –>
<h2>Why the old limit was a real problem</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>Before this change, a verbose <code>pytest</code> run, a noisy webpack build, or a long <code>kubectl logs</code> tail would routinely blow past the inline output cap. Claude Code would save the full output to a temp file and hand Claude a truncated preview instead – which meant a debugging loop of “read file, grep for the actual error, act on it” that added a full extra tool round-trip to almost every failure investigation.</p>
<!– /wp:paragraph –>

<!– wp:list –>
<ul>
<li>Long-running builds and test suites no longer get silently cut off mid-stack-trace</li>
<li>Fewer wasted round-trips spent re-reading a saved output file just to find the one relevant line</li>
<li>Background tasks (<code>run_in_background</code>) still cap more conservatively than foreground commands, so runaway log-tailing processes don’t flood context</li>
</ul>
<!– /wp:list –>

<!– wp:heading –>
<h2>Setting it yourself</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>Both settings live in <code>settings.json</code> alongside your other Claude Code configuration:</p>
<!– /wp:paragraph –>

<!– wp:paragraph –>
<p><code>{ “bashOutputMaxChars”: 128000, “taskOutputMaxChars”: 128000 }</code></p>
<!– /wp:paragraph –>

<!– wp:paragraph –>
<p>The default sits well below the new ceiling, so it’s worth raising deliberately if your project regularly produces long build or test output rather than assuming Claude Code will just handle it. Push it too high on a noisy CI-style command, though, and you’ll burn context fast – treat 128K as a per-command ceiling, not a setting you want firing on every single tool call.</p>
<!– /wp:paragraph –>

<!– wp:heading –>
<h2>The other quiet addition: per-file subagent prompts</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>The same update added <code>–append-subagent-system-prompt-file</code>, which reads a subagent’s appended system prompt from a file instead of requiring it inline. If you’ve built a fleet of specialised subagents – a reviewer, a test-writer, a docs-checker – this is the difference between maintaining prompt text scattered across launch commands and keeping each subagent’s instructions in a version-controlled file your whole team can review and diff.</p>
<!– /wp:paragraph –>

<!– wp:list {“ordered”:true} –>
<ol>
<li>Write the subagent’s extra instructions to a plain text or markdown file in your repo</li>
<li>Pass its path via <code>–append-subagent-system-prompt-file</code> when launching that subagent</li>
<li>Commit the file alongside the rest of your Claude Code configuration so changes go through normal code review</li>
</ol>
<!– /wp:list –>

<!– wp:heading –>
<h2>A smaller but welcome security fix</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>The same release tightened credential redaction in MCP connection logs – a fix worth knowing about if you’re running MCP servers that authenticate with API keys or tokens, since verbose connection logging has historically been an easy place for a secret to leak into a log file nobody thought to check.</p>
<!– /wp:paragraph –>

<!– wp:heading –>
<h2>Should you change your settings today?</h2>
<!– /wp:heading –>

<!– wp:paragraph –>
<p>If your day-to-day work involves large test suites, verbose build tooling, or long-running background tasks, raising <code>bashOutputMaxChars</code> and <code>taskOutputMaxChars</code> is a low-risk, immediate win – it costs nothing until a command actually produces that much output. If you’re building or maintaining multiple subagents, migrating their prompts to files via the new flag is worth doing the next time you touch that configuration, mainly for the version-control and review benefits rather than any functional change. Neither is a headline feature, but together they’re the kind of unglamorous fix that makes Claude Code noticeably less annoying to debug against day to day.</p>
<!– /wp:paragraph –>


Leave a Reply