Sitelet https://code.visualstudio.com/updates/v1_141

Visual Studio Code 1.141

Downloads for 1.141.0

Windows
x64Arm64

Already installed? Use Check for Updates in VS Code. For upcoming features, use the Insiders build.

Release highlights

This release makes it easier to manage agent sessions, protect agent workflows, edit columnar text, and work across GitHub Enterprise instances.

Agent loop

Copilot harness

The Copilot harness adds exciting new agent functionality to VS Code. It's powered by the Copilot SDK, so its behavior and capabilities are consistent with other Copilot products, including the standalone GitHub Copilot app and the Copilot CLI.

To start using the Copilot harness, select it from the harness picker in the chat input. In this release, it might already be the default selection for you. You can continue working as you normally do.

Screenshot showing the Copilot harness selected in the harness picker.

The harness runs in a dedicated agent host process based on the Agent Host Protocol (AHP), so you can connect to the same agent session from multiple VS Code windows.

Learn how to work with the Copilot harness, or explore the architecture and workflows in the agent host blog post. If you have feedback or requests, please file an issue.

Reclaim storage from inactive worktrees

Run Chat: Open Worktree Cleanup to see how much disk space inactive agent session worktrees use and remove the ones you no longer need. Filter sessions by how long they have been inactive, review each worktree's size, and select the worktrees to clean up.

The cleanup editor also lets you configure automatic cleanup for sessions with merged pull requests and control whether VS Code suggests cleanup when session storage grows large.

Screenshot showing the worktree cleanup editor with cleanup settings and inactive session worktrees.

When chat.agentSessions.sessionStorageCleanupSuggestion.enabled Open in VS Code Open in VS Code Insiders is enabled, the Agents window notifies you when enough inactive worktrees accumulate or they use enough disk space to make cleanup worthwhile.

Screenshot showing a worktree cleanup suggestion in the Agents window.

Cleaning up marks the selected sessions as done and deletes their worktrees. You can restore a session later to recreate its worktree. Active, running, needs-input, and pinned sessions are protected from cleanup.

Keep track of background shells

When the agent runs a command in the background, it keeps working on other steps while the command runs. In Copilot harness sessions, a Background Shells pill above the chat input lists the shells that are still running, in both the Agents window and the editor window.

Select the pill to see each shell's command and how long it has been running, and select a shell to watch its output stream as the command runs, if output is available. A shell leaves the list when its command finishes.

Screenshot showing the Background Shells pill with a running shell's output streaming in its details.

More control for agent-triggered messages

When agents delegate work across conversations, they can adjust the delegated task as requirements change instead of waiting for the other session to finish. The send_message tool supports these actions between sessions and nested sessions on the same agent host:

  • Steer an active conversation with a correction.
  • Queue a follow-up as a separate turn.
  • Replace a queued message while preserving its place in the queue.
  • Cancel a queued message before processing begins.

Queued messages run in order. After a message starts processing, it can no longer be replaced or cancelled.

Agent UX

Arrange sessions in a grid

Compare results, monitor long-running tasks, or work across related conversations without repeatedly switching between sessions. Like in the editor window, the two-dimensional session grid in the Agents window lets you drag sessions into horizontal or vertical splits and resize the panes.

Maximize a session when you need to focus, then return to the grid to continue working across conversations.

Compact layout density

Setting: window.density.layout Open in VS Code Open in VS Code Insiders

Fit more content in the Agents window with the Compact layout density. Compact density uses a shorter title bar, removes the gaps between workbench parts, and reduces pane spacing.

By default, the Agents window follows the user-level window.density.layout Open in VS Code Open in VS Code Insiders setting, which also applies to editor windows. To set a different density for the Agents window only, open it and choose View > Layout Density. The density of editor windows remains unchanged.

Additional session-filtering options

Focus your sessions list on the work you care about. Open Filter Sessions to filter independently by:

  • Environment: Where the session runs, such as locally, in the cloud, or on a remote host.
  • Harness: Which agent harness the session uses.
  • Created In: Which application created the session, such as VS Code, Copilot CLI, or the Copilot app.

The menu also brings together ordering, grouping, Show Done, and Created Externally controls.

Screenshot showing the Filter Sessions menu with environment, application, harness, and external-session filters.

Track activity across nested sessions

Nested sessions let you split related work across separate conversations. In the Agents window, each nested session shows its unread status and last-modified time, helping you find recent activity and conversations that need your attention without opening them individually.

Screenshot showing the nested sessions tree in the Agents window, with one nested session highlighted to show its blue unread indicator, repository, and last-modified time.

Status is tracked independently for each conversation:

  • Opening a nested session marks only that conversation as read. An unread nested session does not make the main session appear unread.
  • The last-modified time reflects activity in that conversation, not activity in the main session or another nested session.

