Repository navigation
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
Is your feature request related to a problem? Please describe.
I use OpenCode Web to switch between multiple projects and workspaces. The sidebar is essential for navigation. However, when the browser window width drops below 1280px (the Tailwind xl breakpoint), the fixed sidebar disappears and becomes a floating overlay menu triggered by a hamburger button.
This means every time I want to switch projects, I must:
- Click the menu button
- Find and click the target project
- Close the menu
With the fixed sidebar, it's a single click. This friction makes the Web version unusable for multi-project workflows at narrower window sizes.
I want to switch from Desktop to Web for two reasons:
-
Easier updates — The Desktop version requires manually downloading the
.debfrom GitHub and runningapt install ./...debfor each update — and the CLI server must be updated separately. The Web (CLI) version can be updated with a singlenpmcommand, which is much simpler. -
WSL workflow — I run the web command inside WSL, and my Windows browser can access it directly at
http://localhost:4096— no extra setup. The Desktop client requires a separate install on Windows, plus manually configuring the WSL server address and password.
However, there's a blocker: the Desktop version keeps the sidebar always fixed regardless of window width, but the Web version collapses it into a floating menu below 1280px. This makes project switching tedious at narrower widths and prevents me from actually switching.
Describe the solution you'd like.
A setting (in Settings → General, or a localStorage flag) that forces the sidebar to remain fixed at all viewport widths, matching the Desktop behavior. For example:
- A toggle: "始终固定侧边栏" / "Always keep sidebar fixed"
- Or a
layoutconfig key:"sidebar": { "alwaysFixed": true }
When enabled, the <nav> element should not receive the hidden class below the xl breakpoint, and the main content area should always leave space for the sidebar.
Technical context.
The responsive behavior is controlled by these CSS classes:
| Element | ≥1280px | <1280px |
|---|---|---|
<nav> sidebar |
xl:block |
hidden |
| Sidebar toggle button | xl:flex |
hidden (mobile menu button appears instead) |
<main> content |
xl:left-[var(--main-left)] |
inset-0 |
The localStorage key opencode.global.dat:layout currently only tracks mobileSidebar.opened state, with no option to disable the responsive mode.
Additional context.
OpenCode Desktop v1.17.8 keeps the sidebar always fixed at any window width. The Web version already has all the infrastructure (the sidebar element, the toggle, the localStorage layout config) — it just needs an option to skip the responsive collapse. If added, WSL users especially would benefit from the simpler Web-only workflow.
Activity
github-actions commentedon Jun 23, 2026
This issue might be a duplicate of existing issues. Please check:
eteroad commentedon Jun 23, 2026
Thanks for the pointer to #23896 — same underlying problem, but I'll keep this open to note the Web/Desktop difference.
My setup: 2560×1080 (21:9) monitor, half-screen window (~1280px). Desktop keeps the sidebar fixed at this width. Web collapses it into a hamburger menu right at the Tailwind
xlbreakpoint.I understand the Web UI needs to adapt to phones and tablets. Instead of a simple on/off toggle, perhaps the cleanest solution is a configurable breakpoint width — let users set the threshold at which the sidebar collapses. Set it to
0to disable responsive collapse entirely (always fixed), or to800to keep the sidebar fixed on a half-screen laptop, or leave it at the default1280. This would cover both this issue and #23896 with one setting.github-actions commentedon Aug 23, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.