Visual Studio Code 1.143

Visual Studio Code 1.143

Follow us on LinkedIn, X, Bluesky, Instagram


Last updated: October 19, 2026

Welcome to the 1.143 release of Visual Studio Code.

Downloads for 1.143.0

Windows
x64Arm64

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

Release highlights

This release makes the Copilot harness the default for new sessions and adds tools to compare models, reclaim storage, run models locally, and navigate file changes.

Agents

Copilot harness as the default

The Copilot harness is now the default for new sessions in VS Code. It's our latest harness, built on the Copilot SDK, a shared foundation that helps align behavior, capabilities, and improvements across Copilot products.

When you start a new session, Copilot in the harness picker indicates that the session uses the Copilot harness:

Screenshot showing Copilot selected in the harness picker with a hover description of its Copilot SDK and Agent Host integration.

In VS Code, you can keep Copilot harness sessions running in the background and access them from both the VS Code editor window and the Agents window. These sessions run through the Agent Host.

Thank you so much to everyone who has shared valuable feedback. This release includes more improvements shaped directly by your feedback.

We're continuing to improve performance and reduce latency based on the scenarios and setups you share. For example, reports of long waits before chat responses helped us reduce delays caused by MCP servers that don't finish loading their tools.

We're also continuing to make our documentation clearer based on the feedback and questions you've shared. Learn how to work with the Copilot harness, or explore the architecture and workflows in the agent host blog post.

Please continue filing issues to let us know how the Copilot harness is working for you. Your feedback is a huge help and directly shapes the harness experience.

Initial file-level working set support (Experimental)

Setting: chat.editor.workingSet.enabled Open in VS Code Open in VS Code Insiders

You gave us feedback that when using the Copilot harness, approving or rejecting agent edits in the editor was challenging. As of this release, we are introducing initial file-level working set support to help you manage and review changes more effectively.

Copilot harness sessions in the editor window now support file-level Keep in the experimental working set above the chat input. Enable chat.editor.workingSet.enabled Open in VS Code Open in VS Code Insiders to try it.

Select Keep on a file, or in the heading for all files, to mark changes as reviewed and remove them from the working set. The edits stay on disk, and files return if the agent changes them again.

What's next: We plan to add file-level Undo to the working set and bring Keep and Undo back into the editor for individual changes. These are planned for later releases, landing in Insiders first, then Stable.

Discard changes from more changesets in the Agents window

The Changes view in the Agents window lets you see all the modifications made by the agent. Until now, discarding pending changes was only available in the Uncommitted Changes changeset.

Screenshot showing the Discard Changes option in the Uncommitted Changes changeset.

In this release, the Branch Changes, Session Changes, and Last Turn Changes changesets also offer the possibility to discard changes. Select Discard Changes on a file in the Changes view or in the multi-file diff editor. What VS Code discards depends on the changeset:

  • Branch Changes: restores the file to its version where the branch diverged from its base branch, and deletes files that the branch added.
  • Session Changes: reverts the session's edits to the file and keeps changes made outside the session, such as your own edits.
  • Last Turn Changes: reverts only the latest turn's edits to the file and keeps all other changes to it.

Compare model results (Preview)

Setting: sessions.chat.compareAgents.enabled Open in VS Code Open in VS Code Insiders (Agents window only)

Compare how different models and harnesses approach the same coding task. Run attempts in parallel, review their results, and combine ideas into one solution.

