MCPcopy
hub / github.com/PowerShell/vscode-powershell

github.com/PowerShell/vscode-powershell @v2025.4.0 sqlite

repository ↗ · DeepWiki ↗ · release v2025.4.0 ↗
465 symbols 963 edges 36 files 22 documented · 5%
README

PowerShell for Visual Studio Code

CI Tests Version Installs Join the chat on Discord

This extension provides rich PowerShell language support for Visual Studio Code (VS Code). Now you can write and debug PowerShell scripts using the excellent IDE-like interface that VS Code provides.

This repository, vscode-powershell, is the Language Server Protocol client for VS Code and [PowerShellEditorServices][] is the server (also used by other editors, such as Emacs and Vim).

Available Features

Bundled with the extension is the PowerShell ISE theme. It is not activated by default, but after installing this extension either click Set Color Theme or use the theme picker and select PowerShell ISE.

Platform Support

The extension should work everywhere Visual Studio Code is supported using PowerShell 7+ currently supported versions.

[!IMPORTANT] For Windows PowerShell, only version 5.1 is supported and only on a best-effort basis. .NET Framework 4.8 or higher is required.

[!IMPORTANT] Visual Studio Code for the Web is only supported for limited functionality such as basic syntax highlighting, as the PowerShell engine cannot run in this environment currently.

VS Code Remote Development Environments, including Github Codespaces and VS Code Server are supported.

We actively test the following configurations in Github Actions on every commit: - Windows Server 2022 with Windows PowerShell 5.1 and PowerShell 7+ - macOS 14.7 with PowerShell 7+ - Ubuntu 24.04 with PowerShell 7+

On Windows, we also test with and without Constrained Language Mode enabled.

Read the installation instructions to get more details on how to use the extension on these platforms.

Installing the Extension

The PowerShell extension can be installed from the Visual Studio Code Marketplace by clicking the Install Button. You can also install the PowerShell extension from within VS Code by opening the Extensions view with keyboard shortcut Ctrl+Shift+X, typing PowerShell, and selecting the extension.

We would encourage you to try the pre-release version whenever possible. When a Pre-Release is available, it can be installed from the marketplace using the Switch to Pre-Release Version button. You can switch back to the stable version of the extension by using the Switch to Release Version button that will appear. You can also downgrade to other versions of the extension using the arrow next to the Uninstall button and choosing Install Another Version.

Getting Help

Please our support document.

Code of Conduct

Please see our Code of Conduct before participating in this project.

Contributing to the Code

Check out the development documentation for more details on how to contribute to this extension!

Security Note

For any security issues, please see here.

Maintainers

Current

Emeriti

License

This extension is licensed under the MIT License. Please see the third-party notices file for details on the third-party binaries that we include with releases of this project.

Extension points exported contracts — how you extend this code

ILogger (Interface)
(no doc) [4 implementers]
src/logging.ts
ITestPlatform (Interface)
* Describes a platform on which the PowerShell extension should work, * including the test conditions (filesystem, envi
test/core/platform.test.ts
IPossiblePowerShellExe (Interface)
(no doc) [2 implementers]
src/platform.ts
onSettingChangeOptions (Interface)
* Options for the `onSettingChange` function. * @param scope the scope in which the vscode setting should be evaluated.
src/settings.ts
IPowerShellExtensionClient (Interface)
(no doc) [2 implementers]
src/features/ExternalApi.ts
IPackageInfo (Interface)
(no doc)
src/extension.ts
IEditorServicesSessionDetails (Interface)
(no doc)
src/session.ts
ICheckboxQuickPickItem (Interface)
(no doc)
src/controls/checkboxQuickPick.ts

Core symbols most depended-on inside this repo

writeDebug
called by 42
src/logging.ts
stubInterface
called by 17
test/utils.ts
resolveDebugConfigurationWithSubstitutedVariables
called by 16
src/features/DebugSession.ts
writeAndShowError
called by 15
src/logging.ts
getSettings
called by 15
src/settings.ts
write
called by 10
src/logging.ts
writeAndShowWarning
called by 10
src/logging.ts
dispose
called by 10
src/logging.ts

Shape

Method 262
Class 83
Function 59
Interface 49
Enum 12

Languages

TypeScript100%

Modules by API surface

src/session.ts53 symbols
src/logging.ts50 symbols
src/settings.ts37 symbols
src/features/ExtensionCommands.ts37 symbols
src/features/DebugSession.ts36 symbols
src/platform.ts34 symbols
src/features/HelpCompletion.ts24 symbols
src/features/GetCommands.ts20 symbols
src/features/ExternalApi.ts20 symbols
test/utils.ts17 symbols
src/features/Console.ts17 symbols
src/process.ts15 symbols

Dependencies from manifests, versioned

@vscode/extension-telemetry0.9.9 · 1×
@vscode/vsce3.6.2 · 1×
esbuild0.25.10 · 1×
semver7.7.2 · 1×
untildify4.0.0 · 1×
uuid9.0.1 · 1×
vscode-languageclient9.0.1 · 1×
vscode-languageserver-protocol3.17.5 · 1×

For agents

$ claude mcp add vscode-powershell \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact