gemini-cli - ✅(Solved) Fix remove noisy theme registration logs from terminal [1 pull requests, 1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
google-gemini/gemini-cli#25857Fetched 2026-04-24 06:13:58
View on GitHub
Comments
1
Participants
1
Timeline
6
Reactions
0
Participants
Timeline (top)
commented ×1cross-referenced ×1labeled ×1mentioned ×1

Root Cause

Anything else we need to know?

The root cause is that ThemeManager uses debugLogger.log() for successful theme registrations. While these are intercepted by the debug drawer in interactive mode, they leak into the terminal during non-interactive commands. Other components (Skills, Hooks) already follow a "silent on success" pattern.

Fix Action

Fixed

PR fix notes

PR #25858: fix(cli): remove noisy theme registration logs from terminal

Description (problem / solution / changelog)

<img width="1266" height="269" alt="Screenshot from 2026-04-23 12-57-03" src="https://github.com/user-attachments/assets/1e9d66cd-22e5-4317-aba2-85e6fa9a16ea" />

Summary

This PR removes noisy theme registration and unregistration logs from the terminal output. These logs were previously leaking into the terminal during non-interactive commands (like gemini extensions install), creating unnecessary noise for users.

Details

The ThemeManager was using debugLogger.log() for successful theme registration events. In interactive mode, these are captured by the debug drawer, but in non-interactive mode, they spill into the standard output. This change removes the success logs while preserving warning and error logs to ensure developers still receive feedback on failures. This aligns ThemeManager with other extension components like Skills and Hooks which are already "silent on success".

Related Issues

Fixes #25857

How to Validate

  1. Install a theme extension (e.g., gemini-cli-themes).
  2. Run an unrelated extension installation command: gemini extensions install https://github.com/gemini-cli-extensions/workspace.
  3. Verify that "Registered theme: ..." logs no longer appear in the terminal output.
  4. Run unit tests to ensure no regressions: npm test -w @google/gemini-cli -- src/ui/themes/theme-manager.test.ts.

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

Changed files

  • packages/cli/src/ui/themes/theme-manager.ts (modified, +0/-2)
RAW_BUFFERClick to expand / collapse

What happened?

When installing or updating an extension using the gemini extensions install command, unrelated theme registration logs (Registered theme: <name>) from other installed extensions appear in the terminal output. This creates noise and confusion, especially when installing unrelated extensions like google-workspace.

What did you expect to happen?

The install command should only output information relevant to the current installation process. Success logs for existing, unrelated components should be suppressed.

Client information

<details> <summary>Client Information</summary>

Version: 0.41.0-nightly.20260423.gd1c91f526 Platform: Linux

</details>

Anything else we need to know?

The root cause is that ThemeManager uses debugLogger.log() for successful theme registrations. While these are intercepted by the debug drawer in interactive mode, they leak into the terminal during non-interactive commands. Other components (Skills, Hooks) already follow a "silent on success" pattern.

I have already prepared a fix for this in the fix/noisy-theme-logs branch.

extent analysis

TL;DR

The issue can likely be fixed by modifying the ThemeManager to suppress successful theme registration logs during non-interactive commands.

Guidance

  • Review the ThemeManager code to identify where debugLogger.log() is used for successful theme registrations and consider replacing it with a logging mechanism that respects the interactive mode.
  • Verify that the fix does not introduce any side effects, such as suppressing important error messages.
  • Test the fix/noisy-theme-logs branch to confirm that it resolves the issue without introducing new problems.
  • Consider backporting the fix to the current version (0.41.0-nightly.20260423.gd1c91f526) if it is not already planned for inclusion.

Example

No code example is provided as the issue does not contain sufficient code context.

Notes

The provided information suggests that the issue is specific to non-interactive commands and that other components already follow a "silent on success" pattern, which implies that the fix should focus on aligning ThemeManager with this pattern.

Recommendation

Apply the workaround by using the fix/noisy-theme-logs branch, as it has already been prepared to address this specific issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING