[PR #6084] feat: add ability to disable spinner animation #11733

Closed
opened 2026-02-16 18:16:40 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/6084

State: closed
Merged: Yes


Summary

Adds a new config option tui.animations (default: true) that allows users to disable spinner animations in the TUI. When disabled, a static [⋯] indicator is shown instead of the animated spinner.

Motivation

Several users have reported issues with the spinner animations:

  1. Visual distraction - The animated spinner is visually intrusive for some users (#6008)
  2. Performance/CPU usage - Animations contribute to high CPU usage, especially on slower machines or when running on battery (#3990, #2083, #4804, #4818)
  3. Minimal environments - Users running OpenCode in TTY or minimal terminal environments prefer static indicators

Usage

{
  "tui": {
    "animations": false
  }
}

Design Decisions

Static indicator: [⋯]

The choice of [⋯] as the static indicator is subjective. The reasoning:

  • Brackets provide clear visual boundaries
  • Midline ellipsis () is a standard "loading/waiting" convention
  • Avoided emojis and complex Unicode to ensure consistent rendering across terminals and fonts, including TTY environments

Open to suggestions for a better static indicator if there's a compelling alternative.

Keeping it simple

This PR only addresses enabling/disabling animations. Speed adjustment (mentioned in some issues) is intentionally left out to keep the change focused and minimal.

Related Issues

Changes

  • packages/opencode/src/config/config.ts - Add animations boolean to TUI schema
  • packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx - Conditional spinner/static indicator
  • packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx - Conditional spinner/static indicator
  • packages/web/src/content/docs/config.mdx - Documentation
  • packages/sdk/* - Auto-generated types
**Original Pull Request:** https://github.com/anomalyco/opencode/pull/6084 **State:** closed **Merged:** Yes --- ## Summary Adds a new config option `tui.animations` (default: `true`) that allows users to disable spinner animations in the TUI. When disabled, a static `[⋯]` indicator is shown instead of the animated spinner. ## Motivation Several users have reported issues with the spinner animations: 1. **Visual distraction** - The animated spinner is visually intrusive for some users (#6008) 2. **Performance/CPU usage** - Animations contribute to high CPU usage, especially on slower machines or when running on battery (#3990, #2083, #4804, #4818) 3. **Minimal environments** - Users running OpenCode in TTY or minimal terminal environments prefer static indicators ## Usage ```jsonc { "tui": { "animations": false } } ``` ## Design Decisions ### Static indicator: `[⋯]` The choice of `[⋯]` as the static indicator is subjective. The reasoning: - **Brackets** provide clear visual boundaries - **Midline ellipsis (`⋯`)** is a standard "loading/waiting" convention - **Avoided emojis and complex Unicode** to ensure consistent rendering across terminals and fonts, including TTY environments Open to suggestions for a better static indicator if there's a compelling alternative. ### Keeping it simple This PR only addresses enabling/disabling animations. Speed adjustment (mentioned in some issues) is intentionally left out to keep the change focused and minimal. ## Related Issues - Closes #6008 - Closes #3990 - Related to #2083, #4804, #4818, #3761 ## Changes - `packages/opencode/src/config/config.ts` - Add `animations` boolean to TUI schema - `packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx` - Conditional spinner/static indicator - `packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx` - Conditional spinner/static indicator - `packages/web/src/content/docs/config.mdx` - Documentation - `packages/sdk/*` - Auto-generated types
yindo added the pull-request label 2026-02-16 18:16:40 -05:00
yindo closed this issue 2026-02-16 18:16:40 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#11733