Skip to content

desktop/web: group sidebar sessions by project like Codex Projects view #55446

Open

Description

@rallysquirrel20-hue

Summary

Session sidebar shows a flat recent list with a single-letter avatar per session. Request collapsible per-project groups (full project path header + named sessions underneath, with distinct icons/colors), matching the Codex app Projects view.

Environment

  • opencode version: Unavailable: opencode CLI not in PATH in this shell (skill snapshot reported 2.0.29 / latest channel)
  • OS: Windows_NT 10.0.26200 (win32 x64) per skill snapshot (ver unavailable in this shell)
  • Terminal: Unavailable: terminal environment variables are not set
  • Shell: C:\WINDOWS\system32\cmd.exe per skill snapshot
  • Install/channel: latest per skill snapshot
  • Active plugins: none found in config (~/.config/opencode/opencode.json contains only mcp.servers.playwright, no plugins)

Reproduction

  1. Have sessions across several project directories (e.g. Documents/the-tape, Documents/Default Project, Documents/rotations2, plus UNC-backed projects).
  2. Open the desktop/web sidebar session list.
  3. Observe flat recents: left avatar is only the first letter of the project, full path is small grey text, no grouping.

Expected Behavior

Sessions grouped under collapsible project headers showing the full project path, each group listing its named sessions underneath, with per-project icon/color — as in the Codex app screenshot (Projects: z:\rotations, z:\portfolio-management, z:\sqrlbook, usa-demographics, each with sessions nested below).

Actual Behavior

Flat list, letter-only avatar, no visual separation between projects. With a main app plus several similar side projects, sessions blur together.

Additional Context

  • Consistent, not intermittent. User manages the-tape (main quant research rebuild) plus smaller side projects and context-switches daily.
  • Workarounds tried: one directory per project + descriptive renames; helps scanning but does not group.
  • Same grouped-sidebar need applies to the user's local deepseek-harness workspace UI.
  • No secrets included.