To get started, enable sessions.chat.compareAgents.enabled Open in VS Code Open in VS Code Insiders in the Agents window, then select Compare Models in the model picker.

  • Choose the approaches to compare: Select two or more models to attempt your task independently. You can mix Copilot, Claude, and Codex harnesses and configure different reasoning levels.

    Screenshot showing four models with different reasoning levels selected for an Agent bake off.

  • Run the attempts: Enter one prompt and start all selected attempts together.

    Screenshot showing a prompt ready to run with four Agent bake off attempts.

  • Follow progress side by side: Each attempt runs in its own session, so you can compare its approach and open the worktree or changes at any time.

    Screenshot showing four Agent bake off attempts running side by side in a grid.

  • Evaluate and combine the results: Optionally select a Judge model to evaluate the attempts and recommend a solution. Its scorecard shows time and token usage, with expandable rationale, validation evidence, and links to each attempt. You can then select Synthesize to build on the recommended attempt with ideas from the others. Synthesis starts only when you request it.

    Screenshot showing Agent bake off results with the recommended attempt, scorecard, and Synthesize action.

Tab shortcuts in an empty side pane

When you closed every tab in the Agents window side pane, the editor area was left blank, and you had to find the Add Tab (+) menu to get back to your session's changes or files.

The empty editor area now lists the tabs you can add, such as Changes, Files, Browser, and Search, each with its icon and keyboard shortcut. Select an entry to open that tab. If you have a canvas extension installed, a Canvas entry lists the available canvases. When you switch to a session whose editor area is empty, VS Code shows this list instead of reopening the Changes and Files tabs automatically.

Session Activity Bar (Experimental)

Sessions: sessions.showSessionActivityBar Open in VS Code Open in VS Code Insiders , sessions.sessionActivityBar.showLayoutActions Open in VS Code Open in VS Code Insiders

The Session Activity Bar brings a session's Changes, Files, Browser, and available canvases next to the side pane, keeping these editors and artifacts visually connected to where they open. You can still open session artifacts from the pills at the top of the session.

The Session Activity Bar is a slim vertical strip of icons at the right edge of the active chat. Select an icon to open that tab in the side pane. If the side pane is closed, it opens with that tab active. If the tab is already open, VS Code focuses it instead of opening a second copy. If you have a canvas extension installed, a Canvas entry opens a submenu of the available canvases.

You can drag the Session Activity Bar up or down by its grip to move it out of your way, and double-click the grip to reset its position. When you split the chat area, only the focused group shows the Activity Bar.

To keep session-related layout actions together, right-click the Activity Bar and select Show Layout Actions. This moves the Toggle Side Panel and Toggle Panel actions from the title bar into the Activity Bar.

The Session Activity Bar is off by default in Stable. Select View > Appearance > Session Activity Bar to turn it on. To hide it again, right-click the Activity Bar and select Hide Session Activity Bar.

You can also configure these options with sessions.showSessionActivityBar Open in VS Code Open in VS Code Insiders and sessions.sessionActivityBar.showLayoutActions Open in VS Code Open in VS Code Insiders . If you previously set sessions.showSessionToolbar, VS Code carries your value over to sessions.showSessionActivityBar Open in VS Code Open in VS Code Insiders .

Find and create files from the empty Files tab (Experimental)

Setting: sessions.experimental.emptyFileEditorActions Open in VS Code Open in VS Code Insiders

In the Agents window, the Files tab was blank when no file was open, so you had to switch to the Files view to find or create a file in your session's folder.

When you enable sessions.experimental.emptyFileEditorActions Open in VS Code Open in VS Code Insiders , the empty Files tab shows a search box and a New File action. The search works like Quick Open (⌘P (Windows, Linux Ctrl+P)), with the same ranking, highlights, and file icons, and it only finds files in the folders of the current session. Select a result to open it in the editor, or select New File to create a file in the session's folder. When you close the file, the search box returns.

Improved performance when opening large chats

Opening a long Agent Host chat in the Agents window used to freeze the window for up to half a minute while the chat's history was restored. In this release, history is restored in small slices instead of one long blocking task, so the window stays responsive. Opening, switching back to, and reloading large chats is significantly faster.

Median of three runs on macOS, with real chats from day-to-day development. "Cold open" means opening a chat for the first time after the window starts. "Re-open" means switching to another chat and back. "Window unresponsive" is the longest time the window could not respond to input during the open.

