Skip to content

Desktop UI should prioritize desktop workflows and screen real estate #15735

Closed as not planned

Description

@stenci

Description

This issue concerns inefficient use of screen space in the desktop application.

OpenCode Desktop should be optimized for desktop usage. Desktop and mobile operate under different constraints: mobile is space-limited, while desktop environments commonly manage large numbers of projects simultaneously. The fact that mobile cannot support workflows involving hundreds of projects does not mean the desktop version should be optimized around that limitation.


Panels disappearing below 1280px

When the window width drops below 1280px:

  • The project list disappears.
  • The session list disappears.
  • This happens despite ~500px of unused space (chat centered with ~250px unused on each side).

Panels should not disappear automatically when the window shrinks.


Inefficient use of wide monitors

At widths between 2600px and 3800px, the chat area uses only 980px, leaving over 2000px unused.

If readability becomes an issue, users can shrink the window. Forcing a permanently narrow chat column removes user control and assumes a single preferred reading width.


Project list regression

Before 1.1.21, the project list showed names. It now shows icons only. With hundreds of projects, this makes navigation impractical.

A desktop panel should display icon and name, with user-controlled width:

  • Wide: full name
  • Medium: partial name
  • Narrow: icons only

Removing project names in a desktop UI is not appropriate.


Message list regression

In 1.1.21, the message list was visible and resizable. It has been replaced by:

  • A narrow hover panel
  • 3–5 words per message
  • Only 9 visible messages
  • Full mouse dependency

Core navigation in a desktop application should not rely on hover popups.


Desktop UI principles

Shrinking the window should resize content proportionally, not remove panels. Panels should only be hidden through explicit user action.

Each panel should:

  • Be persistently available
  • Be resizable
  • Have its own visibility shortcut

The chat area should consume all remaining space after panels are arranged.


Panel architecture consistency

Most IDEs use a unified panel system where each panel manages its size, docking, and visibility. Defaults are provided, but users can modify layout and shortcuts.

All panels should follow consistent, user-controlled behavior rather than special-case logic.

Plugins

No response

OpenCode version

1.2.15

Steps to reproduce

No response

Screenshot and/or share link

No response

Operating System

Windows 10

Terminal

No response

Activity

  1. stenci commented on Mar 2, 2026

    @stenci
    Author

    One additional point: the list of sessions only shows the first 5 sessions and a Load more button.

    On a desktop application it may make sense a Load more button, but only after the first 1000 items.

  2. stenci commented on Mar 3, 2026

    @stenci
    Author

    Here is one example of bad usability: I'm working with full screen, the chat is showing a command line, but I can't see it because it only uses 958px out of the 3700px available. No desktop application should limit the width of the usable area, just like no IDE does that.

    Image
  3. sneycampos commented on Mar 13, 2026

    @sneycampos
    Contributor

    Note: this is a not "exclusivelly" a opencode UX problem, Codex and ChatGPT has the same behaviour, maybe a bad UI/UX decision only.

    There's a note for your issue: when the right panel is open, like the Review tab, the chat can be resized up to ~1470px but can't be resized when there's only the chat open, with no right side panel

    Image Image
  4. removed
    bugSomething isn't working
    webRelates to opencode on web / desktop
    on May 3, 2026
  5. github-actions commented on Jul 3, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

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

Metadata

Metadata

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