[FEATURE] Group the VS Code extension's conversation list by project

Status Open
Reported on v2.1.233
Maintainer reply None cached
Activity 0 comments · opened Aug 17, 2026

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

The Claude Code VS Code extension keeps a conversation list, but it is a flat,
chronological list with no notion of which project a conversation belongs to. Working
across several repositories, the list becomes an undifferentiated stream within days, and
there is no way to answer "show me what I discussed on this project last week" without
opening conversations one at a time to recognise them.

The native Claude apps solve exactly this with Projects — conversations carry a project
label and can be filtered by it. The IDE extension, which is arguably where multi-project
work is most common, has no equivalent.

What makes this particularly noticeable is that the grouping data already exists on
disk
. Claude Code stores sessions per project directory:

~/.claude/projects/<url-encoded-cwd>/<session-id>.jsonl

On this machine that is 14 sessions across 11 project directories, already perfectly
partitioned. The extension's list flattens a structure the CLI has been maintaining all
along.

Proposed Solution

In the extension's conversation list, group sessions by the project directory they belong
to — the directory that already names their folder under ~/.claude/projects/.

Concretely:

  1. Group by project, collapsible, with the current workspace's group expanded by

default and pinned to the top.

  1. Default to the current workspace, with a toggle to show all projects — so the

common case (resuming something in the repo you have open) needs no filtering at all.

  1. Optional user-defined labels on top of the automatic project grouping, for people

who want finer buckets than "one directory = one project" (e.g. splitting a monorepo,
or grouping several worktrees of the same repo together).

Step 1 alone would resolve most of the pain and requires no new stored state.

Alternative Solutions

  • Naming conversations manually — helps recall but does not scale, and still leaves one

flat list.

  • Reading ~/.claude/projects/ directly and building a third-party session browser. I

looked into this: it can group and search fine, but it cannot integrate with the
extension's UI (an extension cannot inject into another extension's webview), and it
can only reopen a session by shelling out to claude --resume <id> in a terminal, which
loses the extension's interface entirely. So a third-party workaround cannot actually
solve this.

Priority

Medium - Would be very helpful

Feature Category

Other

Use Case Example

I work across a main repo, several git worktrees of that repo, and two unrelated projects.
On disk those are already 11 distinct directories under ~/.claude/projects/. In the
extension they appear as one undifferentiated list, so finding the conversation where I
worked through a specific migration means opening several unrelated sessions first.

With grouping, I would open the repo, see that repo's conversations, and pick the right
one immediately.

Additional Context

Related existing issues, all of which target the Desktop app or the CLI rather
than the VS Code extension — filing this separately because the surface and the available
data differ, but happy to see it merged if maintainers consider it the same request:

  • #81683 — Project-scoped chat grouping in sidebar (labelled area:desktop)
  • #11408 — Add ability to name and organize conversation sessions (CLI /resume)
  • #69105 — session group (labelled area:desktop)

Environment: Claude Code extension 2.1.233, VS Code-based IDE reporting version 1.107.0,
macOS on Apple Silicon.

View original on GitHub ↗