Visual Studio Code 1.112
Release date: March 18, 2026
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Welcome to the 1.112 release of Visual Studio Code. This release includes various improvements across the agent and developer experience.
-
Integrated browser debugging: debug web apps end-to-end without leaving VS Code.
-
Copilot CLI permissions: give Copilot CLI sessions more autonomy so they complete tasks with fewer interruptions.
-
MCP server sandboxing: run local MCP servers in a sandbox to limit what they can access on your machine.
-
Agent image support: work with screenshots, diagrams, and binary files directly in agent conversations.
-
Monorepo customizations: share agent instructions and skills across all packages in a monorepo.
Happy Coding!
VS Code is rolling out gradually to all users. Use Check for Updates in VS Code to get the latest version immediately.
To try new features as soon as possible, download the nightly Insiders build, which includes the latest updates as soon as they are available.
Agent experience
Give agents more autonomy, richer context, and easier diagnostics so they can handle complex tasks with less intervention.
Message steering and queueing in Copilot CLI
For local agent sessions, you can send messages while a previous request is running, to steer the agent towards a different response or queue up follow-up messages. This release adds support for steering and queueing messages to Copilot CLI sessions.

Learn more about message steering and queueing in the documentation.
Preview changes before delegating to Copilot CLI
When you have uncommitted changes in your workspace and try to delegate a task to Copilot CLI, you can choose to copy, move, or ignore those changes in the worktree that Copilot CLI creates for the session. However, you had to check the Source Control view to see what those changes were before making a decision.
In this release, the Chat view now shows the list of pending changes, making it easier to see what can be migrated over to the worktree created when delegating to Copilot CLI.

Clickable file links in Copilot CLI terminal output
Setting: github.copilot.chat.cli.terminalLinks.enabled
The terminal's file link detection now recognizes paths generated by Copilot CLI that reference files under the ~/.copilot/session-state/ directory. Previously, these paths were not resolved correctly because the built-in link detector did not know about the Copilot CLI session-state directory structure.
The link detector now handles both absolute and relative paths: absolute and tilde-prefixed paths open directly, while relative paths are resolved against the active session-state directory with a fallback to workspace folders.
This feature is enabled by default and can be toggled with the github.copilot.chat.cli.terminalLinks.enabled setting.
Permissions levels in Copilot CLI
Setting: chat.autopilot.enabled
You can configure permissions for local agent sessions in chat, to give agents more autonomy in their actions and reduce the number of approval requests. This release adds this capability to Copilot CLI sessions as well.
For Copilot CLI sessions, you can choose between the following permission levels:
Default Permissions: uses your configured approval settings. Tools that require approval show a confirmation dialog before they run.Bypass Approvals: auto-approves all tool calls without showing confirmation dialogs and automatically retries on errors.Autopilot: (enabled by default in Insiders) auto-approves all tool calls, auto-responds to questions, and continues working autonomously until the task is complete. Enable Autopilot with chat.autopilot.enabled setting.

Learn more about Autopilot and Agent Permissions in our documentation.
Troubleshoot agent behavior with /troubleshoot (Preview)
Settings: github.copilot.chat.agentDebugLog.enabled , github.copilot.chat.agentDebugLog.fileLogging.enabled
There are several agent customization options available in VS Code. If your chat agents are not behaving as expected, it can be difficult to understand why. For example, when instructions, skills, or agents are not applied correctly or when a response is unexpectedly slow.
To help with this, we are introducing a new /troubleshoot skill that analyzes the agent debug logs directly in the conversation and provides insights into the agent's behavior. Type /troubleshoot in the chat input, followed by a question or description of the issue you're experiencing.

The skill reads the JSONL debug log files that are exported from the chat session and can help you understand why tools or subagents were used or skipped, why instructions or skills did not load, what contributed to slow response times, and whether network connectivity problems occurred.
To use the /troubleshoot skill in chat, enable the following settings and reload VS Code:
- github.copilot.chat.agentDebugLog.enabled : enables agent debug logging
- github.copilot.chat.agentDebugLog.fileLogging.enabled : writes debug logs to JSONL files on disk
Learn more about troubleshooting agent behavior in VS Code.
Export and import agent debug logs (Preview)
Setting: github.copilot.chat.agentDebugLog.enabled
The Agent Debug Logs panel in VS Code gives you a detailed view into the agent's behavior for a session, including tool usage, subagent decisions, and more. Previously, only the active session's debug information was available in the panel.
You can now export and import debug logs for agent sessions, allowing you to share them with others or analyze them offline. This is especially useful for troubleshooting and sharing insights about agent behavior.

