Skip to content

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

Description

@drbenvincent

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 and #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 and the GitHub Copilot 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, #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 Allow to open multiple workspaces in the same window #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 Allow to open multiple workspaces in the same window #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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions