Persistent setting to collapse tool-call output by default (reopen of #40428)

Status Open
Maintainer reply None cached
Activity 1 comment · opened Sep 3, 2026

Summary

Reopen the ask for a persistent setting that makes tool-call output collapsed by default, with the existing Ctrl+O toggle used to expand on demand. The mechanism ALREADY EXISTS in the UI — the "… +15 lines (ctrl+o to expand)" preview proves it — but it's never the initial state, and the toggle doesn't survive a session.

Previously requested and closed:

  • #40428 — closed not planned
  • #39683 — closed as duplicate of #40428

Reopening because the closes offered no substitute, and the friction has grown with agentic work: a single conversation frequently produces dozens of Update() diffs and multi-line Bash() blocks that drown the actual reasoning and decisions the user is trying to follow.

Real cost, measured today

Screenshot from a real session (Portuguese OS, macOS terminal): a single Update(check-painel.mjs) plus one Bash(...) chain took ~1000 vertical pixels and pushed the model's next reasoning off-screen. The user's own words when asked about the setup, verbatim: "isso só suja o visual entendeu?" Then they asked me to open this issue.

Impact:

  • Long-running sessions with many edits/reads become unreadable — the scrollback is dominated by tool metadata that the user reads in the editor or shell anyway.
  • The reasoning between tool calls loses its narrative — decisions are separated by walls of diff that the user doesn't want to see inline.
  • outputStyle: "Concise" and verbose: false do NOT change this — they only affect Claude's prose, not the harness-rendered tool blocks.

Proposed

Minimal, non-invasive:

{
  "toolOutput": {
    "default": "collapsed"
  }
}

Or, matching the naming from #40428:

{ "compactToolOutput": true }

Optional refinements (do not gate the main ask on these):

  • Per-tool override: "toolOutput": {"default": "collapsed", "expand": ["Read"]} — some users like seeing Read inline.
  • Threshold: "toolOutput": {"collapseAbove": 10} — only collapse when the preview would exceed N lines.

Behavior stays exactly what Ctrl+O already does today; the setting only changes the INITIAL state of each block.

Why this is different from verbose

verbose in settings.json controls Claude's own message detail (thinking depth, explanation length). Tool-call rendering is a separate concern — it's the HARNESS drawing the diff/output, not the model. That's why verbose: false doesn't help here.

Why "not planned" deserves revisiting

The Ctrl+O preview state proves the render path exists. The ask is not "add a new UI mode" — it's "let me pick which of the two existing modes is the default." The engineering cost is a boolean read at render time; the friction it removes for heavy sessions is real and repeatable.

If there's a design reason the default MUST be expanded (safety, transparency, discoverability), a brief note in the close would help the community understand — the prior closes have no reasoning attached.

Reproduce

  1. Any recent Claude Code (2.x, tested here on macOS Terminal + iTerm).
  2. Ask Claude to make several edits and run a handful of bash commands in one turn.
  3. Observe: every Update() shows the full diff inline, every Bash() shows the full command and output inline. Ctrl+O collapses them but only for the current session; a fresh session starts expanded again.

Related

  • #40428 (closed not planned)
  • #39683 (closed duplicate)
  • #57060 (a Windows-specific toggle bug — unrelated to the default-state ask)

Happy to help test a preview if the team decides to reconsider.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