Read status and last-modified times persist when you reload the window or restart VS Code.

To clear unread status for an entire session tree, right-click the main session and select Mark as Read. Unrelated sessions are not affected.

Simplified new-session controls (Experimental)

Settings: sessions.chat.experimental.newSessionComposerLayout Open in VS Code Open in VS Code Insiders , sessions.chat.unifiedWorkspacePicker.enabled Open in VS Code Open in VS Code Insiders (Agents window only)

The experimental new-session composer keeps your prompt at the center while making session choices easier to review. Workspace, repository, and harness controls now appear in a collapsible Session Options tray above the chat input.

Getting-started tips now appear in a rounded notice below the chat input, so they no longer separate the session controls from your prompt.

Screenshot showing a getting-started tip below the new-session chat input.

Collapse the tray to reduce visual clutter without changing your selections. The composer remembers your choice, adapts labels as the window narrows, and keeps the options expanded when screen reader optimized mode is active. When you use a custom chat background, the tray has an opaque surface to keep its controls readable.

Improved context picker positioning

The Add Context picker now opens next to the button that invoked it and closes when you select the button again. This keeps the picker visually connected to the chat input in the editor and Agents windows.

Screenshot showing the Add Context picker anchored beside the chat input button.

Move agent picker in context control (Experimental)

Setting: sessions.chat.experimental.agentsPickerInAttachContextMenu Open in VS Code Open in VS Code Insiders (Agents window only)

If you prefer to have the Agent picker initially hidden from the chat input to reduce the number of controls, you can configure this setting to move it into the Add Context menu. After you select an agent, the picker returns to the chat input.

Customize new-session welcome messages (Experimental)

Settings: sessions.chat.experimental.welcomePhrases Open in VS Code Open in VS Code Insiders , sessions.chat.experimental.welcomeMessages Open in VS Code Open in VS Code Insiders (Agents window only)

New-session welcome messages add personality to the Agents window. In this release, you can add your own phrases to the defaults or replace the default phrases. Use the {name} placeholder to position your welcome name anywhere in a phrase.

Select Customize Welcome Message beside the heading to change your name or open the phrase setting. You can also right-click the heading and select Hide Welcome Message to turn welcome phrases off.

Agent environments

Continue local external Copilot sessions without reloading

New conversations from the Copilot CLI and GitHub Copilot app are now picked up automatically as external sessions as soon as you send the first request, even when the Agents window is already open. You can open and continue these conversations directly from the Agents window.

Use the Created In and Created Externally filters to choose which conversations appear in the sessions list.

Codex chat handoff between apps

Pick up a Codex chat started in the ChatGPT app or Codex CLI and continue it in VS Code's Agents window on the same machine, with your conversation history intact. You can switch back to the ChatGPT app or Codex CLI later and continue the same chat.

To use your GitHub Copilot subscription in VS Code, choose a Copilot model in the model picker. For example, you can keep working with Copilot after reaching your ChatGPT usage limit.

With Codex enabled and Created Externally sessions visible, chats created or updated in ChatGPT or Codex CLI appear within a few seconds without reloading VS Code.

Only one application can send messages to the chat at a time. If ChatGPT or Codex CLI still has the chat open, a This chat is open in another app banner in VS Code explains why sending is unavailable. Fully quit ChatGPT or exit the Codex CLI session, then select Retry. Your draft and attachments stay in place, and Retry checks access without sending your message.

Download remote files from the editor

Save an open remote file locally, without having to navigate for it in the Files panel. In the Agents window, open the editor's More Actions menu and select Download... to download the file to a local destination.

Dev Container samples (Experimental)

Setting: chat.agentHost.devContainer.samples.enabled Open in VS Code Open in VS Code Insiders (Agents window only)

Try an agent with a ready-to-use development environment without first cloning a repository or installing its language tools locally. The Agents window now offers Dev Container samples for Go, .NET, Node.js, PHP, Python, and Rust.

Screenshot showing the Dev Container Sample submenu in the Agents window with samples for Go, .NET, Node.js, PHP, Python, and Rust.

Install and start Docker, and then enable the setting. Open a new session in the desktop Agents window, select Dev Container Sample from the workspace picker, and send a prompt.

This also requires chat.agentHost.devContainer.enabled Open in VS Code Open in VS Code Insiders and chat.remoteAgentHostsEnabled Open in VS Code Open in VS Code Insiders to be enabled.

Agent security

Sandboxing in the Copilot agent host

Settings: chat.agent.sandbox.enabled Open in VS Code Open in VS Code Insiders

Sandboxing gives you more control over what Copilot can access while working on a task. It limits how supported agent operations access files and network resources, and helps to reduce the impact of model mistakes, prompt injection, untrusted dependencies, and locally launched tool servers.