For more information on Agent Debug Log panel, see Agent Debug Logs documentation.
Note: Importing files larger than 50 MB shows a warning dialog with the actual file size. Consider trimming the file or exporting a shorter session if you encounter this warning.
Image and binary file support for agents
Setting: chat.imageSupport.enabled , imageCarousel.explorerContextMenu.enabled
Agents can now read image files from disk and binary files natively, which allows you to use agents for a wider variety of tasks, such as analyzing screenshots, reading data from binary files, and more. Binary files are presented to the agent in a hexdump format.
When an agent or tool generates an image as output, such as a screenshot from the integrated browser, those images are now selectable in chat responses and can be opened in a dedicated image carousel view. Enable this functionality with the chat.imageSupport.enabled setting (Experimental).

When imageCarousel.explorerContextMenu.enabled (Experimental) is enabled, you can right-click image files or folders in the Explorer view and select Open Images in Carousel to browse images in the carousel view.
Note: The image carousel is currently experimental.
Automatic symbol references
When you copy a symbol, such as a class name, function, or method name, and paste it into chat, VS Code now automatically pastes it as a symbol reference #sym:Name. This gives the agent automatic context about the symbol, which enables it to complete tasks more quickly and efficiently.
If you want to paste a symbol without it being converted to a symbol reference, you can use the Paste as Text command, via Ctrl+Shift+V (Cmd+Shift+V on macOS).
Agent extensibility
Scale your agent setup across projects with shared customizations, and keep it secure with tighter control over MCP servers and plugins.
Customizations discovery in parent repositories
Setting: chat.useCustomizationsInParentRepositories
In monorepo setups, you often open a package or subfolder in VS Code instead of the repository root. Previously, chat customizations were only discovered from the current workspace folder. With the new chat.useCustomizationsInParentRepositories setting, VS Code can also discover customization files from parent folders up to the repository root.
This improved discovery makes it easier to share repository-wide guidance and tools across packages in a monorepo without needing to open the full repository as your workspace.
When discovery is enabled, it applies to all chat customization types, including always-on instructions such as copilot-instructions.md, AGENTS.md, and CLAUDE.md, along with instruction files, prompt files, custom agents, skills, and hooks.
Parent-repository discovery only applies when:
- Your open workspace folder is not itself a Git repository
- A parent folder contains the
.gitfolder - The parent repository is trusted with workspace trust
Learn more about agent customizations in the documentation.
Sandbox locally running MCP servers
Running MCP servers locally can pose security risks as they have the same permissions as the user running VS Code, which enables them to access files or network resources they shouldn't need for their functionality.
To reduce this risk, you can now run locally configured stdio MCP servers in a sandboxed environment on macOS and Linux. Sandboxed servers have restricted file system and network access.
To enable sandboxing, set "sandboxEnabled": true for a server in your mcp.json file. When a sandboxed server needs access to an additional folder or domain, VS Code prompts you to grant that permission and updates the sandbox configuration for that mcp.json file. All servers defined in the same mcp.json file share that sandbox configuration.
Note: Sandboxing for locally running MCP servers is not currently available on Windows. Remote scenarios, such as WSL and SSH, continue to work.
Improved UI for MCP elicitation
When an MCP server requires additional information to complete a request, it can trigger an elicitation form to collect that information from the user. These elicitation forms now use the same UI as the Ask Questions tool, allowing for a more consistent and user-friendly experience when providing additional information to MCP servers.

Enable or disable plugins and MCP servers
Previously, plugins and MCP servers could only be disabled or enabled by installing or uninstalling them. This release introduces the ability to enable or disable plugins and MCP servers without uninstalling them.
Both plugins and MCP servers can now be enabled and disabled both globally and per-workspace. You can do this by opening the MCP or plugin page, or by right-clicking on their entries, either in the Extensions view or the Chat: Open Customizations view.

Automatic plugin updates
Setting: extensions.autoCheckUpdates
Plugins can now update automatically based on the
extensions.autoCheckUpdates
setting. Plugins from npm and pypi require approval to update, as updating these plugins might cause new code to be run on your machine.
Developer experience
Build and debug web apps without leaving VS Code, with a more capable integrated browser and streamlined editor workflows.
Integrated browser
Debug web apps with the integrated browser
The integrated browser lets you open web apps directly within VS Code, and now you can also start debugging sessions with the integrated browser. This allows you to interact with the web app, set breakpoints, step through code, and inspect variables without ever leaving VS Code.
We added a new editor-browser debug type that enables debugging of integrated browser tabs with both Launch and Attach configurations.
Most options from existing msedge and chrome debug configurations are supported, which makes migration often as simple as changing the type of an existing configuration in launch.json.
Learn more about the integrated browser and how to set up debugging in the documentation: Integrated browser.
Integrated browser UX improvements
Setting: workbench.browser.pageZoom
-
Context menus
Right clicking in a browser page now exposes common options such as copy/paste, open in new tab, and inspect.

