Skip to content

Streaming chat outputs raw thinking tokens — poor UX #148

@NianJiuZst

Description

@NianJiuZst

Summary

mmx text chat in streaming mode currently dumps raw thinking tokens to the terminal as they arrive. This is:

  1. Noisy — thinking text is often verbose, stream-of-consciousness content that the user doesn't need to see
  2. Visually disruptive — the thinking output interspersed with the response text creates a cluttered terminal
  3. Bad for piping — thinking content mixes into stdout output

Proposed solution

Replace raw thinking output with a dynamic animated indicator:

  • Cycling braille spinner (⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏) at 12.5 fps
  • "Thinking (Xs)" label with real-time elapsed counter
  • Hue-rotating truecolor ANSI colors on both spinner and label for a smooth, continuous animation
  • Renders via \r (carriage return) on stderr, keeping stdout clean
  • Automatically clears and transitions to "Response:" when thinking ends

See linked PR.

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