Reclaim storage from inactive worktrees (Experimental)

Setting: chat.agentSessions.sessionStorageCleanupSuggestion.enabled Open in VS Code Open in VS Code Insiders (Agents window only)

Worktrees are very useful for letting agents work on multiple features simultaneously without interfering with each other's changes. Over time, inactive worktrees can accumulate and consume significant disk space.

Run Chat: Open Worktree Cleanup from the Command Palette 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.

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.

The cleanup editor 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 inactive worktrees accumulate or they use enough disk space to make cleanup worthwhile.

Screenshot showing a worktree cleanup suggestion in the Agents window.

Models

Run Copilot models on your device (Experimental)

Laptops such as the new Surface Laptop Ultra, powered by NVIDIA RTX Spark with up to 128 GB of unified memory, have enough GPU memory to run a capable coding model locally. On-device models let you use that hardware with Copilot: download MAI Code 1.1 Flash from the new On This Device tab in the model picker and chat with it in Copilot harness sessions, with model processing on your device.

VS Code downloads and manages the model for you. Responses that run on your device are labeled On-device and don't use AI credits. To let Auto route suitable requests to the on-device model with cloud fallback, turn on Use in Auto on the model's details page.

To get started:

  • Install a llama.cpp build that supports the model
  • Set chat.copilot.localModel.llamaServerPath Open in VS Code Open in VS Code Insiders to its llama-server executable
  • Enable chat.copilot.localModel.enabled Open in VS Code Open in VS Code Insiders

On-device models require GitHub sign-in and an NVIDIA GPU with 96 GB or more of GPU memory.

Learn more about on-device models.

Bring your own OpenAI model to Voice Mode (Preview)

Settings: agents.voice.enabled Open in VS Code Open in VS Code Insiders , agents.voice.useBYOKVoiceModel Open in VS Code Open in VS Code Insiders

Use your own OpenAI API key and live model for voice-driven coding conversations instead of the hosted Voice Mode backend. Add your OpenAI key in the Language Models editor, enable agents.voice.enabled Open in VS Code Open in VS Code Insiders , and set agents.voice.useBYOKVoiceModel Open in VS Code Open in VS Code Insiders to a live model ID, like gpt-live-1 that your key can access.

Sandboxing

Manage sandbox certificate trust

Sandbox certificate trust management is available for agent hosts running Windows or macOS.

The sandbox credential proxy lets tools authenticate to approved services without exposing real authentication tokens to sandboxed processes. It gives tools placeholder credentials, then substitutes the real credentials when forwarding requests to approved destinations. For HTTPS requests, this requires the proxy to present its own TLS certificates, which the tools must trust.

Copilot supplies a certificate bundle for tools that support it. Some tools instead rely on the operating system's certificate trust store and can encounter certificate errors when the proxy's certificate authority (CA) isn't trusted. Installing the CA improves compatibility with these tools. Domain filtering alone does not require CA installation: the built-in local proxy can check destinations and tunnel HTTPS traffic without decrypting it.

VS Code shows a dismissible Sandbox trusted CA is not installed notice with an Install option when trust is missing and installation is supported. Installation adds the locally generated CA's public certificate to the Windows machine-wide trust store or the macOS user's login Keychain and can require operating system authorization.

You can also run Sandbox: Manage Trusted CA from the Command Palette to install, rotate, or remove trust for the last-focused chat's agent host, whether local or remote. Each operation asks for confirmation and identifies the target host. Remove removes operating system trust but keeps the stored certificate and private key. Running tools might need to restart after a certificate change.

Installation is optional. Missing trust doesn't block chat startup or sending messages, and opening a chat never changes certificate trust.

For more details, see Trust the sandbox CA certificate on Windows and macOS.

Change session sandboxing when policy permits

