Desktop app: add subgroups, stronger group headers, indented sessions and unread indicators in the sidebar
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
For those of us who use Claude every day across many projects, the session sidebar has become hard to work with. Group names and session names look almost identical: same weight, same color and same left alignment. Once you have more than a handful of projects, the sidebar turns into one long flat list where it’s hard to tell where one project ends and the next begins.
Many developers run several products at once, each with several modules (web app, API, mobile app, infrastructure and so on). Today there’s no way to express that structure. We either end up with dozens of near-duplicate top-level groups (“Project X – API”, “Project X – Android”, “Project X – Server”…), or with one huge group where unrelated sessions are mixed together. In both cases we lose time scanning the list and opening the wrong session, and we lose context when switching tasks.
Proposed Solution
1. Subgroups inside groups
Let a group contain subgroups, one level deep is enough. For example, an “Online Store” group could hold “Front-end” and “API” subgroups, each with its own sessions. Sessions that don’t belong to a subgroup could still sit directly under the group. A small “New subgroup” action in the group header would make this easy to set up. Subgroups should collapse and expand independently and show a session count when collapsed.
2. Group headers that stand out
Make group names visually distinct from sessions: bold, a stronger color and a subtle background band. Subgroup names would be one step lighter (semi-bold, no band), so the hierarchy reads at a glance: group → subgroup → session.
3. Indented sessions
Indent session names to the right so they never share the same left edge as their group. Sessions directly under a group get one level of indent; sessions inside a subgroup get two. This one change alone would make the current sidebar much easier to scan.
4. Unread / unfinished indicator
Show a small dark dot next to sessions that have unread output or that haven’t finished. With many sessions running in parallel, this tells us immediately where our attention is needed, without opening each one.
<img width="640" height="2000" alt="Image" src="https://github.com/user-attachments/assets/9add385a-503f-45c1-9cb7-da9f460366b3" />
Alternative Solutions
What I've tried today:
- Grouping and filtering by project/status: helps narrow the list, but groups and sessions still look the same, so the sidebar remains hard to scan. Filtering also hides context I need when switching between related tasks.
- Naming conventions: prefixing sessions with brackets like "[API] Payment integration" or "[Android] Store release" works a little, but it clutters the names, and every session still sits on the same flat level.
- Creating one group per module: this leads to many near-duplicate groups ("Project X – API", "Project X – Android", "Project X – Server"…), which makes the sidebar even longer and more confusing.
- Pinning sessions: useful for one or two sessions, but it doesn't scale to many projects and doesn't create any structure.
- Custom CSS: not possible in the desktop app, and there's no theme or sidebar density setting.
Lighter alternatives, if full subgroups aren't feasible soon:
- Just making group headers bold or a stronger color, and indenting sessions, would already be a big improvement with minimal effort.
- A "compact / hierarchical" sidebar option in Settings, so users who manage many projects can opt in.
Related: #84882 asks for a compact sidebar. This request is different: it focuses on hierarchy (subgroups) and visual distinction between groups and sessions, not on density.
Priority
Critical - Blocking my work
Feature Category
Other
Use Case Example
A typical day:
I'm a solo developer running several products at the same time. One of them is an online store with a web front-end, a REST API, an Android app and its own server infrastructure. I also maintain a personal blog and a couple of smaller side projects.
On a normal day I have 15–25 active sessions in the desktop app: a checkout page fix, a payment integration, an Android release, a server migration, plus a few quick research sessions.
Today:
- I open the app and see one long list. Group names look the same as session names, so I have to read every line to find where "Online Store" ends and "Personal Blog" begins.
- I want to resume the payment integration. It's somewhere among sessions for the front-end, the Android app and the server, all in the same flat group or spread across near-duplicate groups.
- A session I started earlier finished in the background, but nothing in the sidebar tells me that, so I open sessions one by one to check.
With this proposal:
- I open the app and immediately see bold group headers: ONLINE STORE, PERSONAL BLOG, INFRASTRUCTURE.
- Under Online Store, I expand the "API" subgroup and find "Payment integration" in one click.
- A small dark dot next to "Push notifications" shows me it has new output, so I go straight there.
What takes 30–60 seconds of scanning today (many times a day) would take 2–3 seconds.
Additional Context
Mockup:
(attached above / below) A sidebar mockup showing groups with bold, colored headers, collapsible subgroups, indented sessions, and an unread dot. All text is example content.
Similar patterns in other tools:
- Slack: custom sidebar sections that group channels, with bold names for unread channels.
- Discord: channel categories with collapsible headers and an unread indicator next to each channel.
- VS Code: the Explorer tree indents each nesting level, so the hierarchy is obvious at a glance.
These are familiar to most developers, so the new sidebar would feel natural with no learning curve.
Technical considerations:
- Subgroups could reuse the existing project grouping: one optional extra level stored with the session metadata.
- The visual changes (bold headers, indentation, unread dot) don't depend on subgroups and could ship first as a quick win.
- Existing sessions without a subgroup would simply stay directly under their group, so nothing breaks for current users.
Environment: Claude desktop app on Windows.