Depending on the operation and platform, these restrictions use operating-system protections or checks within the agent host process. Sandboxing adds a layer of protection, but does not replace endpoint security or provide a standalone security boundary.

Sandboxing is available on Windows, macOS, and Linux. On Windows, required operating-system updates must be installed. Refer to Check platform availability for more details.

To configure sandboxing for all your sessions, enable the chat.agent.sandbox.enabled Open in VS Code Open in VS Code Insiders setting. You can also control sandboxing at the session level with the Sandboxing for terminal toggle in the Permissions menu.

Screenshot showing the Sandboxing for terminal toggle in the Permissions menu.

You can further customize filesystem permissions and network access via their respective settings in VS Code.

Sandboxing works with both local and connected remote sessions. For local sessions, restrictions are enforced on your machine. For remote sessions, they are enforced on the remote host where Copilot runs tools and commands. Filesystem permissions refer to paths on the machine running the agent.

Locally launched MCP and language servers are sandboxed by default when sandboxing is enabled.

Chat experience

Persistent progress in chat

Settings: chat.experimental.persistentProgress Open in VS Code Open in VS Code Insiders , chat.experimental.persistentProgressVerbosity Open in VS Code Open in VS Code Insiders

Persistent progress is rolling out to all users. It keeps in-progress responses visible and lets you control how much progress detail appears. Use chat.experimental.persistentProgress Open in VS Code Open in VS Code Insiders to choose among three icon variants, including a monochrome icon or no icon.

Meet Blobby

The /vscode-pet has a name: Blobby. Type /vscode-pet in any chat in the editor or Agents window to meet Blobby.

Type /blobby to customize Blobby. More customization options become available as you explore chat and unlock achievements.

Animation showing the VS Code Pet sleeping in both insiders and stable colors.

Learn more about Blobby and chat pets.

MCP

See discovered MCP servers in Customizations editor (Preview)

Find MCP servers supplied by plugins, extensions, and built-in integrations alongside your configured servers in the MCP Servers section of the Agent Customizations editor. Servers discovered outside your workspace's mcp.json are visible in the UI, so you don't have to use MCP: List Servers to find them.

Run Chat: Open Customizations from the Command Palette and select MCP Servers to inspect the available integrations. Learn more about adding and managing MCP servers.

Editor experience

Frosted glass overlays and menus

Settings: workbench.modernUIFrostedGlass Open in VS Code Open in VS Code Insiders , workbench.modernUIFrostedGlassOpacity Open in VS Code Open in VS Code Insiders

Menus, the Command Palette, and other pop-ups now use softly blurred, frosted glass backgrounds in the desktop Agents window. Frosted glass is also available in editor windows when the modernized UI is enabled with workbench.experimental.modernUI Open in VS Code Open in VS Code Insiders .

Use workbench.modernUIFrostedGlassOpacity Open in VS Code Open in VS Code Insiders to control how much of the blurred content shows through. Lower values make the background more transparent, while higher values make it more solid.

Frosted glass respects reduced-transparency preferences in VS Code and your operating system, and uses solid backgrounds with high contrast themes or when the effect isn't supported. Disable workbench.modernUIFrostedGlass Open in VS Code Open in VS Code Insiders if you notice display or performance issues.

Choose your tab style (Experimental)

Setting: workbench.experimental.modernUIEditorTabStyle Open in VS Code Open in VS Code Insiders

When the modernized UI is enabled ( workbench.experimental.modernUI Open in VS Code Open in VS Code Insiders ), you can choose between two tab styles:

  • connected: visually connect the active tab to its content.
  • pill: display tabs as separate rounded pills.

Spreading block pasting

Setting: editor.multiCursorPaste Open in VS Code Open in VS Code Insiders

Paste a copied block at a single cursor to distribute its rows across successive destination lines. This behavior is enabled by default when editor.multiCursorPaste Open in VS Code Open in VS Code Insiders is set to spread. Set it to full to paste the complete block instead.

Authentication

Sign in to multiple GitHub Enterprise instances

Setting: github-enterprise.uris Open in VS Code Open in VS Code Insiders

Many organizations use GitHub Copilot through a GHE.com account but keep their code on GitHub Enterprise Server (GHES). The github-enterprise.uri setting held a single instance, so you couldn't be signed in to both at once. For example, you couldn't use Copilot with your GHE.com account and review pull requests on GHES in the same VS Code window.

The new github-enterprise.uris Open in VS Code Open in VS Code Insiders setting takes a list of GHE.com and GHES instances:

"github-enterprise.uris": [
  "https://octocat.ghe.com",
  "https://github.contoso.com"
]

The GitHub Enterprise authentication provider holds accounts from every instance in the list. Each account is labeled with its host, such as monalisa - octocat.ghe.com, so you can tell them apart in the Accounts menu. When more than one instance is configured, signing in asks which instance to use. The order of the entries doesn't select a default instance.

