Skip to content

[BUG] python -m rich.status creates garbage text above spinners #3757

Closed as not planned
@dwt

Description

@dwt

There are many issues in the bug tracker about this happening on windows (e.g. #1320, #2624, #2499, #1320, #929) but I could find none for the Mac, which is why I'm reporting this here.

Describe the bug

Executing python -m rich.status shows garbage lines above the demonstration in Apple Terminal as well as in Ghosty. This happens without resizing the terminal.

Example:
❯ source .venv/bin/activate.fish
❯ python -m rich.spinner
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮
│ ▰▱▱▱▱▱▱ 'aesthetic'      ⢄ 'dots10'          ☱ 'hamburger'                   ╫ 'squish'    │
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮
│ ▰▰▱▱▱▱▱ 'aesthetic'      ⢂ 'dots10'          ☲ 'hamburger'                   ╪ 'squish'    │
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▱▱▱▱ 'aesthetic'      ⢁ 'dots10'          ☲ 'hamburger'                   ╪ 'squish'    │
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▱▱▱▱ 'aesthetic'      ⢁ 'dots10'          ☴ 'hamburger'                   ╫ 'squish'    │
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▰▰▰▱ 'aesthetic'      ⡐ 'dots10'          ☲ 'hamburger'                   ╫ 'squish'    │
╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮
│ ▰▱▱▱▱▱▱ 'aesthetic'      ⢂ 'dots10'          ☱ 'hamburger'                   ╫ 'squish'    │╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▰▱▱▱ 'aesthetic'      ⡈ 'dots10'          ☱ 'hamburger'                   ╪ 'squish'    │╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▰▰▱▱ 'aesthetic'      ⡐ 'dots10'          ☱ 'hamburger'                   ╪ 'squish'    │╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▱▱▱▱▱ 'aesthetic'      ⡁ 'dots10'          ☴ 'hamburger'                   ╫ 'squish'    │╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▱▱▱▱ 'aesthetic'      ⡈ 'dots10'          ☴ 'hamburger'                   ╫ 'squish'    ││ ◝ 'arc'                  ⠐ 'dots11'          ❤️  'hearts'                     ✺ 'star'      ╭───────────────────────────────────────── Spinners ─────────────────────────────────────────╮│ ▰▰▰▱▱▱▱ 'aesthetic'      ⡈ 'dots10'          ☱ 'hamburger'                   ╪ 'squish'    │
│ ◞ 'arc'                  ⠈ 'dots11'          💛  'hearts'                    ✺ 'star'      ││ ↙ 'arrow'                ⠉⠙ 'dots12'         = 'layer'                       + 'star2'     │
│ ➡️  'arrow2'              ⣻ 'dots2'           / 'line'                        ⊶ 'toggle'    │
│ ▹▹▹▹▹ 'arrow3'           ⠳ 'dots3'           — 'line2'                       ㊂ 'toggle10' │
│ O 'balloon'              ⠙ 'dots4'           ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 'material' ⧇ 'toggle11'  │
│ o 'balloon2'             ⠙ 'dots5'           🙈  'monkey'                    ☗ 'toggle12'  │
│ ββββρββ 'betaWave'       ⠂ 'dots6'           🌓  'moon'                      = 'toggle13'  │
│ ⠁ 'bounce'               ⠐ 'dots7'           ▓ 'noise'                       ▫ 'toggle2'   │
│ ( ●    ) 'bouncingBall'  ⠦ 'dots8'           ┐ 'pipe'                        □ 'toggle3'   │
│ [=== ] 'bouncingBar'     ⠊ 'dots8Bit'        ∙●∙ 'point'                     ▫ 'toggle4'   │
│ ▖ 'boxBounce'            ⢼ 'dots9'           ▐      ⠂ ▌ 'pong'               ▯ 'toggle5'   │
│ ▄ 'boxBounce2'           b 'dqpb'            🚶  'runner'                    ၀ 'toggle6'   │
│ 🎄 'christmas'           🌏  'earth'         ▐____________|\▌ 'shark'        ⦾ 'toggle7'   │
│ ◡ 'circle'               _ 'flip'                'simpleDots'                ◌ 'toggle8'   │
│ ◑ 'circleHalves'           ⸌ 'grenade'       ..  'simpleDotsScrolling'       ◎ 'toggle9'   │
│ ◴ 'circleQuarters'       ▏ 'growHorizontal'  😝  'smiley'                    ◤ 'triangle'  │
│ 🕒  'clock'              ▄ 'growVertical'    ◰ 'squareCorners'               🌧  'weather'  ││ ⠇ 'dots'                                                                                   │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

Platform

Click to expand

What platform (Win/Linux/Mac) are you running on? What terminal software are you using?

❯ uname -v
Darwin Kernel Version 24.5.0: Tue Apr 22 19:52:00 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6031
❯ echo $TERM - $TERM_PROGRAM
xterm-256color - Apple_Terminal

This also happens in Ghosty:

echo $TERM - $TERM_PROGRAM
xterm-ghostty - ghostty
❯ python -m rich.diagnose
  uv pip freeze | grep rich
╭───────────────────────── <class 'rich.console.Console'> ─────────────────────────╮
│ A high level console interface.                                                  │
│                                                                                  │
│ ╭──────────────────────────────────────────────────────────────────────────────╮ │
│ │ <console width=94 ColorSystem.TRUECOLOR>                                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                  │
│     color_system = 'truecolor'                                                   │
│         encoding = 'utf-8'                                                       │
│             file = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> │
│           height = 52                                                            │
│    is_alt_screen = False                                                         │
│ is_dumb_terminal = False                                                         │
│   is_interactive = True                                                          │
│       is_jupyter = False                                                         │
│      is_terminal = True                                                          │
│   legacy_windows = False                                                         │
│         no_color = False                                                         │
│          options = ConsoleOptions(                                               │
│                        size=ConsoleDimensions(width=94, height=52),              │
│                        legacy_windows=False,                                     │
│                        min_width=1,                                              │
│                        max_width=94,                                             │
│                        is_terminal=True,                                         │
│                        encoding='utf-8',                                         │
│                        max_height=52,                                            │
│                        justify=None,                                             │
│                        overflow=None,                                            │
│                        no_wrap=False,                                            │
│                        highlight=None,                                           │
│                        markup=None,                                              │
│                        height=None                                               │
│                    )                                                             │
│            quiet = False                                                         │
│           record = False                                                         │
│         safe_box = True                                                          │
│             size = ConsoleDimensions(width=94, height=52)                        │
│        soft_wrap = False                                                         │
│           stderr = False                                                         │
│            style = None                                                          │
│         tab_size = 8                                                             │
│            width = 94                                                            │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─── <class 'rich._windows.WindowsConsoleFeatures'> ────╮
│ Windows features available.                           │
│                                                       │
│ ╭───────────────────────────────────────────────────╮ │
│ │ WindowsConsoleFeatures(vt=False, truecolor=False) │ │
│ ╰───────────────────────────────────────────────────╯ │
│                                                       │
│ truecolor = False                                     │
│        vt = False                                     │
╰───────────────────────────────────────────────────────╯
╭────── Environment Variables ───────╮
│ {                                  │
│     'CLICOLOR': None,              │
│     'COLORTERM': 'truecolor',      │
│     'COLUMNS': None,               │
│     'JPY_PARENT_PID': None,        │
│     'JUPYTER_COLUMNS': None,       │
│     'JUPYTER_LINES': None,         │
│     'LINES': None,                 │
│     'NO_COLOR': None,              │
│     'TERM_PROGRAM': 'ghostty',     │
│     'TERM': 'xterm-ghostty',       │
│     'TTY_COMPATIBLE': None,        │
│     'VSCODE_VERBOSE_LOGGING': None │
│ }                                  │
╰────────────────────────────────────╯
platform="Darwin"
rich==14.0.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions