microsoft / microsoft/vscode

One editor window, many projects: give the editor the same session-switching sidebar as the Agents window

Open
#324,309 2 comments 7 reactions 1 assignee Claimed by @sandy081 View on GitHub
agents-window
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

I regularly work across multiple projects/repos in parallel, which today means multiple VS Code editor windows spread across multiple virtual desktops — one window per project. This is the classic pain point tracked in [#43188](https://github.com/microsoft/vscode/issues/43188) and [#293272](https://github.com/microsoft/vscode/issues/293272): window/taskbar clutter, no unified way to see "what am I working on right now" across projects, and constant Cmd/Alt-tabbing or desktop-switching just to change context.

The new [Agents window](https://code.visualstudio.com/docs/agents/agents-window) and the [GitHub Copilot app](https://github.com/features/ai/github-app) both solve a version of this problem for agent chat sessions: instead of one window per repo, you get one dedicated window with a sidebar listing sessions, each scoped to a different repo/workspace, switchable with one click. It works well and it's genuinely nice not to need $N$ windows across different virtual desktops just to keep track of $\ge N$ agent sessions.

Image

But that pattern is currently limited to agent/chat sessions (see [#311148](https://github.com/microsoft/vscode/issues/311148), [#318936](https://github.com/microsoft/vscode/issues/318936), which are about multi-root support *within* an agent session, not about the editor itself). For plain editing — actually opening files, running debuggers, using the terminal, per-project extensions/settings — I'm still stuck with one editor window per project, same as always.

## Feature request

A "Sessions" (or "Projects") sidebar for the regular editor window, structurally similar to the Agents window's session list, but for full editing contexts rather than just chat:

- Each entry in the sidebar = one project/workspace/repo, opened and kept "warm" (its own editor group state, terminal(s), debug sessions, extension host context) but not a separate OS-level window.
- Clicking an entry swaps the entire editor workbench (explorer, open tabs, terminal, git panel, extensions view, etc.) to that project's context — similar to switching workspace folders today, but instant and without a window reload.
- Each session/project keeps genuinely separate settings, extensions-per-folder behavior, and search/index scope — i.e., it should behave like today's separate windows behave, not like a multi-root workspace (which merges search, mixes settings, etc. — a distinction people raise repeatedly in #43188).
- One editor window, one taskbar/dock icon, no virtual-desktop sprawl — this is the main win.

## Alternatives you've considered

- **Multi-root workspaces:** doesn't fit — settings, search, and indexing get mixed across projects I want kept separate (raised repeatedly in #43188).
- **Native OS window tabs (e.g., macOS `window.nativeTabs`):** partial workaround, platform-limited, and still N separate full workbench instances rather than a coordinated sidebar.
- **Third-party extensions (Project Manager, vscode-workspace-switcher, vsc-workspace-sidebar):** help with quick-opening, but still open a new window/instance per project rather than consolidating into one.

## Additional context

This is closely related to the long-standing #43188 and #293272, which ask for the same underlying outcome (one window, multiple projects) via a tabbed-workspace model. I think the Agents window's session-list sidebar is a cleaner, already-shipped UX for solving it — it would be great to see that pattern extended from "agent sessions" to "editing sessions" generally, rather than treated as chat-only infrastructure.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.