To check or change which account an extension uses, select Manage Extension Account Preferences... in the Accounts menu, or run Accounts: Manage Extension Account Preferences... from the Command Palette.

These extensions support multiple instances:

  • GitHub Copilot works with GHE.com instances. When you sign in with Continue with GHE.com, you can enter an instance name, such as octocat, or its full URL. VS Code adds the instance to github-enterprise.uris Open in VS Code Open in VS Code Insiders without removing your other instances, and if an existing entry isn't a valid URL, it offers to fix that entry.
  • GitHub Pull Requests offers to add the host to github-enterprise.uris Open in VS Code Open in VS Code Insiders when you open a repository from an enterprise instance that isn't configured yet. It uses one GitHub Enterprise account at a time, so repositories on your other instances are available after you switch accounts. Using several enterprise instances at the same time is tracked in microsoft/vscode-pull-request-github#9004.
  • GitHub Repositories opens repositories from several GHE.com instances side by side. It doesn't support GHES repositories.

If you already use github-enterprise.uri, you stay signed in. The first time you launch this release, VS Code moves your stored credentials to work with the new setting. github-enterprise.uri is deprecated. When both settings are set, github-enterprise.uris Open in VS Code Open in VS Code Insiders takes precedence, and an empty list ([]) turns off GitHub Enterprise sign-in.

Enterprise

Migration of legacy VS Code policies to Agent Host managed settings

The Copilot harness, powered by the Copilot SDK and running in VS Code's Agent Host, is gradually becoming the default for enterprise users who have VS Code experiments enabled. To preserve existing enterprise controls during this transition, VS Code translates supported legacy policies into unified managed settings at runtime when possible. This translation applies to sessions on the same machine and does not change your policy configuration.

Enterprises should still migrate to unified managed settings where applicable for consistent policy management across VS Code, the GitHub Copilot app, and Copilot CLI.

Use managed settings to require sandboxing (Preview)

To require sandboxing in Copilot Agent Host and prevent bypass, use these unified managed settings:

{
  "sandbox": {
    "enabled": true,
    "allowBypass": false
  }
}

Legacy VS Code sandbox settings and device policies are deprecated. ChatAgentSandboxEnabled now supplies an overridable default rather than a mandatory requirement in Agent Host. Local behavior is unchanged.

Attribute Agent Host sessions to users and machines

Administrators can more easily attribute Agent Host sessions to users and machines by including operating system usernames and hostnames in VS Code's Agent Host telemetry. Merge this example into your unified managed settings, alongside your existing telemetry exporter configuration:

{
  "telemetry": {
    "enabled": true,
    "capture": {
      "identity": true
    }
  }
}

For example, captured identity attributes can include (illustrative values):

{
  "user.name": "octokit",
  "process.user.name": "devuser",
  "host.name": "dev-workstation"
}

The OS username (process.user.name) and hostname (host.name) are resource attributes. The signed-in GitHub username (user.name) appears on runtime spans when supported by the bundled Copilot runtime.

Identity capture is off by default, and the managed value overrides personal preferences. It is independent of content capture. VS Code's host-side control does not govern a runtime's direct exports.

Keep your selected agent through policy checks

When your enterprise requires a fresh policy check with forceRemoteSettingsRefresh, chat preserves your selected agent during policy checks instead of switching to Ask or Edit. Routine background refreshes also keep the last accepted policy active while loading. Startup, account changes, and failed refreshes continue to block submissions until policy checks succeed. Newly accepted restrictions continue to apply.

Contributions to extensions

GitHub Pull Requests

There has been more progress on the GitHub Pull Requests extension, which enables you to work on, create, and manage pull requests and issues. New features include:

  • Create, view, and merge stacked pull requests by setting githubPullRequests.experimental.stacks to true.
  • Support for configuring and selecting between multiple GitHub Enterprise instances.

Review the changelog for the 0.168.0 release of the extension to learn about everything in the release.

Deprecated features and settings

GitHub Enterprise URI setting

The github-enterprise.uri setting is deprecated in favor of github-enterprise.uris Open in VS Code Open in VS Code Insiders , which accepts multiple GHE.com and GitHub Enterprise Server instances. VS Code still reads github-enterprise.uri when github-enterprise.uris Open in VS Code Open in VS Code Insiders isn't configured.

Legacy VS Code sandbox settings and device policies

Legacy VS Code sandbox settings and device policies are deprecated. ChatAgentSandboxEnabled now supplies an overridable default rather than a mandatory requirement in Agent Host. Local behavior is unchanged.

Thank you

Contributions to vscode:

Issue tracking

Contributions to our issue tracking:


We really appreciate people trying our new features as soon as they are ready, so check back here often and learn what's new.

If you'd like to read release notes for previous VS Code versions, go to Updates on code.visualstudio.com.