[FEATURE] VSCode: show sessions from all projects in session picker
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 VSCode extension session picker only shows sessions from the current project directory (~/.claude/projects/<encoded-cwd>/). Users who work across multiple projects cannot see or resume sessions from other projects without leaving the current workspace.
This is especially painful for users who have a central workspace (e.g. a notes/docs vault) and multiple code project directories — they must open each project separately to access its sessions.
Related: #26766 (CLI-focused), but this request is specifically about the VSCode extension session picker UI.
Proposed Solution
Option A: "All Projects" toggle in session picker
Add a toggle or filter to the session picker dropdown that switches between:
- Current project (default, current behavior)
- All projects (shows sessions from all directories under
~/.claude/projects/)
When showing all projects, group or tag sessions by their project directory so the user knows which project each session belongs to.
Suggested implementation
In SessionHistoryManager.fetchSessions(), the session list is built from a single directory:
async fetchSessions() {
let v = j5(this.projectRoot); // single project dir
let U = await F4.promises.readdir(v);
// ... processes only files in this directory
}
Proposed change — add an optional allProjects parameter:
async fetchSessions(allProjects = false) {
const dirs = allProjects
? (await fs.promises.readdir(Ya())).map(d => path.join(Ya(), d)) // all project dirs
: [j5(this.projectRoot)]; // current project only
const allSessions = [];
for (const dir of dirs) {
const projectName = path.basename(dir);
try {
const files = await fs.promises.readdir(dir);
for (const file of files) {
if (!file.endsWith('.jsonl')) continue;
const id = validateUUID(file.slice(0, -6));
if (!id) continue;
const meta = await readHeadTail(path.join(dir, file));
if (!meta) continue;
// ... existing parsing logic ...
allSessions.push({ ...session, projectDir: projectName });
}
} catch { continue; }
}
return allSessions;
}
The picker UI would then show the project name as a secondary label for each session when in "all projects" mode.
Option B: Cross-project search
Add a search field in the session picker that searches across all project directories by session title/first message.
Alternative Solutions
- Symlinks from other project session dirs into the current project dir (hacky, tested — works with
readdirbut fragile) - A
/sessionscommand that lists all sessions across projects (covered by #26766, CLI-only)
Priority
Medium - Quality of life for multi-project workflows
Feature Category
IDE integration
Use Case Example
A developer has:
- A knowledge base vault open in VSCode (their main workspace)
- Multiple code projects under
~/projects/(app-backend, app-frontend, infra, etc.)
They frequently start Claude Code sessions in project directories, then want to review or continue those sessions from their main workspace. Currently they must:
- Open the specific project folder in VSCode
- Find the session in the picker
- Or use
claude --resume <uuid>in terminal (requires knowing the UUID)
With this feature, they would simply open the session picker in their main workspace, toggle "All Projects", and see every session across all their projects.
Additional Context
Session storage structure:
~/.claude/projects/
-Users-me-projects-app-backend/
<uuid>.jsonl
-Users-me-projects-app-frontend/
<uuid>.jsonl
-Users-me-notes/
<uuid>.jsonl
fetchSessions() currently only reads one of these directories. The proposed change reads all of them when the user opts in.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