Updates
Updates Insiders 1.120 1.119 1.118 1.117 1.116 1.115 1.114 1.113 1.112 1.111 February 2026 January 2026 View All ReleasesVisual Studio Code 1.120
Follow us on LinkedIn, X, Bluesky
Release date: May 13, 2026
Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Welcome to the 1.120 release of Visual Studio Code. This release brings the Agents window to Stable, improves BYOK model visibility and control, and adds Markdown quality-of-life improvements and agent safety features. Here are the highlights for this release:
-
Agents window in Stable: Work in an agents-first way across all your projects with the new Agents window.
-
BYOK improvements: Track and optimize token usage and configure thinking effort for your BYOK models.
-
Markdown improvements: Review Markdown content instead of syntax with Markdown preview for diffs.
-
Command risk assessment: Assess the risk of terminal commands before they run.
-
Token optimization: Reduce context window usage by compressing large terminal output.
Happy Coding!
Agents
Orchestrate tasks across projects with the Agents window (Preview)
While VS Code is already used by millions of developers for agentic coding, its editor layout is primarily optimized for single-task, single-workspace workflows. To enable our users (and ourselves!) to work with multiple agents across multiple projects, we created a new type of window: Agents.
The new Agents window is a companion to the editor you already know: purpose-built for agent-driven development, with a dedicated space to explore, iterate on, and review tasks across multiple projects, and seamlessly switch between them. And because VS Code is built for developer choice and flexibility, the Agents window lets you pick your agent harness, run agents on remote machines, and configure the environment the way you want it - color themes, keybindings, and extensions included.
The Agents window has been available as part of VS Code Insiders in our past few releases, and with this release, it's now available as a preview in VS Code Stable.
You can open the Agents window in several ways, including the "Open in Agents" button in the VS Code title bar. To learn more about how it works and what you can do with it, visit the Agents window documentation.
What's new?
If you've already been using the Agents window in Insiders, thank you! We've continued to act on your feedback, with the following improvements landing this week:
- Preferences persist across new sessions: Your last choices in dropdowns like agent harness and isolation mode are retained when you create new sessions.
- Discard changes more easily: You can discard edits directly from the Changes panel.
- Sync upstream changes in new sessions: A sync button on the Files panel lets you see upstream changes from the base branch and pull them in before the agent gets to work.
- More deterministic changes interactions: Actions in the Changes panel can complete more quickly as they're now deterministic.
- View all changes by default for completed sessions: When you open a session marked as done, you automatically get a view of the agent's full set of edits at a glance.
- Navigate between recent sessions: Use the arrow buttons in the top-left of the title bar to jump between recent sessions without leaving the window.
- Override settings per window: The Agents window now shares all of your VS Code settings, and you can override specific settings just for the Agents window when you want a different behavior there.
Your feedback continues to be a great help in shaping Agents. Please file issues on GitHub or browse existing issues.
Extensibility
Extensions that contribute only static content, such as themes, grammars, languages, and keybindings, activate in the Agents window automatically. We also tested the top 100 Marketplace extensions, and some of those activate as well when installed in your default VS Code profile.
For other extensions, you can opt them in by ID with the extensions.supportAgentsWindow setting. Any extension you enable this way needs to be installed in your default VS Code profile.
"workbench.diffEditorAssociations": { "*.md": "vscode.markdown.preview.editor" }This feature is still a preview, so you might run into issues. We think it will be especially useful for reviewing documentation changes from agents or pull requests.
Markdown preview default changes
VS Code's built-in Markdown preview has been around for a while and a few of the original features aren't as necessary as they once were. This iteration we decided to disable two of these features by default:
-
markdown.preview.doubleClickToSwitchToEditor : Double-clicking in the preview switches back to the source editor. Users often found it confusing as they wanted to use double click to make selections. We now have features like Reopen With that largely replace this functionality
-
markdown.preview.markEditorSelection : Marks the currently selected line in the editor. We think it's less useful for modern workflows.
You can re-enable these settings if you prefer the previous behavior.
HTML id support for Markdown path completions and validation
Our built-in Markdown path completions and link validation now recognize id attributes from HTML elements in Markdown files.
"contributes": { "customEditors": [ { "viewType": "myExtension.editor", "displayName": "My Custom Editor", "selector": [ { "filenamePattern": "*.custom" } ], "priority": "default", "diffEditorPriority": "option", "mergeEditorPriority": "option" } ] }The above contribution makes it so that opening a *.custom file uses the custom editor, but opening a diff from source control uses the normal text diff view.
This API is still proposed. Try it out and share feedback in issue #292379.
Document diff
The new documentDiff proposed API exposes VS Code's built-in diff algorithm to extensions via workspace.getTextDiff(original, modified, options?). It returns a streaming async iterable of line-level changes plus a complete promise with summary information (identical, may-be-incomplete, and optional move detection). Inner character-level ranges are included on each change.
This is especially useful for custom diff editors (see Custom editor diffs) so they can render exactly the same diffs as the built-in editor instead of shipping their own algorithm.