If your organization's managed policy permits sandbox bypass, you can turn sandboxing off for an individual Copilot harness session without changing your global settings. Use the Sandboxing for terminal toggle in the session permissions menu in either the editor or the Agents window. Administrators can continue to require sandboxing by disallowing bypass, which keeps the toggle on and locked.

Changes remain subject to approval by the agent runtime. If a change is rejected, VS Code shows an error and restores the last applied sandbox state. The collapsed permissions control and the reopened menu reflect that state.

Chat

Open canvases from the chat menu (Preview)

Setting: chat.canvases.enabled Open in VS Code Open in VS Code Insiders

VS Code 1.142 introduced canvases (Preview), which are shared, interactive surfaces for collaborating with agents.

In this release, you can now open available canvases from New Chat (+) > Canvas in the editor window, without asking Copilot to open them.

Screenshot showing the Canvas submenu in the editor window's New Chat menu, listing Cache Stats, Chess, Diagram Explorer, and Token Pac-Man.

When canvas support is enabled and you have canvas extensions installed, the submenu appears after your first message in a Copilot harness session. You can also open canvases from the + menu in the Agents window.

Learn about installing, creating, and using canvases with the Copilot harness.

See output from detached background shells

In Copilot harness sessions, the agent can start commands that need to continue running after it responds in a detached background shell. A dev server or a file watcher are common examples of such commands.

Previously, you couldn't view the output of detached background shells, for example to check whether a dev server started successfully. Detached shells now stream their output like attached shells. Select the Background Shells pill, and then select a detached shell to watch its output as the command runs. The shell's terminal output in the chat response also keeps updating after the agent finishes its response. When the command exits, the shell leaves the list, and the chat response keeps the command's output and exit status.

Screenshot showing a detached background shell's output streaming in its details, next to the Background Shells list where the shell is marked Detached.

You can now also stop detached shells, which was previously only available for attached shells. When you no longer need a dev server or watcher, select Stop Shell in the shell's details.

Editor Experience

Diagnostic highlight limits

To improve diagnostic visibility in files with many reported problems, the editor highlight limit has increased from 500 to 5,000 diagnostics per file.

A warning in the editor's language status indicator indicates when diagnostics or their highlights are limited for performance reasons:

  • Diagnostic source limit: Each extension diagnostic collection can provide up to 1,000 diagnostics per file. If a collection exceeds this limit, the warning indicates that some diagnostics are not shown.

  • Editor highlight limit: The editor highlights up to 5,000 diagnostics per file across all sources. If this limit is exceeded, the warning indicates that only 5,000 diagnostics are highlighted.

If both limits are reached, the warning reports both conditions. Hover over the language status indicator in the Status Bar to view the details.

Screenshot showing the language status bar diagnostic highlights addition

Source Control

Multi-file diff editor file list (Experimental)

Setting: multiDiffEditor.experimental.fileList Open in VS Code Open in VS Code Insiders

Navigate changes from commits, stashes, and agent sessions with a file list beside the multi-file diff view. Enable multiDiffEditor.experimental.fileList Open in VS Code Open in VS Code Insiders to try it.

Each file in the list has a status letter: A (added), M (modified), D (deleted), or R (renamed). As you scroll, the list highlights the file you're viewing. Select a file in the list to jump to its diff. Open Files View & Position in the editor toolbar's More Actions (...) menu to choose View as List or View as Tree, and to place the files On the Left or On the Right of the diffs.

Screenshot showing the multi-file diff editor file list with status letters for each changed file.

Enterprise

Dynamic headers for managed OpenTelemetry

Administrators can generate and refresh HTTP headers for OpenTelemetry (OTel) exports with the new telemetry.headersProvider managed setting. For example, use a helper to supply short-lived authentication tokens for your collector, without asking developers to update headers manually or opt in through personal OTel settings.

This setting applies only to Copilot Agent Host sessions. Configure it in enterprise-managed settings, not user settings:

