# Feature catalog — microsoft/vscode

> Canonical page: https://codevetter.com/unpack/vscode/feature-catalog

# Feature catalog — microsoft/vscode

Scanned commit f6439326f6891a1eaf254a19fc1a78243cbb8f9d (2026-09-22). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

User-facing surface is delivered two ways: hard-coded workbench contributions under src/vs/workbench/contrib and src/vs/sessions, and built-in extensions under extensions/. Major features include the Monaco-based editor, files/explorer, search, SCM/git, debugging, integrated terminal, notebooks, tasks, settings/preferences UI, extensions viewlet + marketplace integration, remote development (SSH/containers/tunnels), settings sync, MCP support, and an extensive chat/agent subsystem. The `code` CLI adds tunnel, serve-web, update and agent-management commands.
- The text editor is Monaco: src/vs/editor contains the editor implementation (editor.main.ts entry, language services, diff editor via @vscode/diff dependency) and is a standalone publishable layer with its own tsconfig.monaco.json. — [src/vs/editor/editor.main.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/editor/editor.main.ts) [src/tsconfig.monaco.json](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/tsconfig.monaco.json) [package.json#L66](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/package.json#L66)
- Debugging support lives in src/vs/workbench/contrib/debug with the debug.contribution.ts barrel, extension-host debug broadcast channel 'extensionhostdebugservice' registered in app.ts, and js-debug shipped as a pinned builtInExtension in product.json. — [src/vs/workbench/contrib/debug/browser/debug.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/debug/browser/debug.contribution.ts) [src/vs/code/electron-main/app.ts#L1475-L1476](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/code/electron-main/app.ts#L1475-L1476) [product.json#L57-L72](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/product.json#L57-L72)
- The integrated terminal is backed by a dedicated pty-host process: PtyHostService in the renderer talks over the 'localPty' IPC channel to ptyHostMain/PtyService, which spawns shells via terminalProcess.ts; terminal contribs register via terminal.contribution.ts. — [src/vs/platform/terminal/node/ptyHostService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/terminal/node/ptyHostService.ts) [src/vs/platform/terminal/node/ptyService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/terminal/node/ptyService.ts) [src/vs/platform/terminal/node/ptyHostMain.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/terminal/node/ptyHostMain.ts) [src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts) [src/vs/code/electron-main/app.ts#L1453](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/code/electron-main/app.ts#L1453)
- Chat/agent AI features are first-class contribs: src/vs/workbench/contrib/chat contains chat.contribution.ts, agentSessions, agentPlugins, aiCustomization and dozens of browser modules; extension-side integration goes through ExtHostChatAgents2/ExtHostChatSessions registered in the ext-host API factory. — [src/vs/workbench/contrib/chat/browser/chat.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/chat/browser/chat.contribution.ts) [src/vs/workbench/api/common/extHost.api.impl.ts#L256-L259](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/api/common/extHost.api.impl.ts#L256-L259) [src/vs/workbench/api/common/extHostChatAgents2.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/api/common/extHostChatAgents2.ts)
- MCP (Model Context Protocol) is integrated at platform and workbench level: platform/mcp has a native discovery helper service, a McpGatewayService in the main process exposed via McpGatewayChannel, a workbench management service, and mcpServerDefinitionProviders is a declared extension point. — [src/vs/platform/mcp/node/mcpGatewayService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/mcp/node/mcpGatewayService.ts) [src/vs/code/electron-main/app.ts#L1463-L1467](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/code/electron-main/app.ts#L1463-L1467) [src/vs/workbench/contrib/mcp/browser/mcp.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/mcp/browser/mcp.contribution.ts) [src/vs/workbench/services/extensions/common/extensionPoints.json#L35](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/services/extensions/common/extensionPoints.json#L35)
- SCM and Git support: the workbench provides the generic SCM contrib while git is a built-in extension (extensions/git) together with git-base, github, and github-authentication for the GitHub auth provider. — [src/vs/workbench/contrib/scm/browser/scm.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/scm/browser/scm.contribution.ts) [extensions/git/package.json](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/extensions/git/package.json) [extensions/github-authentication/package.json](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/extensions/github-authentication/package.json)
- Remote development is a core feature: IRemoteAuthorityResolverService.resolveAuthority drives connections to vscode-remote authorities, RemoteFileSystemProviderClient mounts remote files, and the Rust CLI implements `code tunnel` (dev tunnels via @microsoft/dev-tunnels-* SDKs also used in cli/src/tunnels/dev_tunnels.rs). — [src/vs/platform/remote/common/remoteAuthorityResolver.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/remote/common/remoteAuthorityResolver.ts) [src/vs/workbench/services/remote/common/remoteFileSystemProviderClient.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/services/remote/common/remoteFileSystemProviderClient.ts) [cli/src/tunnels/dev_tunnels.rs](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/cli/src/tunnels/dev_tunnels.rs) [package.json#L105-L109](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/package.json#L105-L109)
- Settings Sync ships in the OSS build: UserDataSyncService/UserDataAutoSyncService/UserDataSyncStoreService are registered as eager/delayed singletons in workbench.web.main.ts. — [src/vs/workbench/workbench.web.main.ts#L114-L120](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/workbench.web.main.ts#L114-L120) [src/vs/platform/userDataSync/common/userDataSyncService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/userDataSync/common/userDataSyncService.ts)
- Extension management UI + engine: contrib/extensions provides the viewlet while IWorkbenchExtensionManagementService (ExtensionManagementService) handles install/uninstall against the gallery manifest service; webExtensionsScannerService handles web extensions. — [src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts) [src/vs/workbench/workbench.web.main.ts#L41-L47](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/workbench.web.main.ts#L41-L47) [src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts)
- The `code` CLI exposes user-facing commands: opening folders/files, --install-extension/--uninstall-extension via cliProcessMain.ts in the node CLI entry, `code tunnel`/`tunnel service`/`tunnel rename`/`tunnel forward`, `serve-web`, `update`, `version`, and agent management subcommands. — [src/vs/code/node/cliProcessMain.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/code/node/cliProcessMain.ts) [src/vs/code/node/cli.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/code/node/cli.ts) [cli/src/commands/tunnels.rs](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/cli/src/commands/tunnels.rs) [cli/src/commands/args.rs](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/cli/src/commands/args.rs)
- Notebooks are a built-in workbench feature (contrib/notebook) plus renderer extensions (extensions/notebook-renderers, extensions/ipynb) with ExtHostNotebook* RPC actors bridging kernels and renderers. — [src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts) [extensions/ipynb/package.json](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/extensions/ipynb/package.json) [src/vs/workbench/api/common/extHost.api.impl.ts#L223-L228](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/api/common/extHost.api.impl.ts#L223-L228)
- Webviews are a sandboxed feature surface: vscode-webview is registered as a privileged scheme in main.ts and WebviewMainService in the main process manages embedding, while extHostWebviews/extHostWebviewPanels expose the API to extensions. — [src/main.ts#L111-L115](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/main.ts#L111-L115) [src/vs/platform/webview/electron-main/webviewMainService.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/platform/webview/electron-main/webviewMainService.ts) [src/vs/workbench/api/common/extHost.api.impl.ts#L247-L250](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/workbench/api/common/extHost.api.impl.ts#L247-L250)
- A dedicated agent-sessions workbench ('sessions') exists as an alternate window/workbench target for agentic workflows, with its own main barrels and docs (SESSIONS.md, SESSIONS_LIST.md, AUTOMATIONS.md). — [src/vs/sessions/sessions.desktop.main.ts](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/sessions/sessions.desktop.main.ts) [src/vs/sessions/SESSIONS.md](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/sessions/SESSIONS.md) [src/vs/sessions/AUTOMATIONS.md](https://github.com/microsoft/vscode/blob/f6439326f6891a1eaf254a19fc1a78243cbb8f9d/src/vs/sessions/AUTOMATIONS.md)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