Activity

  1. opencode-agent commented on Oct 14, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed request! In short, you'd like the desktop/web session list grouped by project, with collapsible headers showing the full project path, each project's sessions listed underneath, and a distinct icon/colour for each project, like the Codex Projects view. That would make it much easier to tell a main project apart from similar side projects.

    Maintainers will consider it. Closely related requests, most similar first:

    This can't be built as a plugin right now, because plugins can't change the desktop/web session list.

  2. LQHTSINGHUA commented on Oct 21, 2026

    @LQHTSINGHUA

    +1 on this. Same pain point from a different angle.

    Right now the desktop sidebar shows a flat recent-list with only a single-letter avatar and the full path as tiny grey text. When I have 10+ sessions across ~5 projects, I can't scan by project — I have to read each path line to figure out which project a session belongs to before I can click it. That's exactly the Codex "Projects view" gap this issue describes.

    What would help most on my machine:

    • Collapsible project headers (full path, not just the letter avatar)
    • Named sessions nested underneath each project, so I can scan by project first, then by session name
    • Distinct icon/color per project, like Codex's z:\rotations, z:\portfolio-management grouping.
  3. TylonHH commented on Oct 24, 2026

    @TylonHH

    +1 on this. I recently switched from Codex to OpenCode, and the grouped project/session sidebar is the one thing I genuinely miss every day.

    In Codex, I could see all my projects at a glance with their sessions nested underneath, I never had to think about which session belonged where. Now with the flat session list in OpenCode, I have to read every single path to figure out what's what. With half a dozen projects and multiple sessions each, this slows me down every time I switch context.

    A collapsible per-project grouping, even just as a toggle, would bring the experience much closer to what Codex users are used to. Happy to help test if a PR lands.

  4. TylonHH commented on Oct 24, 2026

    @TylonHH

    +1 on this. I recently switched from Codex to OpenCode, and the grouped project/session sidebar is the one thing I genuinely miss every day.

    In Codex, I could see all my projects at a glance with their sessions nested underneath — I never had to think about which session belonged where. Now with the flat session list in OpenCode, I have to read every single path to figure out what's what. With half a dozen projects and multiple sessions each, this slows me down every time I switch context.

    A collapsible per-project grouping — even just as a toggle — would bring the experience much closer to what Codex users are used to. Happy to help test if a PR lands.

  5. Dante-dan commented on Oct 24, 2026

    @Dante-dan
    Contributor

    I'd suggest a smaller first design for desktop/web session discovery: an opt-in project grouping mode with collapsible full-path headers and named sessions underneath. Per-project colors/icons and project tabs could follow separately.

    • Derive membership from each session's project/directory data. Use server identity plus the full project path as the group key, so identical directory names, Windows drive/UNC paths, and the same path on different servers cannot collapse into one group. Show the full path in the header with an accessible expansion for long paths.
    • Order groups by their most recently active session and sessions within each group by existing recency rules, with a stable tie-break. New activity updates ordering without losing collapse state or the active session.
    • Put sessions with unresolved project metadata in an explicit ungrouped section until resolved; do not silently drop them or merge all unknown paths as a real project. Show a useful empty state when no sessions exist. Avoid creating headers for projects with no visible sessions.
    • Persist grouping mode and collapsed group IDs in the existing user preference mechanism, scoped by server. Keep session rename/open/archive actions and keyboard navigation usable; an active session remains discoverable in a collapsed group. Search results keep sufficient project context to distinguish matches.

    The current Home list already builds session groups in its controller, passes them through the region, and renders them in the view. These are existing reference points for a Home-list phase; they do not establish that the sidebar route has the same extension point.

    For a concrete first surface, I propose the desktop/web Home sessions list; that is narrower than the requested persistent sidebar. Would you prefer the sidebar route to be the first surface instead? The identity, grouping and persistence rules below would apply to the selected surface.

    The earlier #57888 / #57894 / #57895 / #57896 PRs are closed and unmerged; they are design references, not evidence that this is already accepted. This proposal deliberately limits the surface to the requested Home session list rather than also changing horizontal/vertical tab strips.

    Planned checks after design approval: populated desktop and narrow web layouts, same-basename projects, Windows/UNC paths, multiple servers, missing metadata, empty list, recency/rename/archive behavior, keyboard navigation, long names/paths, and preference persistence across reload. No implementation or visual/runtime validation is claimed here.

    Would you approve this session-list grouping scope and identity/order rules as the first phase?

  6. zhuzhutai commented on Oct 27, 2026

    @zhuzhutai

    +1 from a Windows desktop user working across two repositories (hqt_flutter_t2, app_bridge_net)
    with dozens of sessions between them.

    Current Home list groups by time (today / yesterday / older) and only shows the project name inline
    on each row, so finding "what was I doing in project X" means reading row by row. Collapsible
    per-project headers with named sessions nested underneath — plus a per-project "show more (N)" —
    is exactly the shape I want, and it is how WorkBuddy/Codex present projects.

    Two notes from reading packages/app:

    • Home already builds a HomeSessionGroup[] in home/sessions/controller.tsx and renders it in
      home/sessions/view.tsx, so a project-group mode can reuse that pipeline instead of adding a
      second list implementation.
    • The group key must include server identity + full worktree path (pathKey), otherwise
      same-basename checkouts and per-worktree sessions collapse into one header.

    The opt-in first phase proposed above (grouping the Home session list) is the right scope for me.
    Requirements I care about: collapsed state persists per server, the active session stays
    discoverable while its group is collapsed, and grouping is a toggle so the current time-grouped
    list stays available.

    The "Group by project" toggle in the experimental Inbox sidebar (#59220) is the right idea too —
    porting the same model to Home would resolve this issue.

  7. konst-sh commented on Oct 28, 2026

    @konst-sh

    need this as well, when the side tabs panel is there, having the projects with their sessions displayed in it is the natural way, the context menu with specific actions for sessions and projects is required as well - rename/delete/open location in file explorer/fork - this should be all available in session tab header context menu, currently its spreaded through several different places

  8. PAVchensky commented on Oct 29, 2026

    @PAVchensky

    +1

  9. AntonMrCoder commented on Oct 30, 2026

    @AntonMrCoder

    I'd like to add a few requirements for the project-grouped sidebar:

    • Collapsible project groups: each project is a top-level item that can be expanded to show its sessions or collapsed to hide them.
    • Full session history: each group provides access to all sessions belonging to that project, not just open tabs or recent sessions. Lazy loading or “Show more” is fine, provided older sessions remain accessible within the group.
    • Drag-and-drop project ordering: users can reorder projects manually by dragging their headers.
    • Persistent layout: project order and expanded/collapsed states are preserved across app restarts. New session activity should not override the manual project order.

    The intended workflow is a persistent Projects → Sessions tree on the left, rather than a list of open tabs. This would make switching between multiple projects and returning to older conversations much easier.

  10. rahbi4-source commented on Oct 30, 2026

    @rahbi4-source

    +1 from a daily Windows desktop user — the flat recency list is my main sidebar pain too.

    A data point for maintainers: PR #59220 implements exactly this (collapsible per-project groups, a project filter, pinned sessions) for the experimental Inbox interface mode (Settings → Preferences → Interface → Inbox). I built the branch from source and tested it on Windows with my real sessions: grouping, collapsing, filtering and pins all work and persist across restarts. The default Side tabs mode still has no grouping, so this issue remains relevant for it — but if Inbox is where the sidebar is heading, #59220 already covers most of this request and has been waiting for review since Oct 26.

    A design call on which surface should own project grouping (the home sessions list, side tabs, or inbox) would save contributors from guessing: four earlier attempts (#57888, #57895, #57896, #60374) were closed without merge.

  11. qywhen commented on Oct 30, 2026

    @qywhen

    Also affected on 2.2.3 with the vertical tab layout: the left sidebar is a flat list of open tabs, so sessions from different projects are interleaved and there is no project grouping. The project picker at the top only filters to one project (or All projects); Home groups by Today/Yesterday/Older, not by project. With 9 projects this gets hard to scan. Request: collapsible per-project groups in the vertical tab sidebar (project icon/name header, sessions underneath), with grouping preserved across restarts.

    Related: #44589

  12. joe-ieta commented on Oct 31, 2026

    @joe-ieta
    Contributor

    An optional approach to this project/history navigation request is now available for design review in #60867: a separate fourth Side bar mode, while existing Top tabs, Side tabs and Inbox keep their behavior.

    It provides project headings with five-row recent-history previews and More/Show less, a flat List option, and an independently scrolling Running shelf that includes unopened sessions/subagents across projects. Grouping follows existing project/worktree ownership; directory trees, archive filters and custom tags are separate work.

    Additional hands-on testing is welcome. Windows x64 fork preview (unsigned, 2.2.3 base; initial manual test passed), or build joe-ieta:sidebar-mode for the latest dev base (2.2.5). Select Settings → General → Interface → Side bar and report multi-project/worktree behavior, grouping/list switching, running/input-waiting visibility, close/reopen and reload results in #60867, with OS and exact build/commit. This remains a draft pending maintainer design review.

  13. miaorunquan commented on Nov 2, 2026

    @miaorunquan

    +1 — Desktop 2.2.5 on Windows 11, same pain point on the Home / left session list.

    Today Home groups by Today/Yesterday/Older; the project only shows up as a single-letter avatar and as a filter in the project dropdown. With sessions across several repos, finding "what was I doing in project X" means reading row by row.

    What I need (matches the opt-in phase proposed above):

    • Collapsible per-project headers, keyed by server id + full worktree path (not the basename)
    • All sessions of a project nested underneath, not only open tabs
    • Collapsed state persisted; grouping as a toggle so the time-grouped list stays available
    • The active session stays discoverable while its group is collapsed

    Worth noting for the design: this cannot be solved by a plugin today — the GUI plugin API has no session-list/Home extension point (Panel is region: "side" only; Slot only exposes window.bottom, session.header, session.location.menu, session.panel.end), so third-party plugins have to DOM-inject, which breaks on releases.

    Happy to test #60867's Side bar mode and #59220 on Windows 2.2.5 and report back.

  14. tanakaisworking commented on Nov 2, 2026

    @tanakaisworking

    Also requesting this specifically for the vertical tab layout, which I use daily.

    Environment: OpenCode desktop 2.2.5 (macOS), Settings → Appearance → Tabs → Vertical.

    In this mode the left sidebar only lists open session tabs. Tabs from different projects are interleaved in tab order, and there is no project context at all — the project list exists only on the Home screen. With ~9 active projects, telling which tab belongs to which project means opening or hovering each one, and the flat list gets hard to scan.

    What would help:

    • Optional project headings inside the vertical tab sidebar, with that project's open sessions nested underneath.
    • Collapsible groups, with the current flat tab order kept as an option — I rely on drag-reordering tabs and don't want to lose it.
    • The Home button already sits at the top of this sidebar, so a project section there would fit naturally.

    PR #60867's independent "Side bar" mode looks like the right direction. Please keep the existing vertical tab behavior available for people who prefer the flat list.

  15. dluc commented on Nov 2, 2026

    @dluc

    Project-grouped sessions would help in both Side tabs and Inbox. With many projects and sessions, the flat list is hard to scan; in Side tabs the ordering can also feel unpredictable. Please consider an understandable, consistent ordering within and across groups. The single-letter project avatar is not very informative when project names share prefixes used for alphabetical organization. Named, collapsible project headings would make the project context much clearer.

  16. balabommablock-cpu commented on Nov 4, 2026

    @balabommablock-cpu

    Trying to help this land, since there are now three open directions and it's hard to tell which one the team wants:

    Where grouping lives Status
    #59220 inside the existing Inbox mode (group by project, project filter, pins) open, tested on Windows by rahbi4-source
    #60867 a new 4th "Side bar" mode next to Top tabs, Side tabs and Inbox open, active, tested
    #61296 let GUI plugins replace the left nav feature request

    (#57896, tab-strip grouping, was closed as submitted early; the author said he'd re-submit.)

    A small product thought: most people in this thread are asking for one thing, "show my sessions under their project", in the view they already use (Home, Side tabs, vertical tabs, Inbox). A 4th mode answers that with one more setting to explain, and people on the other three modes still get a flat list.

    A simpler path might be:

    1. One shared grouping model: key = server + full project path, worktrees under their repo, same order everywhere.
    2. A "Group by project" toggle in the views that list sessions, starting with Inbox (feat(app): add project grouping, filtering, and pinned sessions to sidebar inbox #59220 already does this) and Home.
    3. The details testers already found: a collapsed group still shows unread/running dots, the active session's group never hides it, and the header shows enough path to tell app from app-v2.

    #60867's Running shelf looks useful on its own and could come after as a separate change.

    I haven't built either branch myself. Mostly hoping a maintainer can say which direction they'd take, so contributors stop building in parallel.

  17. dluc commented on Nov 4, 2026

    @dluc

    I'm taking a simple path here, developing a panel that presents sessions using some custom views matching my needs, e.g. groups, groups across multiple servers, different sorting logic etc.

    The only limitation so far is that panels show on the right and can be hidden by other panels. That would be easy to fix: \1 allow to pin panels and \2 allow to show panels on the left.

    Overall, IMO the north star is allowing agents to fully control the UI, in all aspects and with new custom UI elements that the community can develop, similarly to a desktop environment.

  18. pav18 commented on Nov 5, 2026

    @pav18

    We just need OLD layout - Project/sessoin, session, session... at sidebar

  19. pav18 commented on Nov 10, 2026

    @pav18

    YEEESSSSS Projects in the sidebar (Experimental Settings)

  20. dluc commented on Nov 11, 2026

    @dluc

    +1 for customizability

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

Metadata

Metadata

Assignees

No one assigned

    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