You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Resizable session content width in Desktop/Web #53382
These requests overlap with the same underlying Desktop/Web content-width problem. This proposal focuses on an interactively resizable column, with a persisted intermediate width, rather than only a fixed centered/full-width toggle. I do not claim that configurable width has never been requested. If maintainers prefer continuing under an existing issue rather than a separate proposal, I am happy to follow that direction.
Describe the enhancement you want to request
Please let users resize the session content column in Desktop/Web. On wide screens, a narrow column wraps code and long responses unnecessarily; for prose, a narrower column can still be preferable.
Proposed behavior:
Drag either content edge to resize the timeline and composer together.
Persist the preferred width while clamping it to the available panel space.
Keep existing responsive defaults until the user changes them; provide an easy reset.
Support keyboard resizing and RTL layouts.
An independent local implementation exists for v2.0.23, with focused unit tests and production Chromium checks. I can submit a separate PR targeting v2 after design approval and adapting it to the current branch. This request does not depend on my other proposals.
Contribution disclosure
The patches have been applied locally. In my own day-to-day use, I have not noticed bugs so far; this is a personal observation, not proof of correctness or a substitute for independent review.
I am not a programmer. The implementation was created with AI assistance, and I cannot independently verify the code. Automated tests and AI reviews are not a substitute for maintainer review; please independently check the design and implementation before merging.
Reacted by Terje Wiesener, mixa3607 and Lorenzo Servolini
Since #56953 got flagged as a duplicate of this, here's the root-cause trace from the current dev source (ba06ff9e0b), plus the two gaps the triage bot called out.
How the clamp works
The width is not a user preference anywhere — it is derived from a media query:
Worth noting for scoping: this is not desktop-specific. Since isDesktop is (min-width: 768px), the web UI is clamped identically as soon as the window passes 768px. There is no code path a user or config can influence.
All consumers of the constant
Seven places consume max-w-session, so a single override point has to cover all of them (line numbers as of ba06ff9e0b):
That last row is the second gap worth flagging: the new-session page has its own hardcoded max-w-[880px] in NEW_SESSION_CONTENT_WIDTH rather than using the token, so it needs a separate change even after the session column is resizable.
On the two points the triage bot raised
Settings affordance — surfacing the current width plus a "reset to default" control seems worth doing, since otherwise the value is only reachable by dragging (double-click to reset works, but it is undiscoverable).
The 880px new-session page — as above, separate constant, same limitation.
I don't want to duplicate the scope described here; happy to follow whatever direction you maintainers prefer. If you open a PR for the session column, I can contribute the parts above (or just review them).
The fixed-width message column remains a usability problem on wide desktop windows. Please keep one canonical issue open until configurable width is implemented or explicitly declined.
Earlier reports were closed for administrative reasons, not because the limitation was resolved:
Automatically closed after 60 days without activity
github-actions: “To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.”
opencode-agent: “Closing as a duplicate of #53382, as agreed. That issue covers the same request: a resizable session column with a saved width and a reset.”
Not all of these closures were due to inactivity, but none demonstrates that the underlying request was delivered.
Requiring users to recreate unresolved requests fragments the discussion, loses continuity, and makes the actual implementation status difficult to follow. Lack of comment activity does not mean the limitation has disappeared.
Please exempt this canonical issue from inactivity-based closure, or provide a durable tracking item that will remain open until the request is implemented or explicitly declined.
Thanks for the discussion. I’m stepping away from the project and won’t be preparing a PR for this proposal. Since other users are interested, I’m leaving the issue open for others to take forward.
Thanks for the careful write-up and for linking the earlier requests.
To restate it: you'd like to be able to resize the session column in Desktop/Web by dragging either edge, so the timeline and composer change width together. The width would be saved and kept within the available space, with the current responsive default until you change it, an easy reset, keyboard resizing and RTL support. Right now the column width is a fixed design value (--container-session, 744px on most desktop widths), so this would be a new option rather than a bug fix. The maintainers will consider it, and since you offered a PR, they can tell you whether this design works for them before you adapt it to the current branch.
+1 to this. The fixed 744px column is the main thing that keeps me from using the desktop app on a wide monitor. Code blocks, diffs, tables and Mermaid diagrams wrap or scroll sideways while half the window sits empty.
I'd like to suggest a simpler first step that could ship before (or instead of) drag-to-resize: a content width preset in Settings → Appearance:
Narrow: the current 744px, kept as the default so nothing changes for existing users
Wide: fills the available width, minus the normal padding and any open side panel
Why presets might be easier to land:
They map onto the existing --container-session variable, so the change mostly means swapping a hardcoded value for a setting-driven one. That should also cover the hardcoded 880px on the new-session page mentioned above.
There's no new drag handle to reconcile with the review/side panel splitter, its min-widths, or the layout transitions.
The setting persists like any other appearance preference and is easy to reset.
A command palette entry (e.g. "Cycle content width") would make it quick to switch, for example going wide when reviewing a large diff and back to narrow when reading prose.
Drag-to-resize could still come later on top of this, as a "Custom" option.
Activity
github-actions commentedon Oct 6, 2026
Thanks for updating the issue with the verification checkbox and a clear description of the requested change.
hril3 commentedon Oct 19, 2026
Since #56953 got flagged as a duplicate of this, here's the root-cause trace from the current
devsource (ba06ff9e0b), plus the two gaps the triage bot called out.How the clamp works
The width is not a user preference anywhere — it is derived from a media query:
So any viewport wider than 768px gets
centered = true, and that switches on a Tailwind utility that resolves to a design-token constant:Worth noting for scoping: this is not desktop-specific. Since
isDesktopis(min-width: 768px), the web UI is clamped identically as soon as the window passes 768px. There is no code path a user or config can influence.All consumers of the constant
Seven places consume
max-w-session, so a single override point has to cover all of them (line numbers as ofba06ff9e0b):packages/app/src/session/timeline/message-timeline.tsxpackages/app/src/session/composer/session-composer-region.tsxpackages/app/src/session/route.tsxpackages/app/src/session/preparing-composer.tsxpackages/app/src/composer/dropzone.tsxpackages/session-ui/src/timeline/session-timeline-row.tsxpackages/app/src/new-session/layout.ts880px)That last row is the second gap worth flagging: the new-session page has its own hardcoded
max-w-[880px]inNEW_SESSION_CONTENT_WIDTHrather than using the token, so it needs a separate change even after the session column is resizable.On the two points the triage bot raised
880pxnew-session page — as above, separate constant, same limitation.I don't want to duplicate the scope described here; happy to follow whatever direction you maintainers prefer. If you open a PR for the session column, I can contribute the parts above (or just review them).
dchasman commentedon Oct 24, 2026
The fixed-width message column remains a usability problem on wide desktop windows. Please keep one canonical issue open until configurable width is implemented or explicitly declined.
Earlier reports were closed for administrative reasons, not because the limitation was resolved:
github-actions: “To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.”github-actions: “This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.”github-actions: “This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.”opencode-agent: “Closing as a duplicate of #53382, as agreed. That issue covers the same request: a resizable session column with a saved width and a reset.”Not all of these closures were due to inactivity, but none demonstrates that the underlying request was delivered.
Requiring users to recreate unresolved requests fragments the discussion, loses continuity, and makes the actual implementation status difficult to follow. Lack of comment activity does not mean the limitation has disappeared.
Please exempt this canonical issue from inactivity-based closure, or provide a durable tracking item that will remain open until the request is implemented or explicitly declined.
Wiedzmin-git commentedon Oct 27, 2026
Thanks for the discussion. I’m stepping away from the project and won’t be preparing a PR for this proposal. Since other users are interested, I’m leaving the issue open for others to take forward.
opencodejr commentedon Oct 27, 2026
Thanks for the careful write-up and for linking the earlier requests.
To restate it: you'd like to be able to resize the session column in Desktop/Web by dragging either edge, so the timeline and composer change width together. The width would be saved and kept within the available space, with the current responsive default until you change it, an easy reset, keyboard resizing and RTL support. Right now the column width is a fixed design value (
--container-session, 744px on most desktop widths), so this would be a new option rather than a bug fix. The maintainers will consider it, and since you offered a PR, they can tell you whether this design works for them before you adapt it to the current branch.Related issues:
880pxnotes were moved hereVetiSantiagoO commentedon Nov 10, 2026
+1 to this. The fixed 744px column is the main thing that keeps me from using the desktop app on a wide monitor. Code blocks, diffs, tables and Mermaid diagrams wrap or scroll sideways while half the window sits empty.
I'd like to suggest a simpler first step that could ship before (or instead of) drag-to-resize: a content width preset in Settings → Appearance:
Why presets might be easier to land:
--container-sessionvariable, so the change mostly means swapping a hardcoded value for a setting-driven one. That should also cover the hardcoded880pxon the new-session page mentioned above.Drag-to-resize could still come later on top of this, as a "Custom" option.
LorenzoServolini commentedon Nov 11, 2026
Until a resizable width lands, I published a small plugin that makes the built-in Wide option fill the whole window (OpenCode Desktop 2.x):
opencode plugin add opencode-wide-chat→ https://github.com/LorenzoServolini/opencode-wide-chatdchasman commentedon Nov 13, 2026
Your plugin is fantastic! Thank you so much for building it! @LorenzoServolini