anomalyco / anomalyco/opencode

[FEATURE]: Better thinking indicator

Open Beginner friendly
#49,757 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
Avg merge
7h 2m
Merged PRs (30d)
384

Description

Feature hasn't been suggested before.
  • I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request

Summary

The thinking indicator spinner in the OpenCode TUI displays braille pattern characters that do not render correctly on many terminals and fonts, appearing as empty boxes or corrupted symbols instead of a proper animated spinner.

Environment

  • opencode version: 2.0.6
  • OS: Linux 7.2.6-arch2-1 (x86_64)
  • Terminal: xterm-256color (COLORTERM=truecolor)
  • Shell: /usr/bin/zsh
  • Install/channel: latest
  • Active plugins: None

Reproduction

  1. Run opencode in the terminal
  2. Ask the AI a question to trigger thinking/processing
  3. Observe the thinking indicator spinner

Expected Behavior

The thinking indicator should display an animated spinner using characters that render correctly across all terminals and fonts.

Actual Behavior

The spinner displays braille pattern characters (⠋, ⠙, ⠹, ⠸, ⠼, ⠴, ⠦, ⠧, ⠇, ⠏) that do not render correctly. Many terminals and fonts lack support for the Braille Patterns Unicode block (U+2800-U+28FF), causing these characters to appear as empty boxes, question marks, or corrupted symbols instead of a proper spinner animation.

Additional Context

The issue is in packages/tui/src/component/spinner.tsx which defines:

export const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]

Root Cause: Braille characters require specific font support which is not universally available in terminal environments. While they were chosen for fixed-width properties to prevent "jitter" (as mentioned in previous changelogs), they sacrifice compatibility.

Recommended Fix: Replace braille characters with universally-supported Unicode geometric shapes that are:

  • Supported by virtually all terminal fonts
  • Still fixed-width (no animation jitter)
  • Provide a smooth visual animation

Example replacement:

export const SPINNER_FRAMES = ["◐", "◓", "◑", "◒"]

These circular arc characters (Geometric Shapes, U+25D0-U+25D3) create a smooth rotating animation and render correctly on all platforms.

This issue affects all users of OpenCode 2.0.x who encounter the thinking indicator.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in packages/tui/src/component/spinner.tsx and inspect the SPINNER_FRAMES definition and its use by the thinking indicator. Replace the unsupported braille frames with fixed-width, broadly supported spinner characters, then run OpenCode in a terminal and trigger AI processing. Done means the indicator animates without corrupted symbols or visible width jitter.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.