Skip to content

[FEATURE]: Semantic Chat Message Colors #49340

Open

Description

@tyl0re

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

I would like better chat color customization in the OpenCode desktop GUI.

Currently, user messages, progress updates, tool output, and the final assistant response do not have sufficiently separate theme colors. This makes it difficult to quickly identify where a new instruction begins and where the actual final answer is shown.

Desired behavior:

  • User messages should have their own theme color.
  • The final assistant answer should have a different theme color.
  • Progress updates such as “I’m checking...”, tool output, and status messages should not be styled like the final answer.
  • The final answer should be detected using the completed assistant message and its last text part, for example when finish: "stop".
  • The colors should provide sufficient contrast for white text.

Technical suggestion:

  • Add a dedicated attribute for user messages, such as data-user-message.
  • Add a dedicated attribute for the final assistant answer, such as data-final-answer="true".
  • Add separate theme tokens, for example:
    • message-user-background
    • message-assistant-final-background
  • Detect the final answer in the UI code based on the message state instead of relying only on a fragile CSS selector such as :last-child.
  • Support loading custom GUI themes from a user theme directory or from opencode.json.
  • Custom themes should remain available after OpenCode updates without requiring users to modify the bundled app.asar file.

Example:

{
  "messageUserBackground": "#254b32",
  "messageAssistantFinalBackground": "#3d477a"
}

Activity

  1. opencodejr commented on Oct 28, 2026

    @opencodejr

    Thanks for the detailed request, @tyl0re! As I understand it, you'd like the desktop app to give user messages and the final assistant answer their own theme colors. Progress updates, tool output and status rows would then not look like the final answer. You'd also like to load custom GUI themes from a user theme directory or opencode.json, so they keep working after updates without editing app.asar. The maintainers will consider it.

    This can't be done with a plugin today. Plugins can't change the desktop UI's styling or theme tokens, and can't register desktop themes.

    Related issues:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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