Skip to content

feat(tui): add display-level toggles to collapse/hide thinking and tool-call details #2472

Description

@Chekhovin

Summary

Add display-layer options to control how much detail the TUI shows for
thinking blocks and tool calls — e.g. show only a "Thinking…" placeholder or
a one-line "Running tool: Read" summary instead of the full content.

Motivation

Thinking blocks and tool-call details can dominate the scrollback, especially
with high reasoning effort or MCP-heavy sessions. Users who trust the agent's
process and only care about final replies currently have no way to reduce
this visual noise.

The existing controls do not cover this:

  • [thinking] enabled = false and the "Toggle thinking mode" switch change
    model behavior (reasoning on/off), not display.
  • Thinking blocks can be collapsed manually, but only per-block and not
    persistently.
  • There is no option at all for tool-call rendering.

The request is purely presentational: the model still thinks and calls tools
exactly as before; the TUI just renders less.

Proposed solution

New optional fields in tui.toml:

[display]
# "full" (default, current behavior) | "collapsed" (folded by default,
# expandable on demand) | "placeholder" (single "Thinking…" line, not expandable)
thinking = "collapsed"

# "full" (default) | "summary" (one line per call: tool name + key arg +
# status) | "hidden"
tool_calls = "summary"

Behavior notes:

  • collapsed should be expandable via the existing fold interaction, so
    details remain one keystroke away.
  • placeholder / hidden only affects rendering; content is still recorded
    in the session transcript for later inspection.
  • Errors and permission prompts must always render in full regardless of
    these settings (hiding a failure or an approval request would be a
    footgun).

Alternatives considered

  • [thinking] effort = "low" — shortens thinking but still displays it, and
    changes model behavior.
  • Disabling thinking entirely — loses the reasoning quality.

Environment

kimi-code 0.31.0, Linux (WSL2)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions