anomalyco / anomalyco/opencode

[FEATURE]: Add option to swap left/right panel layout

Open
#16,349 8 comments 21 reactions 1 assignee View on GitHub

@Brendonovich is already working on this.

Since Mar 6, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
Avg merge
7h 2m
Merged PRs (30d)
384

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

Problem

The desktop layout is fixed: chat on the left, review/file tree on the right. This cannot be changed by the user.

Many developers prefer having tools on the left and main content on the right — matching the convention of most IDEs. The current fixed layout feels unintuitive for these users.

Proposed Solution

Add a "Swap panel layout" toggle in Settings → General → Appearance that reverses the two panels.

Suggested Approach

Apply flex-row-reverse on the session container at the md: breakpoint, controlled by a persisted boolean in the existing settings store.

Estimated scope (~30 lines across 5 files):

File What to do
packages/app/src/context/settings.tsx Add swap: boolean to appearance with getter/setter
packages/app/src/pages/session.tsx Toggle md:flex-row / md:flex-row-reverse on line ~1183
packages/app/src/pages/session/session-side-panel.tsx Swap border-lborder-r
packages/app/src/components/settings-general.tsx Add Switch in AppearanceSection
packages/app/src/i18n/*.ts Add translation strings

Additional considerations:

  • ResizeHandle drag direction may need adjustment when swapped.
  • Mobile layout (flex-col) is unaffected.
  • Persisted via existing persisted("settings.v3").

Happy to implement if the team is open to this.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.