-
Independent zoom level
The integrated browser now has its own zoom level, independent from the VS Code window's zoom. Use the Zoom In (⌘= (Windows, Linux Ctrl+=)), Zoom Out (⌘- (Windows, Linux Ctrl+-)), and Reset Zoom (⌘Numpad0 (Windows, Linux Ctrl+Numpad0)) shortcuts when the browser has focus, or use the actions from the URL bar menu. The zoom level is remembered per website, just like in a regular browser.
Use the workbench.browser.pageZoom setting to configure a default zoom level. When set to "Match Window" or left unset, the browser matches the VS Code window's zoom.
Auto-close Find dialog after search
A new editor.find.closeOnResult setting lets you automatically close the Find control after a match is found and move focus back to the editor.
The setting is disabled by default, preserving the existing behavior where the Find dialog stays open after a search.
Terminal
Improved IME composition for the terminal
When typing with an Input Method Editor (IME) near the right edge of the terminal, the composition preview text could previously overflow outside the terminal boundaries. The composition view is now constrained to the available space between the cursor and the terminal's right edge. As you enter new characters, older characters are progressively hidden, keeping the preview text within the terminal viewport. This matches the behavior of other modern terminals such as Ghostty.
Note: On Windows, enable terminal.integrated.windowsUseConptyDll for the best IME composition experience.
Deprecated features and settings
New deprecations in this release
None
Upcoming deprecations
- Edit Mode is officially deprecated as of VS Code version 1.110. Users can temporarily re-enable Edit Mode via VS Code setting chat.editMode.hidden . This setting will remain supported through version 1.125. Beginning with version 1.125, Edit Mode will be fully removed and can no longer be enabled via settings.
Notable fixes
- xtermjs/xterm.js #5737: Fix ^C not working to end for newer fish + kitty keyboard protocol
- microsoft/vscode-python #25849: Prevent double/triple activation from two extensions
Thank you
Issue tracking
Contributions to our issue tracking:
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
Contributions to vscode:
- @12LuA (Luca): Fix: comment typo in authIssuers proposal PR #300899
- @DrSergei (Sergei Druzhkov): Fix variable updating after set response PR #299473
- @eliericha (Elie Richa): Make variable resolvers based on environment including launch config env PR #299752
- @jcansdale (Jamie Cansdale): fix: chunk multiline PTY writes on macOS to avoid 1024-byte buffer corruption PR #298993
- @jeanp413 (Jean Pierre): Support terminal creation on web worker extension host when there's remote authority PR #300897
- @JeffreyCA: Update Fig spec for Azure Developer CLI (azd) PR #299892
- @lammmab (Liam): hide "Ask for Edits" affordance when AI features are disabled PR #300563
- @murataslan1 (Murat Aslan): fix: wrap long docstrings in parameter hints widget PR #292258
- @SimonSiefke (Simon Siefke): fix: memory leak in MainThreadWorkspace PR #283450
- @tamuratak (Takashi Tamura): markdown-language-features: enhance document link handling with improved URI parsing and selection PR #296821
- @xingsy97 (xingsy97): Enrich terminal tool result metadata for AI agent workflows PR #300034
Contributions to vscode-copilot-chat:
- @24anisha (Anisha Agarwal): Add conversation_id to search subagent telemetry PR #4326
- @aashna (Aashna Garg): Add sticky_threshold and sticky_override to router decision API PR #4359
- @dennyac (Denny Abraham Cheriyan): Add resolved model for events PR #4210
- @IanMatthewHuff (Ian Huff): More repo info telemetry check to support windows repo perf issues PR #4339
Contributions to vscode-docs:
- @karlhorky (Karl Horky): Reword "Secondary Side Bar" docs for default-visible state PR #9540
- @mariaghiondea (Maria Ghiondea): Update publishing extensions doc to reflect soft delete changes PR #9544
- @putku45
Contributions to node-pty:
- @ritschwumm: Fix typo in documentation comment PR #897
Contributions to python-environment-tools:
- @lingyaochu (Xin Zhao): Only embed Windows resources for binary targets PR #374
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.