Enhancement: Add --quiet flag to suppress tool call output
Open 💬 28 comments Opened Oct 11, 2025 by gmelli
Enhancement Request: Add --quiet flag to suppress tool call output
Summary
Add a --quiet (or --minimal-output) CLI flag to suppress tool call output in interactive mode, showing only the agent's final responses.
Use Case
Advisory agents that use wake-up protocols to load session state currently produce verbose output that obscures the clean summary users expect:
Current Behavior (verbose):
> wake up
⏺ my-executive-coach-aget v2.5.0 (Advisory)
Co-Active Coaching • Strategic Thinking • Executive Leadership
⏺ Search(pattern: ".aget/sessions/SESSION_*.md")
⎿ Found 1 file (ctrl+o to expand)
⏺ Search(pattern: ".aget/commitments/active.yaml")
⎿ Found 1 file (ctrl+o to expand)
⏺ Search(pattern: ".aget/client_progress/*.yaml")
⎿ Found 1 file (ctrl+o to expand)
⏺ Read(.aget/sessions/SESSION_2025-10-08_10-00.md)
⎿ Read 38 lines
⏺ Read(.aget/commitments/active.yaml)
⎿ Read 21 lines
⏺ Read(.aget/client_progress/demo_user.yaml)
⎿ Read 23 lines
⏺ 📍 Last session: 2025-10-08 (2 days ago)
📋 Active commitments: 2
• Delegate architecture decision (due 10/15)
📊 Progress: 1 session
Ready for coaching session.
Desired Behavior (with --quiet):
> wake up
⏺ my-executive-coach-aget v2.5.0 (Advisory)
Co-Active Coaching • Strategic Thinking • Executive Leadership
📍 Last session: 2025-10-08 (2 days ago)
📋 Active commitments: 2
• Delegate architecture decision (due 10/15)
📊 Progress: 1 session
Ready for coaching session.
Problem
- Tool call output adds 6+ lines of noise before the actual response
- Users must scroll past technical details to see the summary
- Particularly problematic for:
- Demo/presentation scenarios
- Advisory agents with initialization routines
- Production use by non-technical users
- Multi-agent workflows where tool verbosity compounds
Proposed Solution
Add a CLI flag:
claude --quiet # Suppress tool call output
claude --minimal-output # Alternative flag name
Behavior:
- Suppress all tool call lines (Search, Read, Glob, etc.)
- Show only agent text responses (text blocks)
- Keep error messages visible (tool failures should still show)
- Apply only to interactive mode (--print mode unaffected)
Configuration:
Could also support:
// ~/.config/claude/settings.json
{
"outputMode": "quiet" // or "verbose" (default)
}
Alternatives Considered
- Agent-level suppression - Not possible; tool output is CLI behavior
- Custom output formatter - No hook exists for this
- Accept verbosity - Reduces UX quality for production agents
- Screenshot workarounds - Manual, doesn't help actual users
Impact
Benefits:
- Cleaner UX for advisory agents
- Better demo/presentation experience
- Reduced cognitive load for non-technical users
- Opt-in (doesn't affect existing workflows)
Risks:
- Users might miss important tool failures (mitigated by showing errors)
- Less transparency about what agent is doing (user's choice via flag)
Related Issues
Similar to #8036 (feedback prompt complaints) - users want control over UI noise.
Environment
- Claude Code v2.0.14
- macOS/Linux (likely affects all platforms)
- Use case: AGET framework advisory agents with internal state management
---
Would this enhancement be considered? Happy to provide additional context or participate in design discussion.
28 Comments
Yes we absolutely need this. Since last week, claude code has been outputting ALL tool call output in the main stream which makes the terminal almost unusable
I would second this. I just created a startup agent to check for open PRs and GH Issues, but I really just want to see the output summary, not all of the intermediate steps. For me, this is just about suppressing a sub-agent's intermediate steps and contraining the output to the end result.
+1 on this. Running autonomous agent workflows in claude code, the tool output verbosity makes it hard to see actual results.
Our workaround: we set
DISABLE_NON_ESSENTIAL_MODEL_CALLS=1andCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=truebut these only help marginally - they don't suppress the tool call lines.The proposed
--quietflag oroutputMode: compactsetting would be exactly what's needed. Bonus: would also reduce context/token consumption in long sessions.This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.
+1 for this feature.
Beyond a startup flag, I'd also love a mid-session toggle — the ability to switch between verbose and quiet mode without restarting Claude.
Use case: In a single session, I often go from simple tasks (where I trust Claude and don't need to see tool calls) to complex debugging (where I want full visibility). Currently:
/config→ "Verbose output" controls LLM thinking, not tool call display--quietflag, which loses contextProposal:
--quietflag at startup (as described in this issue)/quietcommand or keybind to toggle mid-sessionThis would make Claude Code much more usable for both autonomous agent workflows and interactive debugging sessions.
+1 on this — with an MCP spec angle.
I'm running a custom MCP server where tool calls produce verbose results meant for the model, not the user. Two sources of noise:
annotations.audience: ["assistant"]on content blocks per the MCP spec to signal "this is for the model, not the user." Claude Code ignores it and renders everything. I've also used_metaon results to move diagnostic data out of content, which works — but for read operations where the model needs the data in content, there's no server-side fix.The key UX issue: the agent needs to see raw tool results to reason about them and synthesize a response — but the user only needs the agent's synthesized summary, not the raw data. Right now both get the same view.
Honoring
audienceannotations would solve #2 without needing--quiet— MCP servers could self-declare which content blocks are model-context vs user-facing. The spec already supports it.For #1, a
--quietflag or a config option likeshowToolOutput: minimalwould help.+1
It would also be very helpful if there's a visual distinction between what it's saying to you versus what are its thoughts, better, like a different colored text. So I can more easily find what I need to specifically read and respond to.
+1 — This is a significant pain point for MCP server developers.
I maintain Whazaa, a WhatsApp MCP server. One of its core use cases is mirroring every Claude Code response to WhatsApp. This means
whatsapp_sendis called after every response, and the full message text is displayed inline in the terminal as part of the tool call header — often 10-20 lines of duplicated content the user just read.We've already minimized the tool response to a single
"Sent.", but the input parameters are still shown in full. There's no MCP-level mechanism to mark a parameter as "not for display" or to truncate long values.A
--quietflag, a per-tool verbosity setting insettings.json, or even just truncating parameters beyond ~100 chars with an ellipsis would make a huge difference for any MCP tool that handles long text (messaging, document creation, note-taking, etc.).Adding my support for this feature
+1
There already is
ctrl+oto toggle between normal and verbose view for tools, but I would love another toggle to hide it entirely.For me it's useful to see tool calls while Claude is working but when reviewing output when it's done and looking back at previous prompts & answers the tool bullet points are just in the way IMO.
Coming from #31578 (flagged as duplicate). I'd argue the solution here should be interactive collapse/expand rather than
a binary quiet flag.
A --quiet flag forces a tradeoff: either you see everything or you see nothing. But the real problem is that tool output
is noise until something goes wrong — then you want it immediately, without re-running.
Proposal: collapsible disclosure sections
Tool results render collapsed by default, showing a one-line summary. Press a key or click to expand inline:
▶ Read src/store/selectors.js (147 lines)
▶ Edit src/store/selectors.js (+3 -1)
The selector was missing memoization. Fixed by wrapping
the derivation in createSelector.
▶ Ran: yarn tap test/selectors.tap.js (passed)
Expanding a line reveals the full content (file contents, diff, command output) in place.
Why this beats quiet mode:
This is a TUI feature, not a model behavior change — the content is already structured enough (tool calls have types and
summaries) to render collapsed sections without any model-side changes.
+1 for the mid-session toggle keybind (as fprieur suggested). My main use case is multi-step workflows with background agents — tool output is useful while watching it live, but when reviewing the conversation afterward, the signal-to-noise ratio drops and I have to scroll past a lot of tool calls to find the actual responses. A keybind toggle (like ctrl+o for thinking) that switches between full and text-only view would be ideal.
Would love this feature!
+1 I've got multiple skills and mcp server tool calls, all interacting and generating a huge amount of noise. Being able to hide them behind ctrl-o would be fantastic.
+1 on this. My use case: MCP server tool results generating pages of unreadable output.
I use the Atlassian MCP server for Jira integration. A single
jira_get_issuecall returns thousands of tokens of raw JSON (issue metadata, descriptions, comments, changelogs) — often 10-12k tokens rendered as a wall of unformatted text in the terminal. When a workflow involves multiple Jira lookups, the terminal becomes completely unusable.The core problem: MCP tool results are rendered in the UI identically to how they're stored in context. There's no display layer to collapse or summarize verbose responses while preserving the full data for the model.
My current workaround is a
PreToolUsehook that blocks MCP calls from the main agent (usingagent_idto detect context) and forces delegation to subagents, where the verbose output stays hidden. It works, but it's a hack — subagent overhead for every Jira call just to avoid UI noise.A per-tool display mode (e.g.
"toolDisplayMode": {"mcp__atlassian__*": "collapsed"}) would solve this cleanly. Even a global--quietflag that collapses tool results to one-line summaries (tool name + result size) while keeping full data in context would be a big improvement.My workaround:
https://github.com/adereis/claude-code-extensions/blob/main/hooks/jira-mcp-subagent-guard.sh
+1. When Claude Code edits files, the full red/green diff output can fill multiple screens — especially on large file rewrites. This makes the terminal conversation very hard to follow.
Would love a persistent setting in settings.json (not just a per-session toggle) to either:
The current Ctrl+O verbose toggle resets every session and is easy to forget.
+1 I'm developing a Claude Code-powered legal research tool that will be used primarily by attorneys and people who generally do not know about code. While it's handy for me to have the tool calls while debugging, I can see it being an obstacle to use for those who don't know what a bash command is and who really don't care for their purposes. A quiet flag would streamline the agent's output and make the tool more approachable for the average user.
Not having this is actually brutal. The so called "compacted" output of MCP logs is like 12 lines of text. When you have 10 MCP queries in a row, it's suddenly impossible to find the actual output from the agent
+1 — The diff output volume in particular is overwhelming. When Claude edits a large file, the full red/green diff floods the terminal and pushes the actual response out of view. A collapsed/summary mode (e.g. 'Edited file.md (+15/-8 lines)') would be a huge UX win for power users running many sessions.
I second the many comments on this issue - right now this yields very verbose sessions when there are lots of tools, and is actually not user friendly. By the time it completes sometimes I forget what the original question was and it's beyond my terminal's memory limits.
This should be configurable or repurpose the verbose flag to allow setting a verbosity level.
+1 | Would make my life a million times easier if I could hide code diffs while speaking to Claude Code.
+1 Absolutely necessary since usage counting made
claude -pa cashcow.+1 please, this is a must to have feature.
the part that makes this hard isn't adding the flag, it's that interactive mode renders blocks as they stream and there's no post-hoc filter hook, like you noted. so suppression has to live in the render loop itself. a single --quiet is global on/off, but what advisory-agent setups actually want is per-block-type visibility: tool_use hidden, text and errors shown. that split already exists in the message schema, it just gets flattened into one terminal pane on the way out. once a separate view owns the render, hiding tool calls is a toggle, not a flag, and failures can stay visible independently.
Strong +1 on this. Adding a concrete second use case in case it helps prioritization.
The same noise problem exists in the VS Code extension, not just the TUI. The difference is that VS Code users don't have the /focus command as a workaround (it's terminal-only), so there's currently no way to suppress tool-call rendering there at all.
I tried solving it with a custom output style, but ran into a related limitation: custom output styles aren't honored in the VS Code extension either. See #39331, where the custom style is verified to never reach the system prompt in the extension, while it works fine in the CLI. And output styles only steer what the model writes anyway, so they can't hide the tool-call UI blocks. That's exactly what a --quiet / minimal-output setting would address.
So a setting like this would ideally cover both surfaces: a TUI flag plus an equivalent extension/settings toggle. The underlying need is the same in both cases, which is to see the result and not the plumbing.
+1 I am building an interactive bot as a service (backed by
claude -pbut users do not interact with the CLI directly) and I really want to minimize the chat traffic.I'm curious if anyone on the Anthropic team has taken a look at this. It
seems like an easy feature to add and would really improve my user
experience.
On Wed, Jun 24, 2026 at 10:10 PM Leo Fang @.***> wrote:
--
Jacob
qoɔɐɾ