{
  "telemetry": {
    "enabled": true,
    "endpoint": "https://<collector-host>:4318",
    "protocol": "http",
    "headersProvider": {
      "path": "<absolute-path-to-header-helper>",
      "args": [],
      "refreshIntervalMs": 5000
    }
  }
}

The helper writes a JSON object of header names and string values to standard output.

See Configure dynamic headers for helper requirements and further details.

Managed model defaults

New Copilot harness chats use your organization's managed defaults, even when you configure chat.defaultModel Open in VS Code Open in VS Code Insiders to another preference. The model picker and setting now explain which defaults apply. You can still change models and supported options per chat.

Screenshot showing the model picker identifying the organization default and explaining that you can choose another model for the chat.

For example, the following configuration defaults new chats to Auto with the Intelligence tier in enterprise-managed settings:

{
  "model": "auto",
  "autoTier": "intelligence"
}

Why Local is disabled

When enterprise policy requires the Copilot harness, the Local harness now stays visible but is disabled in the harness picker, with a Learn why link explaining the restriction.

Screenshot showing Local disabled by policy in the harness picker, with a Learn why link explaining that the organization requires Copilot.

Copilot is required to enforce nonempty managed permissions.deny rules or sandbox.enabled: true, unless the temporary override below applies. Other permissions.* settings and an empty deny list do not trigger this requirement.

Administrators can prohibit Local with these enterprise-managed settings, not user settings:

{
  "vscode": {
    "temporaryAllowLocalHarness": false,
    "temporaryDefaultToLocalHarness": false
  }
}

When Copilot is required, opening unarchived Local chats moves them to Copilot. Editor inline chat and other Claude and Codex restrictions are unchanged.

Note: These controls are temporary while Local is retired. Local cannot enforce runtime-only permission and sandbox controls. Do not enable the temporary Local override if you require those controls. If Copilot fails in your enterprise environment, report an issue.

Fewer interruptions while organization settings load

Copilot harness sessions and model changes now wait for slow organization settings to load, with progress and a retry option on failure. You can still select Stop while you're waiting. Organization restrictions apply before requests run.

Fewer approval prompts for managed tools

Assisted permissions no longer prompt again for eligible managed tool requests they approve. One-time limits, managed denials, and sandbox restrictions still apply.

Managed plugins install automatically

Copilot harness sessions now install or update the agent plugins that your organization requires before using them.

For example, require a plugin in enterprise-managed settings:

{
  "enabledPlugins": {
    "my-plugin@my-marketplace": true
  }
}

Plugins enabled by a trusted repository's settings, and plugins your organization assigns to your team, install in the background without blocking chat.

  • Managed settings take precedence, followed by trusted repository settings and then your own choices.
  • Team assignments apply only when no other choice exists.
  • Automatically installed plugins are enabled only for the session and aren't added to your user settings.

Claude and Codex sessions

When policy requires the Copilot harness, existing Claude and Codex sessions remain visible in the sessions list, so you still can continue them with the Copilot harness. Creating new Claude or Codex sessions remains disabled in this scenario.

VS Code setup

Install GitHub Copilot CLI with VS Code

We now make it easier for you to get started with the GitHub Copilot CLI by letting you install it with the VS Code installer.

Note: Organizations can choose to disable this option via the Managed AI Settings.

  • Windows

    The VS Code installer on Windows now includes an option to install GitHub Copilot CLI. If you already have it installed, this option is not presented. Find more details in Set up the copilot command on Windows.

    install-copilot-in-windows-installer

  • Linux

    The VS Code Linux installers add a copilot executable into the user path.

    If you run the copilot command in the terminal, it will either prompt you to install GitHub Copilot CLI if it's not installed, or run GitHub Copilot CLI if it is already installed.

  • macOS

    On macOS, you are prompted to install GitHub Copilot CLI when you add VS Code to the $PATH environment variable via the Command Palette in VS Code.

    command-to-add-code-to-path

Deprecated features and settings

None

Thank you

Contributions to vscode:


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.